On Tue, 13 Aug 2024 03:31:13 +0100 Pavel Begunkov wrote:
I'm getting lost, so repeating myself a bit. What I think would be a good approach is if we get an error back from the driver if it doesn't support netiov / providers.
netdev_rx_queue_restart() { ... err = dev->queue_mgmt_ops->ndo_queue_mem_alloc(); if (err == -EOPNOTSUPP) // the driver doesn't support netiov return -EOPNOTSUPP; ... }
That can be done if drivers opt in to support providers, e.g. via a page pool flag.
What I think wouldn't be a great option is getting back a "success" from the driver even though it ignored
page pool params are not the right place for a supported flag. Sooner or later we'll want to expose this flag to user space.