From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7B195C02183 for ; Fri, 17 Jan 2025 22:53:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D0A526B0089; Fri, 17 Jan 2025 17:53:00 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C93746B008A; Fri, 17 Jan 2025 17:53:00 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B33776B008C; Fri, 17 Jan 2025 17:53:00 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 8E25F6B0089 for ; Fri, 17 Jan 2025 17:53:00 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 494E3160ED2 for ; Fri, 17 Jan 2025 22:53:00 +0000 (UTC) X-FDA: 83018445720.11.C9E6B5A Received: from mail-qt1-f172.google.com (mail-qt1-f172.google.com [209.85.160.172]) by imf22.hostedemail.com (Postfix) with ESMTP id 80891C0006 for ; Fri, 17 Jan 2025 22:52:58 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=hhGLJWfc; spf=pass (imf22.hostedemail.com: domain of jyescas@google.com designates 209.85.160.172 as permitted sender) smtp.mailfrom=jyescas@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1737154378; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=omr+VU0o95DBX6qkN6Jalo4sfF4R5t9C6AKKjXipVEw=; b=Yb02X3D/XxNBgaMR2CiR7AC70OKJJL4r4Y8n5b2PmcYeJpE9rr7YufQgNQftilBbY3su/j 0hrofl6PbF2MoqFWGHo8t7g9XutkXwq1mHsjbEmMVuGvHXPURJBbYpN4jPRCDZ04kD02Ti x9PrDm5/nIzs9ir/8lNfqbUFObZWZFM= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=hhGLJWfc; spf=pass (imf22.hostedemail.com: domain of jyescas@google.com designates 209.85.160.172 as permitted sender) smtp.mailfrom=jyescas@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1737154378; a=rsa-sha256; cv=none; b=oK3fZ2A0RrlCAnkSRAdn4QHX1y9SBQBmzhH4gl8tJtRoa0LP52/RwLcZwhbd+tpTgmcf4v BGiIGzLtExYY7KYreMijRYALw1p3w2lK6G3d5GEmu2W7uAmi3P3cMFcmjKRhrrR1SZy6Be gNevWYz6VcVtP96sP86/7OBvBD/1FVs= Received: by mail-qt1-f172.google.com with SMTP id d75a77b69052e-467abce2ef9so73411cf.0 for ; Fri, 17 Jan 2025 14:52:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1737154377; x=1737759177; darn=kvack.org; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=omr+VU0o95DBX6qkN6Jalo4sfF4R5t9C6AKKjXipVEw=; b=hhGLJWfcmHElhqcd73h+uh+446gvfrd0NVpksHq/NXTXIHay+douR1u8h6CJKC0dDU sy9S8DdodH5omgQZIkPzqoW4tzTTVXoq4blgA0aieMCzYMvABC8+itLck85iFr/VfpMr lzuhPgadSgCndKbd6yAaEWFXuxkIvQSYng4ZnneLihMzzQbIYzWTon6j0hWbzwuIGMj5 fTQUjq4i18VAg5yJTXmSs75DpWctn8k0OL0B3YICQyhGSza3AYVGv90kX2p1veq16ra0 TFtONKoYfU2gWi0hy8ySOqbyohhpTQsE2WRfHByR8EsVU1+838YGjD0yu+VlbIAUvN7t tMnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737154377; x=1737759177; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=omr+VU0o95DBX6qkN6Jalo4sfF4R5t9C6AKKjXipVEw=; b=pPDpTejfrmxJF2Vq/831dpBY3r1a4opX9sfNlXFzzHjoaQH8a5sxyvTnB0T43tMYD/ 1mJV7CK8FK6izODvhzluanHXUkHoPpbSxa5qNbTo06Ujr2Pt0r5yJE27ocirK2QnPZAq Cp7hS13p6N45z8/IDqB1+Q+0S3Nk75Ql6NSy733liB9PVp8VsdKWOgJUNqNSqgm4Wrxb 7LDvUf7ePuoKKF/J3nsIXc7QXV4ZLqNgqudfAKPJclrmQg7Wh+R0RKSy+6sTJvMd5bbY 7d2ecb2aMlZ8OmVBctQsRBtDi6H5rGX/MHyXXh2wp+YdHDrKl9h6KVw1d6FO6BmOMCpn S+0Q== X-Gm-Message-State: AOJu0YwNMg6n2NqcoUzPxMjT0vzG00TLP1/EAt1KK2giF3QwP330JGWb n5vpUsmLj72N4DuCNstpTGG6KYv3O7mwM/ij13J1ecMbJWMh7vW4o08fxSzagERugU6t5rbsIuo MGov1wMfd/juC6hxwbp7GCNJW85ZY0O+HsNmlXup7IKOz0cNUKf5e X-Gm-Gg: ASbGncuEF4E+D11MxT32qfHhLvBFoSNubGOtJdZhKwpELwEHFdk9owh705qGU2ykgHZ kLhPcJR3eKX67Ati2k63SBUmR6DTvqIhwQIbtnT3/3GNtdB11jI2ZkEFFmKjM2zcmo2X7ublW1S 5WiAl1PxD/6Q== X-Google-Smtp-Source: AGHT+IF6MLDy3GI6C8R3gglUIc5hIYki6f9Gbr+6w3kLpMnZ2u3HWGGKBw37KRtqCfQMY+3gRr2oeo/To8zpcAc6X6E= X-Received: by 2002:a05:622a:1448:b0:46c:9f17:12f6 with SMTP id d75a77b69052e-46e211316c6mr196521cf.27.1737154377005; Fri, 17 Jan 2025 14:52:57 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Juan Yescas Date: Fri, 17 Jan 2025 14:52:45 -0800 X-Gm-Features: AbW1kvYhJK_D47DA7TsLfHPaR4QAxnUIehy-xpLM6GrV6PLNRWVKIh_xoxonjew Message-ID: Subject: Re: mm: CMA reservations require 32MiB alignment in 16KiB page size kernels instead of 8MiB in 4KiB page size kernel. To: linux-mm@kvack.org, muchun.song@linux.dev, rppt@kernel.org, david@redhat.com, osalvador@suse.de, akpm@linux-foundation.org, lorenzo.stoakes@oracle.com, Jann Horn , Liam.Howlett@oracle.com, 21cnbao@gmail.com, minchan@kernel.org, jaewon31.kim@samsung.com, charante@codeaurora.org, Suren Baghdasaryan , Kalesh Singh , "T.J. Mercier" , Isaac Manjarres Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 80891C0006 X-Stat-Signature: uptsw4q9op5nxtqmuf3apij8nthkzcpu X-Rspamd-Server: rspam08 X-Rspam-User: X-HE-Tag: 1737154378-944947 X-HE-Meta: U2FsdGVkX1+Vsb0IePpvFoeuqTkOPn2sjiV7gSvq3+4IVCGZYugPRPicjGOTdX4zgerf4I1vOGOIFnrE8KTIuEViwqHl/2WZmdmiNkwZ/73ScEpseB0RHzh0TVoDMxp2eNdEumU23hjuMb1x6kdBzysQwbSQmTuYSHPfufccZJyEnQ3QRnTWMe7tEdcl0dlz6hLcEjRvfvyczlptHvIBuzy3qr35j3NaZnWdnIaOmIuL3BgmHHQzrK9Lhw1HodIGjQhBnbsgbZGbPPxsbkMMCK8GBZ6IogOWhNqU8e+AEw4K2djFnMuMmXnu66Y92soiAjEMFBzhJ730Wn9ewnKxQGt/24r5M36ZGlqIhGqhYjpxJmAo1oj9vkvDAVPlD+abBvoohEP+v17FVRjfEJ2/zdWtK9Nr4tlu7ekMFC6JTfq2grNvSexzw7cDnZNSIMrnCgvH7OkeEZrZx6sDUmgc8DJkLd5dr5c1B04r6QEva2MIRbYyxNuUkZqg0wkpj6mTeUURHK8a6mox2ambEaoZLbXsnodm5QRFL4yLsEL0j/Q10XPsn96MbDVgfZNpv2WFOIuhbISAgCDb33oOMBTa1QX4nehOHoswWuUdhifhOsh2eiaT/vXXyR9sTas7ZlSQmKmo+OAhHWmxg7vFONwb1kLD7JYP6GLIJuotqcrlXs1gzA99i3hv9vDDgRaDkTomNhShS+KofdvGVYqn/EkYWvGRjIvp0Bj5FpJgVWvgTiHZgqkkdqD243KCu1AHUQfkP0L6/3OXVs7HR1WIO+4NsanSnm9Hzy5ulovFfB7tFN8pGoN3JXXEWnH5RrZ2tYbNUIPGCPObD5HucfTkG9wcMH5R2uqZxj8j4V68uhR0+5iV7mgVnv7y/h6AIaYFqX3PWY0uy9X3xSzubkWQ7Z+nebI7iY43epL4m/t5lsgQ7EmgWWrA6lw+k/3ae/RfBzBBgbgrMIPcfqLl2QZt+NI JwXELrrM vtVf4Kdk2ehDGumrFJ2hlEVteJZ//TKYLwkqXZUTMUN3B8veyP/TiFBMqDllYJExdH2a/WgnHSl8JcmrJdUoYqyBeLrFI+2R7PmPEW3RLueg4MLAs2odtcVwQWhJddhzeLmgUTq68JgmAmNFl4MuFG1qa1NMivWJMZyDe0HKi7QlHt7+lzLeLzb6YWeKNcq8NGFR808Gve4f91Wi8PvOVbNkuIP7P+0id5B0A X-Bogosity: Ham, tests=bogofilter, spamicity=0.000016, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: +Suren Baghdasaryan +Kalesh Singh +T.J. Mercier +Isaac Manjarres On Fri, Jan 17, 2025 at 2:51=E2=80=AFPM Juan Yescas wr= ote: > > Hi Linux memory team > > When the drivers reserve CMA memory in 16KiB kernels, the minimum > alignment is 32 MiB as per CMA_MIN_ALIGNMENT_BYTES. However, in 4KiB > kernels, the CMA alignment is 4MiB. > > This is forcing the drivers to reserve more memory in 16KiB kernels, > even if they only require 4MiB or 8MiB. > > reserved-memory { > #address-cells =3D <2>; > #size-cells =3D <2>; > ranges; > tpu_cma_reserve: tpu_cma_reserve { > compatible =3D "shared-dma-pool"; > reusable; > size =3D <0x0 0x2000000>; /* 32 MiB */ > } > > One workaround to continue using 4MiB alignment is: > > - Disable CONFIG_TRANSPARENT_HUGEPAGE so the buddy allocator does NOT > have to allocate huge pages (32 MiB in 16KiB page sizes) > - Set ARCH_FORCE_MAX_ORDER for ARM64_16K_PAGES to "8", instead of > "11", so CMA_MIN_ALIGNMENT_BYTES is equals to 4 MiB > > config ARCH_FORCE_MAX_ORDER > int > default "13" if ARM64_64K_PAGES > default "8" if ARM64_16K_PAGES > default "10" > > #define MAX_PAGE_ORDER CONFIG_ARCH_FORCE_MAX_ORDER // 8 > #define pageblock_order MAX_PAGE_ORDER // 8 > #define pageblock_nr_pages (1UL << pageblock_order) // 256 > #define CMA_MIN_ALIGNMENT_PAGES pageblock_nr_pages // 256 > #define CMA_MIN_ALIGNMENT_BYTES (PAGE_SIZE * CMA_MIN_ALIGNMENT_PAGES) > // 16384 * 256 =3D 4194304 =3D 4 MiB > > After compiling the kernel with this changes, the kernel boots without > warnings and the memory is reserved: > > [ 0.000000] Reserved memory: created CMA memory pool at > 0x000000007f800000, size 8 MiB > [ 0.000000] OF: reserved mem: initialized node tpu_cma_reserve, > compatible id shared-dma-pool > [ 0.000000] OF: reserved mem: > 0x000000007f800000..0x000000007fffffff (8192 KiB) map reusable > tpu_cma_reserve > > # uname -a > Linux buildroot 6.12.9-dirty > # zcat /proc/config.gz | grep ARM64_16K > CONFIG_ARM64_16K_PAGES=3Dy > # zcat /proc/config.gz | grep TRANSPARENT_HUGE > CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=3Dy > # CONFIG_TRANSPARENT_HUGEPAGE is not set > # cat /proc/pagetypeinfo > Page block order: 8 > Pages per block: 256 > > Free pages count per migrate type at order 0 1 2 > 3 4 5 6 7 8 > Node 0, zone DMA, type Unmovable 1 1 13 > 6 5 2 0 0 1 > Node 0, zone DMA, type Movable 9 16 19 > 13 13 5 2 0 182 > Node 0, zone DMA, type Reclaimable 0 1 0 > 1 1 0 0 1 0 > Node 0, zone DMA, type HighAtomic 0 0 0 > 0 0 0 0 0 0 > Node 0, zone DMA, type CMA 1 0 0 > 0 0 0 0 0 49 > Node 0, zone DMA, type Isolate 0 0 0 > 0 0 0 0 0 0 > Number of blocks type Unmovable Movable Reclaimable > HighAtomic CMA Isolate > Node 0, zone DMA 6 199 1 > 0 50 0 > > > However, with this workaround, we can't use transparent huge pages. > > Is the CMA_MIN_ALIGNMENT_BYTES requirement alignment only to support huge= pages? > Is there another option to reduce the CMA_MIN_ALIGNMENT_BYTES alignment? > > Thanks > Juan