From: Ilya Dryomov Date: Sun, 8 Feb 2026 08:27:26 +0000 (+0100) Subject: qa: krbd_rxbounce.sh: do more reads to generate more errors X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F67351%2Fhead;p=ceph.git qa: krbd_rxbounce.sh: do more reads to generate more errors On faster hardware having each thread do 1024 reads isn't always sufficient for the "two orders of magnitude" threshold that is used in the test. Fixes: https://tracker.ceph.com/issues/74712 Signed-off-by: Ilya Dryomov --- diff --git a/qa/workunits/rbd/krbd_rxbounce.sh b/qa/workunits/rbd/krbd_rxbounce.sh index ad00e3f96be..9dc2dc8e310 100755 --- a/qa/workunits/rbd/krbd_rxbounce.sh +++ b/qa/workunits/rbd/krbd_rxbounce.sh @@ -34,12 +34,16 @@ g++ -xc++ -o racereads - -lpthread <= 0); + int num_reads = atoi(argv[2]); + assert(num_reads > 0); + void *buf; int r = posix_memalign(&buf, 512, read_len); assert(r == 0); @@ -47,7 +51,7 @@ int main() { std::vector threads; for (int i = 0; i < num_objects; i++) { threads.emplace_back( - [fd, buf, read_off = static_cast(i) * object_size]() { + [fd, num_reads, buf, read_off = static_cast(i) * object_size]() { for (int i = 0; i < num_reads; i++) { auto len = pread(fd, buf, read_len, read_off); assert(len == read_len); @@ -63,38 +67,38 @@ EOF DEV=$(sudo rbd map -o ms_mode=legacy img) sudo dmesg -C -./racereads +./racereads $DEV 100000 [[ $(dmesg | grep -c 'libceph: osd.* bad crc/signature') -gt 100 ]] sudo rbd unmap $DEV DEV=$(sudo rbd map -o ms_mode=legacy,rxbounce img) sudo dmesg -C -./racereads +./racereads $DEV 100000 [[ $(dmesg | grep -c 'libceph: osd.* bad crc/signature') -eq 0 ]] sudo rbd unmap $DEV DEV=$(sudo rbd map -o ms_mode=crc img) sudo dmesg -C -./racereads +./racereads $DEV 10000 [[ $(dmesg | grep -c 'libceph: osd.* integrity error') -gt 100 ]] sudo rbd unmap $DEV DEV=$(sudo rbd map -o ms_mode=crc,rxbounce img) sudo dmesg -C -./racereads +./racereads $DEV 10000 [[ $(dmesg | grep -c 'libceph: osd.* integrity error') -eq 0 ]] sudo rbd unmap $DEV # rxbounce is a no-op for secure mode DEV=$(sudo rbd map -o ms_mode=secure img) sudo dmesg -C -./racereads +./racereads $DEV 10000 [[ $(dmesg | grep -c 'libceph: osd.* integrity error') -eq 0 ]] sudo rbd unmap $DEV DEV=$(sudo rbd map -o ms_mode=secure,rxbounce img) sudo dmesg -C -./racereads +./racereads $DEV 10000 [[ $(dmesg | grep -c 'libceph: osd.* integrity error') -eq 0 ]] sudo rbd unmap $DEV