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

Jens Axboe
2024-10-10T13:19:32Z

On 10/10/24 7:09 AM, Pavel Begunkov wrote:
> 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.

Yep you're right, it is dropped before this section anyway.

--
Jens Axboe