From b48243e740b99ba7ef8d084cec0a2e732a5b9903 Mon Sep 17 00:00:00 2001 From: Avi Kivity Date: Tue, 2 Aug 2016 09:27:58 +0300 Subject: [PATCH] Add dioinfo data (direct I/O alignment) --- fsqual.cc | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/fsqual.cc b/fsqual.cc index f742e44..6858ba5 100644 --- a/fsqual.cc +++ b/fsqual.cc @@ -103,7 +103,25 @@ void run_test(std::function func) { io_destroy(ioctx); } +void test_dio_info() { + auto fname = "fsqual.tmp"; + int fd = open(fname, O_CREAT|O_EXCL|O_RDWR|O_DIRECT, 0600); + if (fd == -1) { + std::cout << "failed to create file\n"; + return; + } + unlink(fname); + struct dioattr da; + auto r = ioctl(fd, XFS_IOC_DIOINFO, &da); + if (r == 0) { + std::cout << "memory DMA alignment: " << da.d_mem << "\n"; + std::cout << "disk DMA read alignment: " << da.d_miniosz << "\n"; + std::cout << "disk DMA write alignment: " << da.d_miniosz << "\n"; + } +} + int main(int ac, char** av) { + test_dio_info(); 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"); }); -- 2.50.1