LU-13520 ldiskfs: fastpath in bitmap prefetching
getblk() can be very expensive if many threads are trying to find
specific block which can happen when threads are trying to prefetch
same set of block bitmaps (where only the one wins). use atomic
bitset to prevent this situation.
# mpirun -np 640 mdtest -D -C -r -u -n 1000 -vv -p 10 -i 3 -d /mdt0
Max Min Mean Std Dev
before b7cd65 76243.849 62728.925 69264.981 5525.345
after b7cd65 44270.444 42144.617 43138.707 873.040
this patch 83171.845 71796.197 77274.256 4652.121
Fixes:
b7cd65a3d1 ("LU-12988 ldiskfs: mballoc to prefetch groups")
Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Change-Id: I3194aa0e13f22a1f34f5df846cb4b15feba5f432
Reviewed-on: https://review.whamcloud.com/38513
Tested-by: jenkins <devops@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Wang Shilong <wshilong@ddn.com>
Reviewed-by: Artem Blagodarenko <artem.blagodarenko@hpe.com>