Re: [PATCH v1 14/15] io_uring/zcrx: set pp memory provider for an rx queue

Pavel Begunkov
2024-10-10T13:09:13Z

On 10/9/24 19:42, Jens Axboe wrote:
> On 10/7/24 4:16 PM, David Wei wrote:
>> From: David Wei <davidhwei@meta.com>
...
>> if (copy_to_user(arg, &reg, sizeof(reg))) {
>> + io_close_zc_rxq(ifq);
>> ret = -EFAULT;
>> goto err;
>> }
>> if (copy_to_user(u64_to_user_ptr(reg.area_ptr), &area, sizeof(area))) {
>> + io_close_zc_rxq(ifq);
>> ret = -EFAULT;
>> goto err;
>> }
>> ctx->ifq = ifq;
>> return 0;
>
> Not added in this patch, but since I was looking at rtnl lock coverage,
> it's OK to potentially fault while holding this lock? I'm assuming it
> is, as I can't imagine any faulting needing to grab it. Not even from
> nbd ;-)

I believe it should be fine to fault, but regardless neither this
chunk nor page pinning is under rtnl. Only netdev_rx_queue_restart()
is under it from heavy stuff, intentionally trying to minimise the
section as it's a global lock.

--
Pavel Begunkov