io-uring.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] io-wq: expose IO_WQ_ACCT_* enumeration items to UAPI
@ 2021-09-12 12:24 Eugene Syromiatnikov
  2021-09-12 18:29 ` Jens Axboe
  0 siblings, 1 reply; 4+ messages in thread
From: Eugene Syromiatnikov @ 2021-09-12 12:24 UTC (permalink / raw)
  To: Jens Axboe, Pavel Begunkov
  Cc: io-uring, linux-kernel, Dmitry V. Levin, linux-api

These are used to index aargument of IORING_REGISTER_IOWQ_MAX_WORKERS
io_uring_register command, so they are to be exposed in UAPI.

Signed-off-by: Eugene Syromiatnikov <esyr@redhat.com>
---
 fs/io-wq.c                    | 7 +------
 include/uapi/linux/io_uring.h | 8 ++++++++
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/fs/io-wq.c b/fs/io-wq.c
index 6c55362..5e7cd7c 100644
--- a/fs/io-wq.c
+++ b/fs/io-wq.c
@@ -14,6 +14,7 @@
 #include <linux/rculist_nulls.h>
 #include <linux/cpu.h>
 #include <linux/tracehook.h>
+#include <uapi/linux/io_uring.h>
 
 #include "io-wq.h"
 
@@ -77,12 +78,6 @@ struct io_wqe_acct {
 	unsigned long flags;
 };
 
-enum {
-	IO_WQ_ACCT_BOUND,
-	IO_WQ_ACCT_UNBOUND,
-	IO_WQ_ACCT_NR,
-};
-
 /*
  * Per-node worker thread pool
  */
diff --git a/include/uapi/linux/io_uring.h b/include/uapi/linux/io_uring.h
index 59ef351..d67a3cc 100644
--- a/include/uapi/linux/io_uring.h
+++ b/include/uapi/linux/io_uring.h
@@ -324,6 +324,14 @@ enum {
 	IORING_REGISTER_LAST
 };
 
+/* io-wq worker limit categories */
+enum {
+	IO_WQ_ACCT_BOUND,
+	IO_WQ_ACCT_UNBOUND,
+
+	IO_WQ_ACCT_NR /* Non-UAPI */
+};
+
 /* deprecated, see struct io_uring_rsrc_update */
 struct io_uring_files_update {
 	__u32 offset;
-- 
2.1.4


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] io-wq: expose IO_WQ_ACCT_* enumeration items to UAPI
  2021-09-12 12:24 [PATCH] io-wq: expose IO_WQ_ACCT_* enumeration items to UAPI Eugene Syromiatnikov
@ 2021-09-12 18:29 ` Jens Axboe
  2021-09-12 22:24   ` Dmitry V. Levin
  0 siblings, 1 reply; 4+ messages in thread
From: Jens Axboe @ 2021-09-12 18:29 UTC (permalink / raw)
  To: Eugene Syromiatnikov, Pavel Begunkov
  Cc: io-uring, linux-kernel, Dmitry V. Levin, linux-api

On 9/12/21 6:24 AM, Eugene Syromiatnikov wrote:
> These are used to index aargument of IORING_REGISTER_IOWQ_MAX_WORKERS
> io_uring_register command, so they are to be exposed in UAPI.

Not sure that's necessary, as it's really just a boolean values - is
the worker type bounded or not. That said, not against making it
available for userspace, but definitely not IO_WQ_ACCT_NR. It
should probably just go in liburing, I guess.

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] io-wq: expose IO_WQ_ACCT_* enumeration items to UAPI
  2021-09-12 18:29 ` Jens Axboe
@ 2021-09-12 22:24   ` Dmitry V. Levin
  2021-09-12 22:49     ` Jens Axboe
  0 siblings, 1 reply; 4+ messages in thread
From: Dmitry V. Levin @ 2021-09-12 22:24 UTC (permalink / raw)
  To: Jens Axboe
  Cc: Eugene Syromiatnikov, Pavel Begunkov, io-uring, linux-kernel, linux-api

On Sun, Sep 12, 2021 at 12:29:41PM -0600, Jens Axboe wrote:
> On 9/12/21 6:24 AM, Eugene Syromiatnikov wrote:
> > These are used to index aargument of IORING_REGISTER_IOWQ_MAX_WORKERS
> > io_uring_register command, so they are to be exposed in UAPI.
> 
> Not sure that's necessary, as it's really just a boolean values - is
> the worker type bounded or not. That said, not against making it
> available for userspace, but definitely not IO_WQ_ACCT_NR. It
> should probably just go in liburing, I guess.

If IO_WQ_ACCT_* were just boolean values, no enum would have been
introduced in the first place.  What's the benefit of hiding
the API in the implementation, or burying it inside liburing?


-- 
ldv

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] io-wq: expose IO_WQ_ACCT_* enumeration items to UAPI
  2021-09-12 22:24   ` Dmitry V. Levin
@ 2021-09-12 22:49     ` Jens Axboe
  0 siblings, 0 replies; 4+ messages in thread
From: Jens Axboe @ 2021-09-12 22:49 UTC (permalink / raw)
  To: Dmitry V. Levin
  Cc: Eugene Syromiatnikov, Pavel Begunkov, io-uring, linux-kernel, linux-api

On 9/12/21 4:24 PM, Dmitry V. Levin wrote:
> On Sun, Sep 12, 2021 at 12:29:41PM -0600, Jens Axboe wrote:
>> On 9/12/21 6:24 AM, Eugene Syromiatnikov wrote:
>>> These are used to index aargument of IORING_REGISTER_IOWQ_MAX_WORKERS
>>> io_uring_register command, so they are to be exposed in UAPI.
>>
>> Not sure that's necessary, as it's really just a boolean values - is
>> the worker type bounded or not. That said, not against making it
>> available for userspace, but definitely not IO_WQ_ACCT_NR. It
>> should probably just go in liburing, I guess.
> 
> If IO_WQ_ACCT_* were just boolean values, no enum would have been
> introduced in the first place.  What's the benefit of hiding
> the API in the implementation, or burying it inside liburing?

Because it's easier to grok internally with an enum instead of
using 0/1. And you could argue that's the case too for an app,
and as I said, I'm not against making them exposed, but the _NR
part is strictly internal.

Just add separate defines or an enum in io_uring.h:

enum {
	IO_WQ_BOUND,
	IO_WQ_UNBOUND,
};

and be done with it.

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-09-12 22:49 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-12 12:24 [PATCH] io-wq: expose IO_WQ_ACCT_* enumeration items to UAPI Eugene Syromiatnikov
2021-09-12 18:29 ` Jens Axboe
2021-09-12 22:24   ` Dmitry V. Levin
2021-09-12 22:49     ` Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).