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 <redacted>
---
fs/io-wq.c | 7 +------
include/uapi/linux/io_uring.h | 8 ++++++++
2 files changed, 9 insertions(+), 6 deletions(-)
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
From: Dmitry V. Levin <hidden> Date: 2021-09-12 22:24:40
On Sun, Sep 12, 2021 at 12:29:41PM -0600, Jens Axboe wrote:
On 9/12/21 6:24 AM, Eugene Syromiatnikov wrote:
quoted
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
On Sun, Sep 12, 2021 at 12:29:41PM -0600, Jens Axboe wrote:
quoted
On 9/12/21 6:24 AM, Eugene Syromiatnikov wrote:
quoted
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