t/io_uring: print file depths
[fio.git] / engines / libpmem.c
index db57e4915081bee21a93ce9e0f768d91a2f9ad6b..99c7b50ddc23a1f188d1a30e0fb249a38afbdfae 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * libpmem: IO engine that uses NVML libpmem to read and write data
+ * libpmem: IO engine that uses PMDK libpmem to read and write data
  *
  * Copyright (C) 2017 Nippon Telegraph and Telephone Corporation.
  *
@@ -81,10 +81,9 @@ struct fio_libpmem_data {
 #define PROCMAXLEN 2048 /* maximum expected line length in /proc files */
 #define roundup(x, y)   ((((x) + ((y) - 1)) / (y)) * (y))
 
-static int Mmap_no_random;
+static bool Mmap_no_random;
 static void *Mmap_hint;
 static unsigned long long Mmap_align;
-static unsigned long long Pagesize = 0;
 
 /*
  * util_map_hint_align -- choose the desired mapping alignment
@@ -94,20 +93,9 @@ static unsigned long long Pagesize = 0;
  */
 static inline size_t util_map_hint_align(size_t len, size_t req_align)
 {
-       size_t align = 0;
+       size_t align = Mmap_align;
 
        dprint(FD_IO, "DEBUG util_map_hint_align\n" );
-#ifndef WIN32
-       Mmap_align = Pagesize;
-#else
-       if (Mmap_align == 0) {
-               SYSTEM_INFO si;
-               GetSystemInfo(&si);
-               Mmap_align = si.dwAllocationGranularity;
-       }
-#endif
-
-       align = Mmap_align;
 
        if (req_align)
                align = req_align;
@@ -159,11 +147,8 @@ static char *util_map_hint_unused(void *minaddr, size_t len, size_t align)
        dprint(FD_IO, "DEBUG util_map_hint_unused\n");
        assert(align > 0);
 
-       /* XXX - replace sysconf() with util_get_sys_xxx() */
-       Pagesize = (unsigned long) sysconf(_SC_PAGESIZE);
-
        if (raddr == NULL)
-               raddr += Pagesize;
+               raddr += page_size;
 
        raddr = (char *)roundup((uintptr_t)raddr, align);
 
@@ -289,7 +274,7 @@ static char *util_map_hint(size_t len, size_t req_align)
                        dprint(FD_IO, "Invalid PMEM_MMAP_HINT\n");
                } else {
                        Mmap_hint = (void *)val;
-                       Mmap_no_random = 1;
+                       Mmap_no_random = true;
                        dprint(FD_IO, "PMEM_MMAP_HINT set to %p\n", Mmap_hint);
                }
        }
@@ -439,13 +424,13 @@ static int fio_libpmem_prep(struct thread_data *td, struct io_u *io_u)
        /*
         * It fits within existing mapping, use it
         */
-       dprint(FD_IO," io_u->offset %lld : fdd->libpmem_off %ld : "
-                       "io_u->buflen %ld : fdd->libpmem_sz %ld\n",
-                       io_u->offset, fdd->libpmem_off,
-                       io_u->buflen, fdd->libpmem_sz);
+       dprint(FD_IO," io_u->offset %llu : fdd->libpmem_off %llu : "
+                       "io_u->buflen %llu : fdd->libpmem_sz %llu\n",
+                       io_u->offset, (unsigned long long) fdd->libpmem_off,
+                       io_u->buflen, (unsigned long long) fdd->libpmem_sz);
 
        if (io_u->offset >= fdd->libpmem_off &&
-           (io_u->offset + io_u->buflen <
+           (io_u->offset + io_u->buflen <=
             fdd->libpmem_off + fdd->libpmem_sz))
                goto done;
 
@@ -472,7 +457,8 @@ done:
        return 0;
 }
 
-static int fio_libpmem_queue(struct thread_data *td, struct io_u *io_u)
+static enum fio_q_status fio_libpmem_queue(struct thread_data *td,
+                                          struct io_u *io_u)
 {
        fio_ro_check(td, io_u);
        io_u->error = 0;
@@ -513,7 +499,7 @@ static int fio_libpmem_init(struct thread_data *td)
 {
        struct thread_options *o = &td->o;
 
-       dprint(FD_IO,"o->rw_min_bs %d \n o->fsync_blocks %d \n o->fdatasync_blocks %d \n",
+       dprint(FD_IO,"o->rw_min_bs %llu \n o->fsync_blocks %d \n o->fdatasync_blocks %d \n",
                        o->rw_min_bs,o->fsync_blocks,o->fdatasync_blocks);
        dprint(FD_IO, "DEBUG fio_libpmem_init\n");
 
@@ -586,6 +572,17 @@ static struct ioengine_ops ioengine = {
 
 static void fio_init fio_libpmem_register(void)
 {
+#ifndef WIN32
+       Mmap_align = page_size;
+#else
+       if (Mmap_align == 0) {
+               SYSTEM_INFO si;
+
+               GetSystemInfo(&si);
+               Mmap_align = si.dwAllocationGranularity;
+       }
+#endif
+
        register_ioengine(&ioengine);
 }