Message ID | 20250314-page-pool-track-dma-v1-0-c212e57a74c2@redhat.com (mailing list archive) |
---|---|
Headers | show |
Series | Fix late DMA unmap crash for page pool | expand |
I know this solution is still under discussion, but anyway, I tested the scenarios I reported in: [0]https://lore.kernel.org/lkml/8067f204-1380-4d37-8ffd-007fc6f26738@kernel.org/T/ It seems the problem has been solved. Thanks! Tested-by: Yonglong Liu<liuyonglong@huawei.com> On 2025/3/14 18:10, Toke Høiland-Jørgensen wrote: > This series fixes the late dma_unmap crash for page pool first reported > by Yonglong Liu in [0]. It is an alternative approach to the one > submitted by Yunsheng Lin, most recently in [1]. The first two commits > are small refactors of the page pool code, in preparation of the main > change in patch 3. See the commit message of patch 3 for the details. > > -Toke > > [0] https://lore.kernel.org/lkml/8067f204-1380-4d37-8ffd-007fc6f26738@kernel.org/T/ > [1] https://lore.kernel.org/r/20250307092356.638242-1-linyunsheng@huawei.com > > Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com> > --- > Toke Høiland-Jørgensen (3): > page_pool: Move pp_magic check into helper functions > page_pool: Turn dma_sync and dma_sync_cpu fields into a bitmap > page_pool: Track DMA-mapped pages and unmap them when destroying the pool > > drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c | 4 +- > include/net/page_pool/helpers.h | 6 +- > include/net/page_pool/types.h | 54 +++++++++++++++- > mm/page_alloc.c | 9 +-- > net/core/devmem.c | 3 +- > net/core/netmem_priv.h | 33 +++++++++- > net/core/page_pool.c | 81 ++++++++++++++++++++---- > net/core/skbuff.c | 16 +---- > net/core/xdp.c | 4 +- > 9 files changed, 164 insertions(+), 46 deletions(-) > --- > base-commit: 8ef890df4031121a94407c84659125cbccd3fdbe > change-id: 20250310-page-pool-track-dma-0332343a460e > >
This series fixes the late dma_unmap crash for page pool first reported by Yonglong Liu in [0]. It is an alternative approach to the one submitted by Yunsheng Lin, most recently in [1]. The first two commits are small refactors of the page pool code, in preparation of the main change in patch 3. See the commit message of patch 3 for the details. -Toke [0] https://lore.kernel.org/lkml/8067f204-1380-4d37-8ffd-007fc6f26738@kernel.org/T/ [1] https://lore.kernel.org/r/20250307092356.638242-1-linyunsheng@huawei.com Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com> --- Toke Høiland-Jørgensen (3): page_pool: Move pp_magic check into helper functions page_pool: Turn dma_sync and dma_sync_cpu fields into a bitmap page_pool: Track DMA-mapped pages and unmap them when destroying the pool drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c | 4 +- include/net/page_pool/helpers.h | 6 +- include/net/page_pool/types.h | 54 +++++++++++++++- mm/page_alloc.c | 9 +-- net/core/devmem.c | 3 +- net/core/netmem_priv.h | 33 +++++++++- net/core/page_pool.c | 81 ++++++++++++++++++++---- net/core/skbuff.c | 16 +---- net/core/xdp.c | 4 +- 9 files changed, 164 insertions(+), 46 deletions(-) --- base-commit: 8ef890df4031121a94407c84659125cbccd3fdbe change-id: 20250310-page-pool-track-dma-0332343a460e