X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=io_u.h;h=d4c5be4303b3dc4bb7ed9a3cb905b86852231401;hp=97270c94d1714c83064adae850e759621f58b665;hb=548b363c08875165a018788195e8fd2304c2ce24;hpb=e26029be10ee2c570cba2c4cc2b1987568306cd2;ds=sidebyside diff --git a/io_u.h b/io_u.h index 97270c94..d4c5be43 100644 --- a/io_u.h +++ b/io_u.h @@ -11,9 +11,6 @@ #ifdef CONFIG_LIBAIO #include #endif -#ifdef CONFIG_GUASI -#include -#endif enum { IO_U_F_FREE = 1 << 0, @@ -24,6 +21,7 @@ enum { IO_U_F_TRIMMED = 1 << 5, IO_U_F_BARRIER = 1 << 6, IO_U_F_VER_LIST = 1 << 7, + IO_U_F_PRIORITY = 1 << 8, }; /* @@ -52,7 +50,8 @@ struct io_u { * Allocated/set buffer and length */ unsigned long long buflen; - unsigned long long offset; + unsigned long long offset; /* is really ->xfer_offset... */ + unsigned long long verify_offset; /* is really ->offset */ void *buf; /* @@ -93,10 +92,20 @@ struct io_u { }; /* - * Post-submit callback. Used by the ZBD code. @success == true means - * that the I/O operation has been queued or completed successfully. + * ZBD mode zbd_queue_io callback: called after engine->queue operation + * to advance a zone write pointer and eventually unlock the I/O zone. + * @q indicates the I/O queue status (busy, queued or completed). + * @success == true means that the I/O operation has been queued or + * completed successfully. */ - void (*post_submit)(const struct io_u *, bool success); + void (*zbd_queue_io)(struct thread_data *td, struct io_u *, int q, + bool success); + + /* + * ZBD mode zbd_put_io callback: called in after completion of an I/O + * or commit of an async I/O to unlock the I/O target zone. + */ + void (*zbd_put_io)(struct thread_data *td, const struct io_u *); /* * Callback for io completion @@ -113,9 +122,6 @@ struct io_u { #ifdef FIO_HAVE_SGIO struct sg_io_hdr hdr; #endif -#ifdef CONFIG_GUASI - guasi_req_t greq; -#endif #ifdef CONFIG_SOLARISAIO aio_result_t resultp; #endif @@ -182,5 +188,7 @@ static inline enum fio_ddir acct_ddir(struct io_u *io_u) td_flags_clear((td), &(io_u->flags), (val)) #define io_u_set(td, io_u, val) \ td_flags_set((td), &(io_u)->flags, (val)) +#define io_u_is_prio(io_u) \ + (io_u->flags & (unsigned int) IO_U_F_PRIORITY) != 0 #endif