mbox series

[net-next,0/3] Fix late DMA unmap crash for page pool

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

Message

Toke Høiland-Jørgensen March 14, 2025, 10:10 a.m. UTC
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

Comments

Yonglong Liu March 17, 2025, 2:02 a.m. UTC | #1
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
>
>