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 69D85C02183 for ; Fri, 17 Jan 2025 23:00:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F33B76B007B; Fri, 17 Jan 2025 18:00:46 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id EE3556B0082; Fri, 17 Jan 2025 18:00:46 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DAB7A6B0083; Fri, 17 Jan 2025 18:00:46 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id BC0046B007B for ; Fri, 17 Jan 2025 18:00:46 -0500 (EST) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 734C3161158 for ; Fri, 17 Jan 2025 23:00:46 +0000 (UTC) X-FDA: 83018465292.18.7560276 Received: from mail-qt1-f180.google.com (mail-qt1-f180.google.com [209.85.160.180]) by imf12.hostedemail.com (Postfix) with ESMTP id 7C7F94000C for ; Fri, 17 Jan 2025 23:00:44 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=KvmDm6d5; spf=pass (imf12.hostedemail.com: domain of jyescas@google.com designates 209.85.160.180 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=1737154844; 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=0qdvPTCiZTkQNILlz6SROOygeMd/ikZvNKVpcB7pSpw=; b=2HQF9ABOp0g0fKuv3v0+/OownM4jgKf9YvolasSgYP8bg0LIP75zQSioJkF1V1KmGosv3M hmiGMQ9D7n5XKlpTyM3PPg9eJ5dhc6B3UptB9hv7GedEnvs1rmqVb9jFkhCThz2NDx2T9A l1jY4F+mRPxSw0EZiWKn3j1PKgzJa1Y= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=KvmDm6d5; spf=pass (imf12.hostedemail.com: domain of jyescas@google.com designates 209.85.160.180 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=1737154844; a=rsa-sha256; cv=none; b=ctUUZorrlDtALZ5JVRQupIhe6fxDY27W5W/PTCyqUpjkRxXk2bhs05bnDJb1n6obS+ivhP UpbjENTfntviN1UzsWIX0+gmL5OuSvyPn7fnRkZ5SURriMBtiqNCwFR2jgkrYAJOq2Sr5j 1t8RNJBuXaIzkQ2TBw66xbi3Cc4MZ5o= Received: by mail-qt1-f180.google.com with SMTP id d75a77b69052e-467896541e1so67421cf.0 for ; Fri, 17 Jan 2025 15:00:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1737154843; x=1737759643; 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=0qdvPTCiZTkQNILlz6SROOygeMd/ikZvNKVpcB7pSpw=; b=KvmDm6d5guY6RjlxIXGQTO9U9iwF18RafoUO+xg3iUKNlRtP9swMMvsFhMoQjc5kfH ukhYgbSqJ1JqwcpCR9+wesfmNykMkfQQZZMD3+VpR8YmrhcFYb+SR6Ou604G/pppMzDV PVvOXNxUF/5XR6l7+mKqce/WZPBjlhp5RFb9xUlbZGBrC+o0DcyExI2l94HAR+kPbpt1 aWfz5leArfNZsnpNTJzTRWSH8KJv3X1R/YCyN3dbcyamJAxXCJOkAUGN844DJsu2ObnY k8MbsjhhC70qKLwOHb96T/E01sDxE9FQ48f5rx8o06ygRjJlQ2mNWmsuGc168WlyAi7u ocRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737154843; x=1737759643; 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=0qdvPTCiZTkQNILlz6SROOygeMd/ikZvNKVpcB7pSpw=; b=Alq5ET0QOa0ze+u2UcxFAr59ryLSUeLGr3G0FqTsEHNfB8+HDzzVWhuZfcyaa8Xpos eckizjocOp/ezsgsawEOBTc9cuNq1knhhySsK2ro+6bs2kRzclcfpmNrrujsj1IGqU6o X0INceu+iGGQMnaWuB8EMWkew2mgcsCZaZe5ioG51dITHra9rk5GEpbLo51sV9WmbpYP lwO2iskIIxFtAG0IBZUbmY9muv+FR2RfA4rwclC6qoMEqKtBFXsn3urHwB1swK4+GA1z paxQBjg3oDcfBwfAHV/qzI82Aqc/D9PPWwqe4jG80NTHxcZdIKkCh3qGczX1A4nKDv0c q1fg== X-Gm-Message-State: AOJu0Yyie6OrvETUc9C8wdDs7rFL3JlcDD3rUDQrEg/4Fzh7vdnHY3g6 BKJEt+i+b1luzfdbkz4SA87Glw9SpGCjEs5ftEF719EdtdGugHSBb51TAB3KftxQd5aKig2zjY9 0744qs3st8ok5Da2mF/gQGAnwTTI97FnQ32wU1z8RPQag5TxlNA/zHhQ= X-Gm-Gg: ASbGnctEjfWuiB6rybhWq2r1WOnli66oLicOb6V+F3HRBRGqGGo/ZIb4SoVCH/qpMkP G67Wy8816Bp6g35TEqrtUJ2NoN7/yAwiZDGiSZsCLnD/qRlycgHc1RkkoXyxf3LEqpqkdVRG7hp IGzLHFlm982g== X-Google-Smtp-Source: AGHT+IFCDnZOWo8YEXhf3N6hemGeptQwyRwuiAyQ2qILhB8excD4hd2xjXOPcBMaooSvOuHsgI9yDMR9l29q2bpUmb4= X-Received: by 2002:a05:622a:138f:b0:460:491e:d2a2 with SMTP id d75a77b69052e-46e210e0907mr307101cf.17.1737154842944; Fri, 17 Jan 2025 15:00:42 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Juan Yescas Date: Fri, 17 Jan 2025 15:00:31 -0800 X-Gm-Features: AbW1kvahh61pzlWbdC-nbF72zkEvxc2NxIg8p7_xBhL_y7G6bKSaQwG2U_k6PhA 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 , iamjoonsoo.kim@lge.com, quic_charante@quicinc.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 7C7F94000C X-Stat-Signature: nwsozknsfsbk5hhh9qnk9zn4ffkxrpza X-HE-Tag: 1737154844-284749 X-HE-Meta: U2FsdGVkX1/DDRaMF/i8CgggIVP8RO8fbzkWEEnVM+RBmUtDGafstFczvOsPSna8eCIg56qPRx+sY15dYPwE8/sq/hAJHouiZjj9wkcUGVBuHc14+YLp+SG5ILXoeam02t0tD4lR9kstgt/080fMN2WxqheqkdBIzdHdiS6LVeA1La5lkSZCVxZLEpCPfwZLrh4I/Ee/iDdRPLuE/ybggIQudEyB9Nbho1AaA1DYJY1i119SXlokJnmwvTbcRePIyEKK3gSGFYcyhNqk0nZFfMGUy/iFUWXwGnuHgWhU3YohQQ+/LJ3ZnabO1BURMr7euNT4kxwHcYrCLheLigXewcNzEY0XSp3XJ2hSRo58Zz9oeABxxWcrS30Kst1TU2VMus9lIxgGOWxxIiIqkNirGRmWXvzZ+sKRHDtLjew8PgvnCgWueMqLbzbSZ+GDLHrhYIFTwpcizC73BbabBBC1+FIUCiqMEwboOZHfMJfBcP4G+SmSAuLgU/rKbq8+cMVF5VkuqbDmhHSe9wOnwV2+Wr9oNFfkZes8IMoqwsCFhL6BlUqeMiRU8AfSCL5RdpNWuBElWZCCD0Di5CXvBe/6DPsJTzGpMlXIhJNDgElRnnZKVLBO6eE5YLrNq8HOiqFNPW8W2jKjkm4HEJfpydJqZ7+8k/PfOdVNNTEHZCWjpLvEGCYCtBA9lrxp8SV9rEcEezHQEqMuxJYXanDwv7fjrgRg+fnJvHTu30S5lZfnVC2YOb9nv/Qgpvn6hmdbvTfCDS9YLdQFJP5h5pu79hme0Ly4c0hdJET9bYPVTZl7ePwJkAZ8BbotXEwb8jrIHIsVYobzAv7Uh/UBSzPtXdxbc4OEVIOqdwM3r47fX2oCs/knOR1MeGGsC0OX1Btewp41eRVKgOgptGJ5PLaf7TYt0mY4vQX8Hp3M/9aOn/K6k7jC5ahYDyXjzIyl/qSoVZoll3JjBE3Jya6uTtJxzr9 OU1XGQ9d pyo7m3OEg0jsQptrtsjH/nrDk/GQAzOXPGXr57+SvwQRW2CBhay/XiPfbk75rs1OyUwUeJ27DyzEv5tWmPQzs++SVOVWqRMgH+rHYvebAMmq8TCGgby5eEyWMReTaI+ynZzseuUv2Nb0+uezMnINtMiT2doqIamy71lDXkUf2hTR2aDl/CF4m/gzohqHSdrIY5NSAMNKRCLg/eYMi1YFuOB0QUHJMJZ8PTrGb54gRUY2bvZNtvgKRkIGFpSN6sNc46enN6j98n1f5JQ1jAVbjKWNYPO1Kf/m4vwuC4DhKxpjJ+dU= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000005, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: + iamjoonsoo.kim@lge.com + quic_charante@quicinc.com On Fri, Jan 17, 2025 at 2:52=E2=80=AFPM Juan Yescas wr= ote: > > +Suren Baghdasaryan > +Kalesh Singh > +T.J. Mercier > +Isaac Manjarres > > On Fri, Jan 17, 2025 at 2:51=E2=80=AFPM Juan Yescas = wrote: > > > > 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 hu= ge pages? > > Is there another option to reduce the CMA_MIN_ALIGNMENT_BYTES alignment= ? > > > > Thanks > > Juan