linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
To: Kefeng Wang <wangkefeng.wang@huawei.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	David Hildenbrand <david@redhat.com>,
	Oscar Salvador <osalvador@suse.de>,
	Muchun Song <muchun.song@linux.dev>,
	linux-mm@kvack.org, sidhartha.kumar@oracle.com,
	jane.chu@oracle.com, Zi Yan <ziy@nvidia.com>,
	Vlastimil Babka <vbabka@suse.cz>,
	Brendan Jackman <jackmanb@google.com>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Matthew Wilcox <willy@infradead.org>
Subject: Re: [PATCH v5 5/6] mm: cma: add cma_alloc_frozen{_compound}()
Date: Thu, 8 Jan 2026 06:19:07 +0200	[thread overview]
Message-ID: <aV8wOx_O5Esy5fni@umbar.lan> (raw)
In-Reply-To: <20251230072422.265265-6-wangkefeng.wang@huawei.com>

On Tue, Dec 30, 2025 at 03:24:21PM +0800, Kefeng Wang wrote:
> Introduce cma_alloc_frozen{_compound}() helper to alloc pages without
> incrementing their refcount, then convert hugetlb cma to use the
> cma_alloc_frozen_compound() and cma_release_frozen() and remove the
> unused cma_{alloc,free}_folio(), also move the cma_validate_zones()
> into mm/internal.h since no outside user.
> 
> The set_pages_refcounted() is only called to set non-compound pages
> after above changes, so remove the processing about PageHead.
> 
> Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
> ---
>  include/linux/cma.h |  26 +++--------
>  mm/cma.c            | 107 +++++++++++++++++++++++++++++---------------
>  mm/hugetlb_cma.c    |  24 +++++-----
>  mm/internal.h       |  10 ++---
>  4 files changed, 97 insertions(+), 70 deletions(-)
> 

This breaks booting of Qualcomm RB3 Gen2:

[    9.500774] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000008
[    9.509862] Mem abort info:
[    9.512745]   ESR = 0x0000000096000004
[    9.516597]   EC = 0x25: DABT (current EL), IL = 32 bits
[    9.522050]   SET = 0, FnV = 0
[    9.525194]   EA = 0, S1PTW = 0
[    9.528429]   FSC = 0x04: level 0 translation fault
[    9.533440] Data abort info:
[    9.536400]   ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000
[    9.542030]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0
[    9.547224]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
[    9.552684] [0000000000000008] user address but active_mm is swapper
[    9.559237] Internal error: Oops: 0000000096000004 [#1]  SMP
[    9.565054] Modules linked in:
[    9.568202] CPU: 7 UID: 0 PID: 59 Comm: kworker/u32:1 Not tainted 6.19.0-rc3-00212-gfb9a328d3040 #4016 PREEMPT
[    9.578552] Hardware name: Qualcomm Technologies, Inc. Robotics RB3gen2 (DT)
[    9.585792] Workqueue: events_unbound deferred_probe_work_func
[    9.591791] pstate: 204000c5 (nzCv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[    9.598941] pc : __get_pfnblock_flags_mask.isra.0+0x30/0x60
[    9.604669] lr : free_pcppages_bulk+0x120/0x274
[    9.609327] sp : ffff8000808ab610
[    9.612741] x29: ffff8000808ab610 x28: 0000000000000001 x27: ffff0001797fa380
[    9.620071] x26: ffffa5ded75b3800 x25: 0000000000000004 x24: ffff0001797fa390
[    9.627399] x23: ffffa5ded7850ea0 x22: 0000000000000001 x21: 000000000000003a
[    9.634728] x20: ffff00017f41b020 x19: ffff0001797fa3f0 x18: ffff000080a2a9e8
[    9.642057] x17: ffff000080a2a9e8 x16: ffff0000803c1b50 x15: 0000000000000003
[    9.649385] x14: 0000000000000028 x13: 0000000000006aa1 x12: 0000000000000000
[    9.656707] x11: 0000000000000001 x10: 0000000000000000 x9 : fffffdffc1f8c000
[    9.664037] x8 : ffff00017f41b028 x7 : ffff00017f41ae00 x6 : fffffdffc1f8c008
[    9.671364] x5 : fffffc08070506c0 x4 : 000001fffff8100e x3 : 0001fffff8100e0a
[    9.678693] x2 : 0000000000000000 x1 : 0000000000000017 x0 : fffffc08070506c0
[    9.686021] Call trace:
[    9.688537]  __get_pfnblock_flags_mask.isra.0+0x30/0x60 (P)
[    9.694257]  free_frozen_page_commit.isra.0+0x1a8/0x478
[    9.699628]  __free_frozen_pages+0x240/0x5c0
[    9.704013]  free_contig_frozen_range+0xc8/0x110
[    9.708764]  __cma_release_frozen+0x54/0x188
[    9.713159]  cma_release+0x4c/0x78
[    9.716661]  dma_free_contiguous+0x2c/0x74
[    9.720870]  dma_direct_free+0xf4/0x188
[    9.724814]  dma_free_attrs+0xa8/0x1d8
[    9.728666]  qcom_scm_pas_init_image+0x178/0x18c
[    9.733414]  qcom_mdt_pas_init+0x130/0x23c
[    9.737623]  qcom_mdt_load+0x44/0xa0
[    9.741299]  venus_boot+0x14c/0x2e8
[    9.744891]  venus_probe+0x32c/0x5d8
[    9.748567]  platform_probe+0x5c/0xa4
[    9.752332]  really_probe+0xbc/0x2c0
[    9.756009]  __driver_probe_device+0x78/0x120
[    9.760483]  driver_probe_device+0x3c/0x160
[    9.764779]  __device_attach_driver+0xb8/0x140
[    9.769347]  bus_for_each_drv+0x88/0xe8
[    9.773290]  __device_attach+0xa0/0x198
[    9.777232]  device_initial_probe+0x50/0x54
[    9.781527]  bus_probe_device+0x38/0xac
[    9.785468]  deferred_probe_work_func+0x90/0xcc
[    9.790130]  process_one_work+0x214/0x64c
[    9.794251]  worker_thread+0x1bc/0x360
[    9.798103]  kthread+0x14c/0x220
[    9.801424]  ret_from_fork+0x10/0x20
[    9.805103] Code: f8647842 f100005f 8b231043 9a821062 (f9400442)
[    9.811358] ---[ end trace 0000000000000000 ]---

-- 
With best wishes
Dmitry


  parent reply	other threads:[~2026-01-08  4:19 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-30  7:24 [PATCH v5 mm-new 0/6] mm: hugetlb: allocate frozen gigantic folio Kefeng Wang
2025-12-30  7:24 ` [PATCH v5 1/6] mm: debug_vm_pgtable: add debug_vm_pgtable_free_huge_page() Kefeng Wang
2026-01-02 18:51   ` Sid Kumar
2025-12-30  7:24 ` [PATCH v5 2/6] mm: page_alloc: add __split_page() Kefeng Wang
2026-01-02 18:55   ` Sid Kumar
2025-12-30  7:24 ` [PATCH v5 3/6] mm: cma: kill cma_pages_valid() Kefeng Wang
2025-12-30  7:24 ` [PATCH v5 4/6] mm: page_alloc: add alloc_contig_frozen_{range,pages}() Kefeng Wang
2025-12-31  2:57   ` Zi Yan
2026-01-02 21:05   ` Sid Kumar
2025-12-30  7:24 ` [PATCH v5 5/6] mm: cma: add cma_alloc_frozen{_compound}() Kefeng Wang
2025-12-31  2:59   ` Zi Yan
2026-01-08  4:19   ` Dmitry Baryshkov [this message]
2026-01-08  6:57     ` Kefeng Wang
2025-12-30  7:24 ` [PATCH v5 6/6] mm: hugetlb: allocate frozen pages for gigantic allocation Kefeng Wang
2025-12-31  2:50   ` Muchun Song
2025-12-31  3:00   ` Zi Yan
2025-12-30 18:17 ` [PATCH v5 mm-new 0/6] mm: hugetlb: allocate frozen gigantic folio Andrew Morton
2026-01-07 17:31 ` Claudiu Beznea
2026-01-07 18:25   ` Andrew Morton
2026-01-07 18:26   ` Zi Yan
2026-01-07 18:39   ` Mark Brown
2026-01-07 18:50     ` Andrew Morton
2026-01-07 19:38     ` Zi Yan
     [not found]       ` <CGME20260107225819eucas1p2de678d4e810fdbde87192b83033a814c@eucas1p2.samsung.com>
2026-01-07 22:58         ` Marek Szyprowski
2026-01-08  1:05       ` Kefeng Wang
2026-01-08  1:53         ` Kefeng Wang
2026-01-08  3:25           ` Zi Yan
2026-01-08  7:10             ` Kefeng Wang
2026-01-08  9:00       ` Claudiu Beznea
2026-01-08  9:14       ` Konrad Dybcio

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aV8wOx_O5Esy5fni@umbar.lan \
    --to=dmitry.baryshkov@oss.qualcomm.com \
    --cc=akpm@linux-foundation.org \
    --cc=david@redhat.com \
    --cc=hannes@cmpxchg.org \
    --cc=jackmanb@google.com \
    --cc=jane.chu@oracle.com \
    --cc=linux-mm@kvack.org \
    --cc=muchun.song@linux.dev \
    --cc=osalvador@suse.de \
    --cc=sidhartha.kumar@oracle.com \
    --cc=vbabka@suse.cz \
    --cc=wangkefeng.wang@huawei.com \
    --cc=willy@infradead.org \
    --cc=ziy@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox