* [PATCH 1/2] io_uring: remove structures from include/linux/io_uring.h [not found] <[email protected]> @ 2021-03-14 11:15 ` Stefan Metzmacher 2021-03-14 11:50 ` Pavel Begunkov 2021-03-15 11:56 ` [PATCH v2 0/2] Some header cleanups Stefan Metzmacher 2021-03-14 11:15 ` [PATCH 2/2] io_uring: use typesafe pointers in io_uring_task Stefan Metzmacher 1 sibling, 2 replies; 10+ messages in thread From: Stefan Metzmacher @ 2021-03-14 11:15 UTC (permalink / raw) To: io-uring --- fs/io-wq.h | 10 +++++++++- fs/io_uring.c | 16 ++++++++++++++++ include/linux/io_uring.h | 25 ------------------------- 3 files changed, 25 insertions(+), 26 deletions(-) diff --git a/fs/io-wq.h b/fs/io-wq.h index 1ac2f3248088..80d590564ff9 100644 --- a/fs/io-wq.h +++ b/fs/io-wq.h @@ -2,7 +2,6 @@ #define INTERNAL_IO_WQ_H #include <linux/refcount.h> -#include <linux/io_uring.h> struct io_wq; @@ -21,6 +20,15 @@ enum io_wq_cancel { IO_WQ_CANCEL_NOTFOUND, /* work not found */ }; +struct io_wq_work_node { + struct io_wq_work_node *next; +}; + +struct io_wq_work_list { + struct io_wq_work_node *first; + struct io_wq_work_node *last; +}; + static inline void wq_list_add_after(struct io_wq_work_node *node, struct io_wq_work_node *pos, struct io_wq_work_list *list) diff --git a/fs/io_uring.c b/fs/io_uring.c index 642ad08d8964..fd0807a3c9c3 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -454,6 +454,22 @@ struct io_ring_ctx { struct list_head tctx_list; }; +struct io_uring_task { + /* submission side */ + struct xarray xa; + struct wait_queue_head wait; + void *last; + void *io_wq; + struct percpu_counter inflight; + atomic_t in_idle; + bool sqpoll; + + spinlock_t task_lock; + struct io_wq_work_list task_list; + unsigned long task_state; + struct callback_head task_work; +}; + /* * First field must be the file pointer in all the * iocb unions! See also 'struct kiocb' in <linux/fs.h> diff --git a/include/linux/io_uring.h b/include/linux/io_uring.h index 9761a0ec9f95..79cde9906be0 100644 --- a/include/linux/io_uring.h +++ b/include/linux/io_uring.h @@ -5,31 +5,6 @@ #include <linux/sched.h> #include <linux/xarray.h> -struct io_wq_work_node { - struct io_wq_work_node *next; -}; - -struct io_wq_work_list { - struct io_wq_work_node *first; - struct io_wq_work_node *last; -}; - -struct io_uring_task { - /* submission side */ - struct xarray xa; - struct wait_queue_head wait; - void *last; - void *io_wq; - struct percpu_counter inflight; - atomic_t in_idle; - bool sqpoll; - - spinlock_t task_lock; - struct io_wq_work_list task_list; - unsigned long task_state; - struct callback_head task_work; -}; - #if defined(CONFIG_IO_URING) struct sock *io_uring_get_socket(struct file *file); void __io_uring_task_cancel(void); -- 2.25.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] io_uring: remove structures from include/linux/io_uring.h 2021-03-14 11:15 ` [PATCH 1/2] io_uring: remove structures from include/linux/io_uring.h Stefan Metzmacher @ 2021-03-14 11:50 ` Pavel Begunkov 2021-03-14 17:14 ` Stefan Metzmacher 2021-03-15 11:56 ` [PATCH v2 0/2] Some header cleanups Stefan Metzmacher 1 sibling, 1 reply; 10+ messages in thread From: Pavel Begunkov @ 2021-03-14 11:50 UTC (permalink / raw) To: Stefan Metzmacher, io-uring Both patches are really nice. However, 1/2 doesn't apply and looks it needs small stylistic changes, see nits below On 14/03/2021 11:15, Stefan Metzmacher wrote: > --- > fs/io-wq.h | 10 +++++++++- > fs/io_uring.c | 16 ++++++++++++++++ > include/linux/io_uring.h | 25 ------------------------- > 3 files changed, 25 insertions(+), 26 deletions(-) > > diff --git a/fs/io-wq.h b/fs/io-wq.h > index 1ac2f3248088..80d590564ff9 100644 > --- a/fs/io-wq.h > +++ b/fs/io-wq.h > @@ -2,7 +2,6 @@ > #define INTERNAL_IO_WQ_H > #include <linux/refcount.h> > -#include <linux/io_uring.h> > struct io_wq; > @@ -21,6 +20,15 @@ enum io_wq_cancel { > IO_WQ_CANCEL_NOTFOUND, /* work not found */ > }; newline (nl)? > +struct io_wq_work_node { > + struct io_wq_work_node *next; > +}; > + > +struct io_wq_work_list { > + struct io_wq_work_node *first; > + struct io_wq_work_node *last; > +}; > + > static inline void wq_list_add_after(struct io_wq_work_node *node, > struct io_wq_work_node *pos, > struct io_wq_work_list *list) > diff --git a/fs/io_uring.c b/fs/io_uring.c > index 642ad08d8964..fd0807a3c9c3 100644 > --- a/fs/io_uring.c > +++ b/fs/io_uring.c > @@ -454,6 +454,22 @@ struct io_ring_ctx { > struct list_head tctx_list; > }; nl > +struct io_uring_task { > + /* submission side */ > + struct xarray xa; > + struct wait_queue_head wait; > + void *last; > + void *io_wq; > + struct percpu_counter inflight; > + atomic_t in_idle; > + bool sqpoll; > + > + spinlock_t task_lock; > + struct io_wq_work_list task_list; > + unsigned long task_state; > + struct callback_head task_work; > +}; > + > /* > * First field must be the file pointer in all the > * iocb unions! See also 'struct kiocb' in <linux/fs.h> > diff --git a/include/linux/io_uring.h b/include/linux/io_uring.h > index 9761a0ec9f95..79cde9906be0 100644 > --- a/include/linux/io_uring.h > +++ b/include/linux/io_uring.h > @@ -5,31 +5,6 @@ > #include <linux/sched.h> > #include <linux/xarray.h> > -struct io_wq_work_node { > - struct io_wq_work_node *next; > -}; > - > -struct io_wq_work_list { > - struct io_wq_work_node *first; > - struct io_wq_work_node *last; > -}; > - > -struct io_uring_task { > - /* submission side */ > - struct xarray xa; > - struct wait_queue_head wait; > - void *last; > - void *io_wq; > - struct percpu_counter inflight; > - atomic_t in_idle; > - bool sqpoll; > - > - spinlock_t task_lock; > - struct io_wq_work_list task_list; > - unsigned long task_state; > - struct callback_head task_work; > -}; > - nl > #if defined(CONFIG_IO_URING) > struct sock *io_uring_get_socket(struct file *file); > void __io_uring_task_cancel(void); > -- Pavel Begunkov ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] io_uring: remove structures from include/linux/io_uring.h 2021-03-14 11:50 ` Pavel Begunkov @ 2021-03-14 17:14 ` Stefan Metzmacher 2021-03-15 11:02 ` Pavel Begunkov 0 siblings, 1 reply; 10+ messages in thread From: Stefan Metzmacher @ 2021-03-14 17:14 UTC (permalink / raw) To: Pavel Begunkov, io-uring Hi Pavel, > Both patches are really nice. However, 1/2 doesn't apply > and looks it needs small stylistic changes, see nits below It seems the mails got corrupted, I played with git imap-send... :-( Here a branch with the patches: https://git.samba.org/?p=metze/linux/wip.git;a=shortlog;h=refs/heads/io_uring-5.12 Should I resend them once I fixed my mail setup? metze ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] io_uring: remove structures from include/linux/io_uring.h 2021-03-14 17:14 ` Stefan Metzmacher @ 2021-03-15 11:02 ` Pavel Begunkov 2021-03-17 22:44 ` Jens Axboe 0 siblings, 1 reply; 10+ messages in thread From: Pavel Begunkov @ 2021-03-15 11:02 UTC (permalink / raw) To: Stefan Metzmacher, io-uring On 14/03/2021 17:14, Stefan Metzmacher wrote: > Hi Pavel, > >> Both patches are really nice. However, 1/2 doesn't apply >> and looks it needs small stylistic changes, see nits below > > It seems the mails got corrupted, I played with git imap-send... :-( > > Here a branch with the patches: > https://git.samba.org/?p=metze/linux/wip.git;a=shortlog;h=refs/heads/io_uring-5.12 > > Should I resend them once I fixed my mail setup? Who knows. Jens, do you want to take it for 5.12? I just recently converted tctx->last from file* to ctx* and had to gaze enough to not screw, in this light 2/2 looks good from the safety perspective. -- Pavel Begunkov ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] io_uring: remove structures from include/linux/io_uring.h 2021-03-15 11:02 ` Pavel Begunkov @ 2021-03-17 22:44 ` Jens Axboe 0 siblings, 0 replies; 10+ messages in thread From: Jens Axboe @ 2021-03-17 22:44 UTC (permalink / raw) To: Pavel Begunkov, Stefan Metzmacher, io-uring On 3/15/21 5:02 AM, Pavel Begunkov wrote: > On 14/03/2021 17:14, Stefan Metzmacher wrote: >> Hi Pavel, >> >>> Both patches are really nice. However, 1/2 doesn't apply >>> and looks it needs small stylistic changes, see nits below >> >> It seems the mails got corrupted, I played with git imap-send... :-( >> >> Here a branch with the patches: >> https://git.samba.org/?p=metze/linux/wip.git;a=shortlog;h=refs/heads/io_uring-5.12 >> >> Should I resend them once I fixed my mail setup? > Who knows. Jens, do you want to take it for 5.12? > > I just recently converted tctx->last from file* to ctx* and had to > gaze enough to not screw, in this light 2/2 looks good from the > safety perspective. Let's do them for 5.12 - Stefan, can you resend please? -- Jens Axboe ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 0/2] Some header cleanups 2021-03-14 11:15 ` [PATCH 1/2] io_uring: remove structures from include/linux/io_uring.h Stefan Metzmacher 2021-03-14 11:50 ` Pavel Begunkov @ 2021-03-15 11:56 ` Stefan Metzmacher 2021-03-15 11:56 ` [PATCH v2 1/2] io_uring: remove structures from include/linux/io_uring.h Stefan Metzmacher ` (2 more replies) 1 sibling, 3 replies; 10+ messages in thread From: Stefan Metzmacher @ 2021-03-15 11:56 UTC (permalink / raw) To: io-uring; +Cc: Stefan Metzmacher Hi, here're a few cleanups in order to make structures as private and typesafe as possible. It also cleans up the layering from io_uring.c being on top of io-wq.*. Changes since v1: - None, hopefully correct patch format now. Stefan Metzmacher (2): io_uring: remove structures from include/linux/io_uring.h io_uring: use typesafe pointers in io_uring_task fs/io-wq.h | 10 +++++++++- fs/io_uring.c | 16 ++++++++++++++++ include/linux/io_uring.h | 25 ------------------------- 3 files changed, 25 insertions(+), 26 deletions(-) -- 2.25.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 1/2] io_uring: remove structures from include/linux/io_uring.h 2021-03-15 11:56 ` [PATCH v2 0/2] Some header cleanups Stefan Metzmacher @ 2021-03-15 11:56 ` Stefan Metzmacher 2021-03-15 11:56 ` [PATCH v2 2/2] io_uring: use typesafe pointers in io_uring_task Stefan Metzmacher 2021-03-17 22:45 ` [PATCH v2 0/2] Some header cleanups Jens Axboe 2 siblings, 0 replies; 10+ messages in thread From: Stefan Metzmacher @ 2021-03-15 11:56 UTC (permalink / raw) To: io-uring; +Cc: Stefan Metzmacher --- fs/io-wq.h | 10 +++++++++- fs/io_uring.c | 16 ++++++++++++++++ include/linux/io_uring.h | 25 ------------------------- 3 files changed, 25 insertions(+), 26 deletions(-) diff --git a/fs/io-wq.h b/fs/io-wq.h index 1ac2f3248088..80d590564ff9 100644 --- a/fs/io-wq.h +++ b/fs/io-wq.h @@ -2,7 +2,6 @@ #define INTERNAL_IO_WQ_H #include <linux/refcount.h> -#include <linux/io_uring.h> struct io_wq; @@ -21,6 +20,15 @@ enum io_wq_cancel { IO_WQ_CANCEL_NOTFOUND, /* work not found */ }; +struct io_wq_work_node { + struct io_wq_work_node *next; +}; + +struct io_wq_work_list { + struct io_wq_work_node *first; + struct io_wq_work_node *last; +}; + static inline void wq_list_add_after(struct io_wq_work_node *node, struct io_wq_work_node *pos, struct io_wq_work_list *list) diff --git a/fs/io_uring.c b/fs/io_uring.c index 58d62dd9f8e4..52b5ed71d770 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -454,6 +454,22 @@ struct io_ring_ctx { struct list_head tctx_list; }; +struct io_uring_task { + /* submission side */ + struct xarray xa; + struct wait_queue_head wait; + void *last; + void *io_wq; + struct percpu_counter inflight; + atomic_t in_idle; + bool sqpoll; + + spinlock_t task_lock; + struct io_wq_work_list task_list; + unsigned long task_state; + struct callback_head task_work; +}; + /* * First field must be the file pointer in all the * iocb unions! See also 'struct kiocb' in <linux/fs.h> diff --git a/include/linux/io_uring.h b/include/linux/io_uring.h index 9761a0ec9f95..79cde9906be0 100644 --- a/include/linux/io_uring.h +++ b/include/linux/io_uring.h @@ -5,31 +5,6 @@ #include <linux/sched.h> #include <linux/xarray.h> -struct io_wq_work_node { - struct io_wq_work_node *next; -}; - -struct io_wq_work_list { - struct io_wq_work_node *first; - struct io_wq_work_node *last; -}; - -struct io_uring_task { - /* submission side */ - struct xarray xa; - struct wait_queue_head wait; - void *last; - void *io_wq; - struct percpu_counter inflight; - atomic_t in_idle; - bool sqpoll; - - spinlock_t task_lock; - struct io_wq_work_list task_list; - unsigned long task_state; - struct callback_head task_work; -}; - #if defined(CONFIG_IO_URING) struct sock *io_uring_get_socket(struct file *file); void __io_uring_task_cancel(void); -- 2.25.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v2 2/2] io_uring: use typesafe pointers in io_uring_task 2021-03-15 11:56 ` [PATCH v2 0/2] Some header cleanups Stefan Metzmacher 2021-03-15 11:56 ` [PATCH v2 1/2] io_uring: remove structures from include/linux/io_uring.h Stefan Metzmacher @ 2021-03-15 11:56 ` Stefan Metzmacher 2021-03-17 22:45 ` [PATCH v2 0/2] Some header cleanups Jens Axboe 2 siblings, 0 replies; 10+ messages in thread From: Stefan Metzmacher @ 2021-03-15 11:56 UTC (permalink / raw) To: io-uring; +Cc: Stefan Metzmacher Signed-off-by: Stefan Metzmacher <[email protected]> --- fs/io_uring.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/io_uring.c b/fs/io_uring.c index 52b5ed71d770..f048c42d8b8f 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -458,8 +458,8 @@ struct io_uring_task { /* submission side */ struct xarray xa; struct wait_queue_head wait; - void *last; - void *io_wq; + const struct io_ring_ctx *last; + struct io_wq *io_wq; struct percpu_counter inflight; atomic_t in_idle; bool sqpoll; -- 2.25.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v2 0/2] Some header cleanups 2021-03-15 11:56 ` [PATCH v2 0/2] Some header cleanups Stefan Metzmacher 2021-03-15 11:56 ` [PATCH v2 1/2] io_uring: remove structures from include/linux/io_uring.h Stefan Metzmacher 2021-03-15 11:56 ` [PATCH v2 2/2] io_uring: use typesafe pointers in io_uring_task Stefan Metzmacher @ 2021-03-17 22:45 ` Jens Axboe 2 siblings, 0 replies; 10+ messages in thread From: Jens Axboe @ 2021-03-17 22:45 UTC (permalink / raw) To: Stefan Metzmacher, io-uring On 3/15/21 5:56 AM, Stefan Metzmacher wrote: > Hi, > > here're a few cleanups in order to make structures as private and > typesafe as possible. It also cleans up the layering from io_uring.c > being on top of io-wq.*. > > Changes since v1: > > - None, hopefully correct patch format now. And I see you already did resend, thanks I'll take them for 5.12. -- Jens Axboe ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 2/2] io_uring: use typesafe pointers in io_uring_task [not found] <[email protected]> 2021-03-14 11:15 ` [PATCH 1/2] io_uring: remove structures from include/linux/io_uring.h Stefan Metzmacher @ 2021-03-14 11:15 ` Stefan Metzmacher 1 sibling, 0 replies; 10+ messages in thread From: Stefan Metzmacher @ 2021-03-14 11:15 UTC (permalink / raw) To: io-uring Signed-off-by: Stefan Metzmacher <[email protected]> --- fs/io_uring.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/io_uring.c b/fs/io_uring.c index fd0807a3c9c3..9b8cd9559584 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -458,8 +458,8 @@ struct io_uring_task { /* submission side */ struct xarray xa; struct wait_queue_head wait; - void *last; - void *io_wq; + const struct io_ring_ctx *last; + struct io_wq *io_wq; struct percpu_counter inflight; atomic_t in_idle; bool sqpoll; -- 2.25.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
end of thread, other threads:[~2021-03-17 22:46 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <[email protected]>
2021-03-14 11:15 ` [PATCH 1/2] io_uring: remove structures from include/linux/io_uring.h Stefan Metzmacher
2021-03-14 11:50 ` Pavel Begunkov
2021-03-14 17:14 ` Stefan Metzmacher
2021-03-15 11:02 ` Pavel Begunkov
2021-03-17 22:44 ` Jens Axboe
2021-03-15 11:56 ` [PATCH v2 0/2] Some header cleanups Stefan Metzmacher
2021-03-15 11:56 ` [PATCH v2 1/2] io_uring: remove structures from include/linux/io_uring.h Stefan Metzmacher
2021-03-15 11:56 ` [PATCH v2 2/2] io_uring: use typesafe pointers in io_uring_task Stefan Metzmacher
2021-03-17 22:45 ` [PATCH v2 0/2] Some header cleanups Jens Axboe
2021-03-14 11:15 ` [PATCH 2/2] io_uring: use typesafe pointers in io_uring_task Stefan Metzmacher
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox