Hi Jason,
On Mon, 23 Sept 2024 at 20:52, Jason Gunthorpe [off-list ref] wrote:
On Fri, Sep 20, 2024 at 02:14:02PM +0800, Yunsheng Lin wrote:
quoted
I am not sure what dose the API that allows netdev to "give" struct device
to page_pool look like or how to implement the API yet, but the obvious way
to stall the calling of device_del() is to wait for the inflight
page to
It is not device_del() you need to stall, but the remove() function of
the device driver.
Once all drivers have been unbound the DMA API can be reconfigured and
all existing DMA mappings must be concluded before this happens,
otherwise there will be problems.
So, stalling something like unregister_netdevice() would be a better
target - though stalling forever on driver unbind would not be
acceptable.
TBH, I have doubts that even stalling it for small amounts of time is
going to disrupt userspace and people are going to yell at us.
I am gonna repeat myself here, but I think keeping a list of the
inflight SKBs that we need to unmap when the interface goes down, is
the most complex, but less disruptive solution
Thanks
/Ilias
Jason