io_uring: don't take fs for recvmsg/sendmsg
We don't even allow not plain data msg_control, which is disallowed in __sys_{send,revb}msg_sock(). So no need in fs for IORING_OP_SENDMSG and IORING_OP_RECVMSG. fs->lock is less contanged not as much as before, but there are cases that can be, e.g. IOSQE_ASYNC. Signed-off-by: Pavel Begunkov <asml.silence@gmail.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
2e9dbe902d
commit
10cad2c40d
@ -852,8 +852,7 @@ static const struct io_op_def io_op_defs[] = {
|
|||||||
.pollout = 1,
|
.pollout = 1,
|
||||||
.needs_async_data = 1,
|
.needs_async_data = 1,
|
||||||
.async_size = sizeof(struct io_async_msghdr),
|
.async_size = sizeof(struct io_async_msghdr),
|
||||||
.work_flags = IO_WQ_WORK_MM | IO_WQ_WORK_BLKCG |
|
.work_flags = IO_WQ_WORK_MM | IO_WQ_WORK_BLKCG,
|
||||||
IO_WQ_WORK_FS,
|
|
||||||
},
|
},
|
||||||
[IORING_OP_RECVMSG] = {
|
[IORING_OP_RECVMSG] = {
|
||||||
.needs_file = 1,
|
.needs_file = 1,
|
||||||
@ -862,8 +861,7 @@ static const struct io_op_def io_op_defs[] = {
|
|||||||
.buffer_select = 1,
|
.buffer_select = 1,
|
||||||
.needs_async_data = 1,
|
.needs_async_data = 1,
|
||||||
.async_size = sizeof(struct io_async_msghdr),
|
.async_size = sizeof(struct io_async_msghdr),
|
||||||
.work_flags = IO_WQ_WORK_MM | IO_WQ_WORK_BLKCG |
|
.work_flags = IO_WQ_WORK_MM | IO_WQ_WORK_BLKCG,
|
||||||
IO_WQ_WORK_FS,
|
|
||||||
},
|
},
|
||||||
[IORING_OP_TIMEOUT] = {
|
[IORING_OP_TIMEOUT] = {
|
||||||
.needs_async_data = 1,
|
.needs_async_data = 1,
|
||||||
|
Loading…
Reference in New Issue
Block a user