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 C494AC7EE29 for ; Tue, 13 Jun 2023 11:13:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 269D36B0074; Tue, 13 Jun 2023 07:13:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 219DC8E0003; Tue, 13 Jun 2023 07:13:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 10A158E0002; Tue, 13 Jun 2023 07:13:58 -0400 (EDT) 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 03E456B0074 for ; Tue, 13 Jun 2023 07:13:58 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id BEA9E1C7C10 for ; Tue, 13 Jun 2023 11:13:57 +0000 (UTC) X-FDA: 80897464914.30.D27337E Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf03.hostedemail.com (Postfix) with ESMTP id 1A94020018 for ; Tue, 13 Jun 2023 11:13:54 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none); spf=pass (imf03.hostedemail.com: domain of cmarinas@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=cmarinas@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1686654835; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=I0EYPmQgpGEEaH5ys02LgrRjLkAA7URXwXvLs6ZSG34=; b=LIEy5F14GEy10y8kiCCPSjzyaODhNGgH4WH0VGwtnAAHbCHqewNubDOGmlsOj0nqbdD1JD kbwjhYUG9B/z3Vzg6jMYstt8Y+Eog7VjJU+VPK9XltV1uaztKPC49MMFyOqEkLM9mYX23j 8TFHUllm6oncVjYYPhmens7xJLf+Olw= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none); spf=pass (imf03.hostedemail.com: domain of cmarinas@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=cmarinas@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1686654835; a=rsa-sha256; cv=none; b=vaCBHkwp7ENfPZYwUQrQ+Oa91T+ZZHt0Y16tl5VeB6qe7EGACZezyCLNtybYn3ymLv6lQh UwQcJ4tNDCBBkTUtshUTvItzBjq5Zm9Qjs042B4d58c6ion9fQC9ma64MKtj9loMlVdPHc 8MCxVOFM1p8JdBeZDsLnLQKM2EYhIeE= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 0AD27611E2; Tue, 13 Jun 2023 11:13:54 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9E4EEC433EF; Tue, 13 Jun 2023 11:13:49 +0000 (UTC) Date: Tue, 13 Jun 2023 12:13:46 +0100 From: Catalin Marinas To: Vlastimil Babka Cc: Andrew Morton , Linus Torvalds , Christoph Hellwig , Robin Murphy , Arnd Bergmann , Greg Kroah-Hartman , Will Deacon , Marc Zyngier , Herbert Xu , Ard Biesheuvel , Isaac Manjarres , Saravana Kannan , Alasdair Kergon , Daniel Vetter , Joerg Roedel , Mark Brown , Mike Snitzer , "Rafael J. Wysocki" , Jonathan Cameron , linux-mm@kvack.org, iommu@lists.linux.dev, linux-arm-kernel@lists.infradead.org, Michael Ellerman Subject: Re: [PATCH v7 01/17] mm/slab: Decouple ARCH_KMALLOC_MINALIGN from ARCH_DMA_MINALIGN Message-ID: References: <20230612153201.554742-1-catalin.marinas@arm.com> <20230612153201.554742-2-catalin.marinas@arm.com> <5faed13c-43f2-66ef-c42c-7d7bebb224d8@suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5faed13c-43f2-66ef-c42c-7d7bebb224d8@suse.cz> X-Rspamd-Queue-Id: 1A94020018 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: g5bxrrsr44nqiterpywgnqr1m8pfhj3s X-HE-Tag: 1686654834-327984 X-HE-Meta: U2FsdGVkX18DPFUjs2AOVUvUgf8Jp4CiIgZxQorV+i+c7chORXmLBAvaVABf82+2Zy4PVhrfExptC4vc0N01U8Y9SetythX5Jj6HQu+SQ/zTYJtDFs1/4RJqyy2nZnT5VekVglynqDj80S9nC0PFTSsKoGSDPstErAUXtCWWzfH5fpALFSUEcHZ1E+ogpz1iibE+M6VYOCpnvIvWisvz98hd8QSitAPNDX9QdN3xgLST1XCR6Z6vA4DYLI9Wh7LS0ReszmhK4TCygrUt8lDhd3dwARtJMMyvl8W9HZMCODSudqPHyoyhugFP0cx4zTM0UPUA/HHv//7pXX+JGB2GdZH1jtdgtXITLgw0VL/h0fEU6JVow37z7YDtV+BkLwlEt6PqKGbw7RWxhyPqntSACoD3mZsrpnkrs0Jab/FOZ76udMf1mqeizK8NumsgE/xIfB3MXE/ig90VvLtqYLqdhUgkGyHRa25WFihX7IiUMaIF4oyn3g4VbNmJztkKrvDoVd8/QQuP1RQCycoGMERhrDEyn8vlxt0E6BVTFoIWXUHFy7c4Fnps3wlsIgLJgKOYINeGNUbU6ATdQ6dl0OTbKo26lvBX6TDph2vldamD1AIAa7tx3cpDiXg1ATS8n1opeemJvx/5zKMCWNR3EURcRi7RldQRvCUoTzgVJIzwX6sC6HP/mM41eT7I7OHesiQ2eCTSQQ5NAzsJmxgd93UOIr5x+5O3SdHnV9h/ulAjZRg8umYeH1hi9QEfrTqZWlTQoMGLz7YE64aTvXrKFh2Z0gVlEQs1niwdH22orLwSonTDkjQry6IHqrmzXghID71VEctG5zOe7r/Xm2ArrHG62hiUunVyP6GYC+/HaKocqZ/RK7QZUVPHV35vCC+DKSj7ZcI0BxA3uf+ZBFlRLL0IJjo21a5xfcSpsIJqrZPEPt4FHGYbQK4EM9cBC5hNI64P5mZjnhs2MLrDSFtFcng MRWDSt3n n1lKk33fqFsh68S6GU1COIcjOeYzrr8fK6a3yXNer6LXYx77aKyQNQylU7ORoY3DGQE4IT4JZUpDD5TXAkVuXBc5oS5C58yrUlUMvYSxhHckQwc+QgD7Tp+VLHXfaHALsNxB648L+F+FyVbVqKI3acPHLbh/EXvt6KMK1hK7TKTy7w7Xae2s9k0xs/8fkeSxBGU+kRunqv7TW7soDIJQY7zToM1FJaypVNPKLP7tpm+W05j8tNU4J2k5G5ibFUawJ6UJ3UKlHezMgt9O83WG8MbLQZ+teODyLpf7WKQDZivxcVEbOAMbhLZpWHCt8kGtyhJyywM0B6APShRepOxSHtxYW/x9JRzKFbnHd131R1OlU+5yQNGCTMHZ9Bo8bwoAwoP6Te4iqhnZ9N5ko150NZvZCVnyK1kRnOllVW/F91X2K8TlUwP34AD6W1Pc/2yQ01cOQumx4XeHUp/x1mC09trSS7GJDTrK4h8Hwuar/SYNxzfvhIqljOAjNX9KlgWP9EzBXdtLlyj3vBk7XFeNMpiHnyKmKgadnEVP4+AjB4UsrscQGV2Xc/ODDb9NHG67Tsae2MTt4bcLGxVVJScAim4e7scQ0Qauq+/JXF5DnnthO2K8lybROULwLfqQkz1IPcqsChIk4TKvuUlo9OV52p+LbVK5ymdUTdT1ONfwyJh9wBKBEHLmioWxpfA== 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: On Tue, Jun 13, 2023 at 11:46:31AM +0200, Vlastimil Babka wrote: > On 6/12/23 17:31, Catalin Marinas wrote: > > In preparation for supporting a kmalloc() minimum alignment smaller than > > the arch DMA alignment, decouple the two definitions. This requires that > > either the kmalloc() caches are aligned to a (run-time) cache-line size > > or the DMA API bounces unaligned kmalloc() allocations. Subsequent > > patches will implement both options. > > > > After this patch, ARCH_DMA_MINALIGN is expected to be used in static > > alignment annotations and defined by an architecture to be the maximum > > alignment for all supported configurations/SoCs in a single Image. > > Architectures opting in to a smaller ARCH_KMALLOC_MINALIGN will need to > > define its value in the arch headers. > > > > Since ARCH_DMA_MINALIGN is now always defined, adjust the #ifdef in > > dma_get_cache_alignment() so that there is no change for architectures > > not requiring a minimum DMA alignment. > > > > Signed-off-by: Catalin Marinas > > Cc: Andrew Morton > > Cc: Vlastimil Babka > > Cc: Christoph Hellwig > > Cc: Robin Murphy > > Tested-by: Isaac J. Manjarres > > Acked-by: Vlastimil Babka Thanks for the ack. It looks like moving the ARCH_DMA_MINALIGN definition to linux/cache.h messes up powerpc32 - https://lore.kernel.org/r/202306131053.1ybvRRhO-lkp@intel.com - possibly a few other architecture that define this macro in a file other than asm/cache.h (I only tested powerpc64 before posting). At a quick grep, we have: arch/microblaze/include/asm/page.h:34: #define ARCH_DMA_MINALIGN L1_CACHE_BYTES This could be moved to asm/cache.h. It probably already relies on some indirect includes. arch/mips/include/asm/mach-generic/kmalloc.h:10: #define ARCH_DMA_MINALIGN 128 arch/mips/include/asm/mach-ip32/kmalloc.h:7: #define ARCH_DMA_MINALIGN 32 arch/mips/include/asm/mach-ip32/kmalloc.h:9: #define ARCH_DMA_MINALIGN 128 arch/mips/include/asm/mach-n64/kmalloc.h:6: #define ARCH_DMA_MINALIGN L1_CACHE_BYTES arch/mips/include/asm/mach-tx49xx/kmalloc.h:5: #define ARCH_DMA_MINALIGN L1_CACHE_BYTES These are ok since kmalloc.h is included in asm/cache.h. arch/powerpc/include/asm/page_32.h:16: #define ARCH_DMA_MINALIGN L1_CACHE_BYTES I'd move this macro to asm/cache.h on powerpc. asm/page_32.h already includes asm/cache.h. arch/sh/include/asm/page.h:181: #define ARCH_DMA_MINALIGN L1_CACHE_BYTES Same here. L1_CACHE_BYTES is defined in asm/cache.h but it's not included in asm/page.h, so I guess it's relying on some indirect includes. I'll post three more patches to move the ARCH_DMA_MINALIGN to asm/cache.h for microblaze, powerpc and sh (once I finished build testing). -- Catalin