Remove 'uncached' support
authorJens Axboe <axboe@kernel.dk>
Thu, 29 Aug 2024 13:22:17 +0000 (07:22 -0600)
committerJens Axboe <axboe@kernel.dk>
Thu, 29 Aug 2024 13:22:17 +0000 (07:22 -0600)
Experimental kernel patches existed for this, usable via setting
RWF_UNCACHED for the IO. But they never made it into mainline, so
let's mark the option as deprecated and kill off the support for
now.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
engines/io_uring.c
engines/sync.c
os/os-linux.h
tools/fiograph/fiograph.conf

index bfbdc3b4b4ace043bbb36c30970f181ac17b0885..1d4a6118431d572b11b6a0530827bc66a1730251 100644 (file)
@@ -106,7 +106,6 @@ struct ioring_options {
        unsigned int sqpoll_set;
        unsigned int sqpoll_cpu;
        unsigned int nonvectored;
-       unsigned int uncached;
        unsigned int nowait;
        unsigned int force_async;
        unsigned int md_per_io_size;
@@ -244,11 +243,7 @@ static struct fio_option options[] = {
        {
                .name   = "uncached",
                .lname  = "Uncached",
-               .type   = FIO_OPT_INT,
-               .off1   = offsetof(struct ioring_options, uncached),
-               .help   = "Use RWF_UNCACHED for buffered read/writes",
-               .category = FIO_OPT_C_ENGINE,
-               .group  = FIO_OPT_G_IOURING,
+               .type   = FIO_OPT_SOFT_DEPRECATED,
        },
        {
                .name   = "nowait",
@@ -395,8 +390,6 @@ static int fio_ioring_prep(struct thread_data *td, struct io_u *io_u)
                        }
                }
                sqe->rw_flags = 0;
-               if (!td->o.odirect && o->uncached)
-                       sqe->rw_flags |= RWF_UNCACHED;
                if (o->nowait)
                        sqe->rw_flags |= RWF_NOWAIT;
 
@@ -465,8 +458,6 @@ static int fio_ioring_cmd_prep(struct thread_data *td, struct io_u *io_u)
                sqe->fd = f->fd;
        }
        sqe->rw_flags = 0;
-       if (!td->o.odirect && o->uncached)
-               sqe->rw_flags |= RWF_UNCACHED;
        if (o->nowait)
                sqe->rw_flags |= RWF_NOWAIT;
 
index d19991222e80ba46dd3decdb343704781439cc87..b8be4eb34129edad621f92b0e1b71a856a93a821 100644 (file)
@@ -39,7 +39,6 @@ struct psyncv2_options {
        void *pad;
        unsigned int hipri;
        unsigned int hipri_percentage;
-       unsigned int uncached;
        unsigned int nowait;
 };
 
@@ -68,11 +67,7 @@ static struct fio_option options[] = {
        {
                .name   = "uncached",
                .lname  = "Uncached",
-               .type   = FIO_OPT_INT,
-               .off1   = offsetof(struct psyncv2_options, uncached),
-               .help   = "Use RWF_UNCACHED for buffered read/writes",
-               .category = FIO_OPT_C_ENGINE,
-               .group  = FIO_OPT_G_INVALID,
+               .type   = FIO_OPT_SOFT_DEPRECATED,
        },
        {
                .name   = "nowait",
@@ -172,8 +167,6 @@ static enum fio_q_status fio_pvsyncio2_queue(struct thread_data *td,
        if (o->hipri &&
            (rand_between(&sd->rand_state, 1, 100) <= o->hipri_percentage))
                flags |= RWF_HIPRI;
-       if (!td->o.odirect && o->uncached)
-               flags |= RWF_UNCACHED;
        if (o->nowait)
                flags |= RWF_NOWAIT;
 
index c5cd6515813146d4f63e0d17427a1b8ee2d9efe1..4d150311a38222797d869b9874506c203062b66a 100644 (file)
@@ -328,10 +328,6 @@ static inline int fio_set_sched_idle(void)
 #define RWF_NOWAIT     0x00000008
 #endif
 
-#ifndef RWF_UNCACHED
-#define RWF_UNCACHED   0x00000040
-#endif
-
 #ifndef RWF_WRITE_LIFE_SHIFT
 #define RWF_WRITE_LIFE_SHIFT           4
 #define RWF_WRITE_LIFE_SHORT           (1 << RWF_WRITE_LIFE_SHIFT)
index 123c39ae71568165f73e5bd8eeb9ba66542a7a8e..4621215c59ef82e2eb0e8145e8afeb5b1c97e8a6 100644 (file)
@@ -51,10 +51,10 @@ specific_options=https  http_host  http_user  http_pass  http_s3_key  http_s3_ke
 specific_options=ime_psync  ime_psyncv
 
 [ioengine_io_uring]
-specific_options=hipri  cmdprio_percentage  cmdprio_class  cmdprio  cmdprio_bssplit  fixedbufs  registerfiles  sqthread_poll  sqthread_poll_cpu  nonvectored  uncached  nowait  force_async
+specific_options=hipri  cmdprio_percentage  cmdprio_class  cmdprio  cmdprio_bssplit  fixedbufs  registerfiles  sqthread_poll  sqthread_poll_cpu  nonvectored  nowait  force_async
 
 [ioengine_io_uring_cmd]
-specific_options=hipri  cmdprio_percentage  cmdprio_class  cmdprio  cmdprio_bssplit  fixedbufs  registerfiles  sqthread_poll  sqthread_poll_cpu  nonvectored  uncached  nowait  force_async  cmd_type  md_per_io_size  pi_act  pi_chk  apptag  apptag_mask
+specific_options=hipri  cmdprio_percentage  cmdprio_class  cmdprio  cmdprio_bssplit  fixedbufs  registerfiles  sqthread_poll  sqthread_poll_cpu  nonvectored  nowait  force_async  cmd_type  md_per_io_size  pi_act  pi_chk  apptag  apptag_mask
 
 [ioengine_libaio]
 specific_options=userspace_reap  cmdprio_percentage  cmdprio_class  cmdprio  cmdprio_bssplit  nowait
@@ -108,7 +108,7 @@ specific_options=hostname  bindname  port  verb
 specific_options=hipri  readfua  writefua  sg_write_mode  stream_id
 
 [ioengine_pvsync2]
-specific_options=hipri  hipri_percentage  uncached  nowait  sync  psync  vsync  pvsync
+specific_options=hipri  hipri_percentage  nowait  sync  psync  vsync  pvsync
 
 [ioengine_xnvme]
 specific_options=hipri  sqthread_poll  xnvme_be  xnvme_async  xnvme_sync  xnvme_admin  xnvme_dev_nsid  xnvme_iovec