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 1BDD4C02183 for ; Fri, 17 Jan 2025 22:51:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9D4946B0083; Fri, 17 Jan 2025 17:51:29 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 985086B0085; Fri, 17 Jan 2025 17:51:29 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 84BDC6B0088; Fri, 17 Jan 2025 17:51:29 -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 673516B0083 for ; Fri, 17 Jan 2025 17:51:29 -0500 (EST) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id C9C0F16109D for ; Fri, 17 Jan 2025 22:51:28 +0000 (UTC) X-FDA: 83018441856.04.89F2C21 Received: from mail-qt1-f171.google.com (mail-qt1-f171.google.com [209.85.160.171]) by imf08.hostedemail.com (Postfix) with ESMTP id 2BA6216001E for ; Fri, 17 Jan 2025 22:51:26 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=hPmOAnEh; spf=pass (imf08.hostedemail.com: domain of jyescas@google.com designates 209.85.160.171 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=1737154287; 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:in-reply-to: references:dkim-signature; bh=tt2bAedHyB52XBHo4tmzc/Ad12WezG7u9uNsChicVvc=; b=nE1PDwE0Wuzgs4He8Aw5rb5oEufQwwg7MERi86wZI47SSpz9+2HUHysezCLe6QkM7pSgw5 J8mkuinZELGFvoj1l18quOiwHEnUDhRuj1qPp2EUFgH9WZGYsfp4OWSoJ5JzLUviumjfd9 ZnIKsB45gu67ddZfsszK+UKlGhtQask= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1737154287; a=rsa-sha256; cv=none; b=DYvMkVAutCO/+Ta5VcthNVZO1hcOCnFJ+JZJSZ/bPv4g4fZLJZvapyEaFkinAeSaZG3Sss 0F8xRYcpqBm3GkcMRvtiPK3ZZuGw9fy+aurJNZk0/eye+fDWfKtB8Mc3gopILduEkY3xXZ jUWJnI1Hkn5MbUVBxDKhEulpHGieIP4= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=hPmOAnEh; spf=pass (imf08.hostedemail.com: domain of jyescas@google.com designates 209.85.160.171 as permitted sender) smtp.mailfrom=jyescas@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-qt1-f171.google.com with SMTP id d75a77b69052e-467896541e1so66141cf.0 for ; Fri, 17 Jan 2025 14:51:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1737154286; x=1737759086; darn=kvack.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=tt2bAedHyB52XBHo4tmzc/Ad12WezG7u9uNsChicVvc=; b=hPmOAnEh4NeTc1rqsVFrOYUkAjqrFs1/pJJvSp0dgEXk4R5eDPzHB2Q7I1vRtOkgjD wu+XbqEo+ydiuJ3YkZ40RPCAsgF/H5lGqlIOz5hBYvNhaYB33toPU+esW80+ns1eDUnO Eufwfwkq8Vpc9C8cl6b1/vF73plnCkVhTM94Rm1mDglzcYDu0J0cVq63EnbtMEGU5Poh JY48yYDeF2VP5WsCiZY2qcBu/286eAWL8Z99aAALbsSGJmdcd07dn/Qu/hvnW+0WjGCi +UKio6J/eiXNKBjn0IKjb14qCU/nCn/Ej38qoSTSWFIMo5hUepUWNolTpMQMHkpdtwZZ +09A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737154286; x=1737759086; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=tt2bAedHyB52XBHo4tmzc/Ad12WezG7u9uNsChicVvc=; b=IK8nseEoIpRvhxkuxLvHts7WFB72vcyW1zAhTvTWyIsbCgikEMjIy3Bqw1AQXkxPPQ 3ztSO9YtJr7Qk0PR7EpGbzSUZu3RAhO9HtI3YhOyMbFLTI/0IGQcRU83nd4ej+SQn5hb qfgO804URpCxrx9PtY/Rz+hUVAosvemonEFJJA0WN21y0vHssAT5Ok63+Tn28l5FRwTB q7+BJwModdKa1q2zpL6ycsJvBn3cLlKMGw2WSo7PcxxUAmOvLOhXr+CnB/aNgjfqymld DtZlNX1qVDttc1wh1idEVjlN0matHC6QM5k6gtSrwRJpPGJFg0uGOM+TP3OUqwAU3Meu 8r0A== X-Gm-Message-State: AOJu0YxvGZX+wSGb+2GCcS7QZgeATxGISnoSg2LMR2lrZVGLJUitk1Ed bvmmAAfBMVVVxkhsxRA2F2n5rQv5nJE3vNkI4egpaT0szJuba8/bZq8loxXx/PtVNK9Zlp1xUUo szl8I6/DPGqooqoL3vGUIZOi5yQBCh5qLO0k6NOWxu9LWvnsc8st5 X-Gm-Gg: ASbGnctWG+p658DqLUjGhp0BPuAn0dwtjH0xX+bngEnLPGIROFofv5fzh458MDShnKV AEWnacDjHB2bRrAZEocQQV8+MJxp8G3xQf2P8doeiFMt9JETu3sKP+NYK0QZTE2nmOl69xpvn0L Kt3svptLBL0g== X-Google-Smtp-Source: AGHT+IEA4I5BVMVgs3gSjqyd5ZON1J/kL8L5D1cpPZ49hVMZs+piAuJ22HBbsIHdIgNcite7X7I16Blmapn+qLJiT3Q= X-Received: by 2002:a05:622a:d3:b0:460:4620:232b with SMTP id d75a77b69052e-46e1fc25ff0mr935951cf.28.1737154285788; Fri, 17 Jan 2025 14:51:25 -0800 (PST) MIME-Version: 1.0 From: Juan Yescas Date: Fri, 17 Jan 2025 14:51:14 -0800 X-Gm-Features: AbW1kvZqea9IRUd1lcd7n-OsfQ9RoCKlfE-4QkvCVLC6ZbrlBdb0L7BC-Ooecak Message-ID: Subject: 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 Content-Type: text/plain; charset="UTF-8" X-Stat-Signature: ys148f7zd38caq7y7iyumqo5h4ngn8c6 X-Rspamd-Queue-Id: 2BA6216001E X-Rspam-User: X-Rspamd-Server: rspam06 X-HE-Tag: 1737154286-816907 X-HE-Meta: U2FsdGVkX19OwbaReQ67yrTFEdyBUXZhfk17LHSEcFLHhgvxxMZppJpk5maQwsChQ5oq66WgyYXVpWSiGNtAg8QUVgeSDUnHMiwr9WUiUepEADhTbKmKiRLeUdGDvChRWBYe45tuzLB0r7bnxafb76TbyzCOIOdXsqKo0V8v+MAhdeZtOEETrTl31h2GBiXVGuWgrjc985wBg0eHkGf0YeUl7S4siuIrVhFh5QLcP1Ns7BRnc99Ziaiv4ctxwR0mctEA1NP0zg1lbuFA7vQN84wg6NOV9ZXZaD7H0vKceG3Lv3fOR+VqMszyNjdpLHvC7rvN4Zh7aDHzorJbON3nVHVs4xCp/WCRXt2GOzEEQy/9jHJKGwwoYA+vW6hsD2T+OfNsWteHmmPyzuDQv2mdUW/l6bYMplupX7pQIxhJuRCRUhL0thKjRZi7YeqYFfTWB7Cn5qiTV2ZLb7d2ROqAuNf73/tMcCO0UORVPkzv637Bd237xB6W0jppkDSJH20mc+hNIApeXK59Yux+0aAMSzNJ3Lnv40UOWq5Ne2Crdyr6E+MTYJ4D9FWR/jM+3cT0eYilnhozDTKi1d8pQzy2fe3gGA1xYAM2A2DwMKePvjc6ro+Swa0gzGLJWk8RAE1IVXeeQ67Zxw/jzQhPKAGg1HViSCSOd8QX3Ujut+y6dKbzJAY3QM+XX2w/uxkWFBrIknkdgBFtVE3z9Yqjg4lY49chlBONea4SJKb0aUU/i11MvrgdmMtt/1RjV02RUdsowL7P4Q0QRXyNtkfg5+Oogo+Qgc++znkWtPuXzu/dkV16MUUvJTs8MtRGQfvqYueo36aTzQavHegGcaEMurY4rKsquduIA1yqoSNbcyl2EVcHMxWiAqLtHY5Vz9Ik5Vpp5pW4btaziZBDWgcDf8W1Lhkxe+9f1+7HColdvWVLoI4MG1I5LayD64rm2g7bP2PkldPxnKAey4CcEbdUUQR e5LKBqQT HOxR6U3wy9Gd7izmSSo8k9wSiC6QM47F2umBlU2A3cP0sXHKdfjdPiOPUEeBjg66fn5KItqg/tacUb5gx7yek6Had0n5t4CBskcIuex0NAX2jRgVS9jvbFcMxor4WjwTVAQwCuz+KBhFnzRC7I0HUev3Mtru+5IQHR8goYkAV+bzMzj9os8VsnIgPYuZRYqqxPi6S X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: 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 = <2>; #size-cells = <2>; ranges; tpu_cma_reserve: tpu_cma_reserve { compatible = "shared-dma-pool"; reusable; size = <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 = 4194304 = 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=y # zcat /proc/config.gz | grep TRANSPARENT_HUGE CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y # 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