On 07/11/2020 16:02, Pavel Begunkov wrote: > On 07/11/2020 13:46, Stefan Metzmacher wrote: >> Hi Pavel, >> >>> We don't even allow not plain data msg_control, which is disallowed in __sys_{send,revb}msg_sock(). >> >> Can't we better remove these checks and allow msg_control? >> For me it's a limitation that I would like to be removed. > > We can grab fs only in specific situations as you mentioned, by e.g. > adding a switch(opcode) in io_prep_async_work(), but that's the easy > part. All msg_control should be dealt one by one as they do different > things. And it's not the fact that they ever require fs. BTW, Jens mentioned that there is a queued patch that allows plain data msg_control. Are those not enough? > >> >> If there's a cost using IO_WQ_WORK_FS, would it be possible to use IO_WQ_WORK_FS only it msg_control is actually use> >> if (msg->msg_control || msg->msg_controllen) >> static const struct io_op_def sendmsg_control_op_def = { >> ... >> }; >> >> something = &sendmsg_control_op_def; >> } > -- Pavel Begunkov