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. > > 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