Messages in this thread | | | Date | Wed, 5 Jul 2023 16:41:11 +0200 | Subject | Re: [PATCH RFC net-next 2/4] net: page_pool: avoid calling no-op externals when possible | From | Alexander Lobakin <> |
| |
From: Jakub Kicinski <kuba@kernel.org> Date: Mon, 3 Jul 2023 13:32:07 -0700
> On Fri, 30 Jun 2023 17:34:02 +0200 Alexander Lobakin wrote: >>> I am not a fan of having the page pool force the syncing either. Last >>> I knew I thought the PP_FLAG_DMA_SYNC_DEV was meant to be set by the >> >> Please follow the logics of the patch. >> >> 1. The driver sets DMA_SYNC_DEV. >> 2. PP tries to shortcut and replaces it with MAYBE_SYNC. >> 3. If dma_need_sync() returns true for some page, it gets replaced back >> to DMA_SYNC_DEV, no further dma_need_sync() calls for that pool. >> >> OR >> >> 1. The driver doesn't set DMA_SYNC_DEV. >> 2. PP doesn't turn on MAYBE_SYNC. >> 3. No dma_need_sync() tests. >> >> Where does PP force syncs for drivers which don't need them? > > I think both Alex and I got confused about what's going on here. > > Could you reshuffle the code somehow to make it more obvious? > Rename the flag, perhaps put it in a different field than > the driver-set PP flags?
PP currently doesn't have a field for internal flags or so, so I reused the existing one :s But you're probably right, that would make it more obvious.
1. Driver sets PP_SYNC_DEV. 2. PP doesn't set its internal one until dma_need_sync() returns false. 3. PP-sync-for-dev checks for the internal flag.
Although needs more lines to be changed :D
Thanks, Olek
| |