Messages in this thread |  | | Date | Sun, 5 Jul 2020 22:09:47 +0100 | From | Matthew Wilcox <> | Subject | Re: [PATCH v3 4/4] io_uring: add support for zone-append |
| |
On Sun, Jul 05, 2020 at 03:00:47PM -0600, Jens Axboe wrote: > On 7/5/20 12:47 PM, Kanchan Joshi wrote: > > From: Selvakumar S <selvakuma.s1@samsung.com> > > > > For zone-append, block-layer will return zone-relative offset via ret2 > > of ki_complete interface. Make changes to collect it, and send to > > user-space using cqe->flags. > > > > Signed-off-by: Selvakumar S <selvakuma.s1@samsung.com> > > Signed-off-by: Kanchan Joshi <joshi.k@samsung.com> > > Signed-off-by: Nitesh Shetty <nj.shetty@samsung.com> > > Signed-off-by: Javier Gonzalez <javier.gonz@samsung.com> > > --- > > fs/io_uring.c | 21 +++++++++++++++++++-- > > 1 file changed, 19 insertions(+), 2 deletions(-) > > > > diff --git a/fs/io_uring.c b/fs/io_uring.c > > index 155f3d8..cbde4df 100644 > > --- a/fs/io_uring.c > > +++ b/fs/io_uring.c > > @@ -402,6 +402,8 @@ struct io_rw { > > struct kiocb kiocb; > > u64 addr; > > u64 len; > > + /* zone-relative offset for append, in sectors */ > > + u32 append_offset; > > }; > > I don't like this very much at all. As it stands, the first cacheline > of io_kiocb is set aside for request-private data. io_rw is already > exactly 64 bytes, which means that you're now growing io_rw beyond > a cacheline and increasing the size of io_kiocb as a whole. > > Maybe you can reuse io_rw->len for this, as that is only used on the > submission side of things.
I'm surprised you aren't more upset by the abuse of cqe->flags for the address.
What do you think to my idea of interpreting the user_data as being a pointer to somewhere to store the address? Obviously other things can be stored after the address in the user_data.
Or we could have a separate flag to indicate that is how to interpret the user_data.
|  |