From: Avi Kivity Date: Tue, 5 Jan 2021 11:43:52 +0000 (+0200) Subject: Detect filesystem blocksize instead of assuming 4096 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=b88e36a927592e22b92f97ba311be836565b52df;p=users%2Fhch%2Ffsqual.git Detect filesystem blocksize instead of assuming 4096 --- diff --git a/fsqual.cc b/fsqual.cc index b65da02..deb6591 100644 --- a/fsqual.cc +++ b/fsqual.cc @@ -17,6 +17,7 @@ #include #include #include +#include #define min min /* prevent xfs.h from defining min() as a macro */ #include @@ -136,15 +137,23 @@ dio_info get_dio_info() { return dio_info{da.d_mem, da.d_miniosz}; } +unsigned get_blocksize() { + struct statfs s; + statfs(".", &s); + return s.f_bsize; +} + int main(int ac, char** av) { auto info = get_dio_info(); + auto bsize = get_blocksize(); std::cout << "memory DMA alignment: " << info.memory_alignment << "\n"; std::cout << "disk DMA alignment: " << info.disk_alignment << "\n"; + std::cout << "filesystem block size: " << bsize << "\n"; - run_test(1, 4096, false, false, false); - run_test(3, 4096, false, false, false); - run_test(3, 4096, true, false, false); - run_test(7, 4096, true, false, false); + run_test(1, bsize, false, false, false); + run_test(3, bsize, false, false, false); + run_test(3, bsize, true, false, false); + run_test(7, bsize, true, false, false); run_test(1, info.disk_alignment, true, false, false); run_test(1, info.disk_alignment, true, true, false); run_test(1, info.disk_alignment, true, true, true);