From 102ccd27e636f7107a5138e06f570854f31297aa Mon Sep 17 00:00:00 2001 From: Avi Kivity Date: Mon, 28 Dec 2020 14:00:17 +0200 Subject: [PATCH] Test sector appends too Unfortunately XFS does not work well with non-prezeroed sector appends. --- fsqual.cc | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/fsqual.cc b/fsqual.cc index fa701ba..753e992 100644 --- a/fsqual.cc +++ b/fsqual.cc @@ -41,11 +41,10 @@ with_ctxsw_counting(Counter& counter, Func&& func) { return func(); } -void test_concurrent_append(io_context_t ioctx, int fd, unsigned iodepth, std::string mode) { +void test_concurrent_append(io_context_t ioctx, int fd, unsigned iodepth, size_t bufsize, std::string mode) { auto nr = 10000; - auto bufsize = 4096; auto ctxsw = 0; - auto buf = aligned_alloc(4096, 4096); + auto buf = aligned_alloc(4096, bufsize); auto current_depth = unsigned(0); auto initiated = 0; auto completed = 0; @@ -82,9 +81,9 @@ void test_concurrent_append(io_context_t ioctx, int fd, unsigned iodepth, std::s } } -void test_concurrent_append_size_unchanging(io_context_t ioctx, int fd, unsigned iodepth, std::string mode) { +void test_concurrent_append_size_unchanging(io_context_t ioctx, int fd, unsigned iodepth, size_t bufsize, std::string mode) { ftruncate(fd, off_t(1) << 30); - test_concurrent_append(ioctx, fd, iodepth, mode); + test_concurrent_append(ioctx, fd, iodepth, bufsize, mode); } void run_test(std::function func) { @@ -130,9 +129,10 @@ int main(int ac, char** av) { std::cout << "memory DMA alignment: " << info.memory_alignment << "\n"; std::cout << "disk DMA alignment: " << info.disk_alignment << "\n"; - run_test([] (io_context_t ioctx, int fd) { test_concurrent_append(ioctx, fd, 1, "size-changing"); }); - run_test([] (io_context_t ioctx, int fd) { test_concurrent_append(ioctx, fd, 3, "size-changing"); }); - run_test([] (io_context_t ioctx, int fd) { test_concurrent_append_size_unchanging(ioctx, fd, 3, "size-unchanging"); }); - run_test([] (io_context_t ioctx, int fd) { test_concurrent_append_size_unchanging(ioctx, fd, 7, "size-unchanging"); }); + run_test([] (io_context_t ioctx, int fd) { test_concurrent_append(ioctx, fd, 1, 4096, "size-changing"); }); + run_test([] (io_context_t ioctx, int fd) { test_concurrent_append(ioctx, fd, 3, 4096, "size-changing"); }); + run_test([] (io_context_t ioctx, int fd) { test_concurrent_append_size_unchanging(ioctx, fd, 3, 4096, "size-unchanging"); }); + run_test([] (io_context_t ioctx, int fd) { test_concurrent_append_size_unchanging(ioctx, fd, 7, 4096, "size-unchanging"); }); + run_test([=] (io_context_t ioctx, int fd) { test_concurrent_append_size_unchanging(ioctx, fd, 1, info.disk_alignment, "size-unchanging, sector aligned"); }); return 0; } -- 2.49.0