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 7CFA8C77B7F for ; Sat, 20 May 2023 05:42:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D3D58900004; Sat, 20 May 2023 01:42:18 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CED18900003; Sat, 20 May 2023 01:42:18 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BDBC0900004; Sat, 20 May 2023 01:42:18 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id A7CAC900003 for ; Sat, 20 May 2023 01:42:18 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 79C0EAE5BF for ; Sat, 20 May 2023 05:42:18 +0000 (UTC) X-FDA: 80809537956.07.F8F3BFC Received: from verein.lst.de (verein.lst.de [213.95.11.211]) by imf30.hostedemail.com (Postfix) with ESMTP id 68B298000D for ; Sat, 20 May 2023 05:42:15 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=none; spf=none (imf30.hostedemail.com: domain of hch@lst.de has no SPF policy when checking 213.95.11.211) smtp.mailfrom=hch@lst.de; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684561335; 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=zIoQrk2ufsaX7o+WOk0n0HI7vEma8x1171JEePkK3LI=; b=4SFQYvsQJOjwtvtUZTGv/78cIyAPn+327EjxzMy6tkh1SGDWWtt6rS7eUXeGt2tuepyFso KjxVWE2z/SD0IGoAai09uSZBx6oPnE8H9vpN3w39rURCrKbS4iUem3R+2aQi0868hTvxgx qrKCJM4omqJMNnOIJLg93MVklJmHQ5A= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684561335; a=rsa-sha256; cv=none; b=ZjiCJCkmxz1yYYn0xQd6XpCN/1V4pharEpxVA9ZWfi/5H6egq5EuY4WAaW8x8oOyGACvWt J7RVxXKM1YfZtm0ULsRZuNOGD5pHDCoVYydMOPNbc4crkc+YXzHjS+KWd9OdocAqBi2/uy I+amSJzuxsTV8AZbM4rB3q6Yk830g8E= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=none; spf=none (imf30.hostedemail.com: domain of hch@lst.de has no SPF policy when checking 213.95.11.211) smtp.mailfrom=hch@lst.de; dmarc=none Received: by verein.lst.de (Postfix, from userid 2407) id AA2AC68CFE; Sat, 20 May 2023 07:42:09 +0200 (CEST) Date: Sat, 20 May 2023 07:42:09 +0200 From: Christoph Hellwig To: Catalin Marinas Cc: Linus Torvalds , Arnd Bergmann , Christoph Hellwig , Greg Kroah-Hartman , Will Deacon , Marc Zyngier , Andrew Morton , Herbert Xu , Ard Biesheuvel , Isaac Manjarres , Saravana Kannan , Alasdair Kergon , Daniel Vetter , Joerg Roedel , Mark Brown , Mike Snitzer , "Rafael J. Wysocki" , Robin Murphy , linux-mm@kvack.org, iommu@lists.linux.dev, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v4 02/15] dma: Allow dma_get_cache_alignment() to return the smaller cache_line_size() Message-ID: <20230520054209.GA319@lst.de> References: <20230518173403.1150549-1-catalin.marinas@arm.com> <20230518173403.1150549-3-catalin.marinas@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230518173403.1150549-3-catalin.marinas@arm.com> User-Agent: Mutt/1.5.17 (2007-11-01) X-Stat-Signature: okkpzgne8j3qxwru6mx99kwju9uktspg X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 68B298000D X-Rspam-User: X-HE-Tag: 1684561335-52837 X-HE-Meta: U2FsdGVkX1/70eBA+NATmf7lzwdBhNJYJZY3cGLIOKHoa/MIPb19ApRiWKlMSBC1QjMqCNQK/f14Z4XptgRQVKMtamEcsWxtNmJWXn32b9hYbPFBWDOp94RNrArA+7uiT8GnxLAbn+VJbzHI8lExZ+MTX/aLo0oKVzYs59e0/w0jcsXzcvpZUN7y5G66hfdCHbcw3dqiPPBzoVqWHR45sfyacIwV81V7jpSL85PekwnL6z8yD8bjWPpSOCncEL0pnB6jDg71ibwGfj4eOyMLDHzwf7pk4zSzrHTBCBA8gDntyJxUv9AsSv3IhwyNMW7Zmqoj3VDsQXRtbnxm8f3/qLd9vR/DpDyyaIoMd+fVsuLoIHW8/aJP3bnX1VKhrf4jWTGKKaWLp9ShtMLSKuxEQTP88+6Xa/CRUsr0twsBdJdwrqN/nuWN4CEpCfbn1oXAVVXyVbSTQV9RXx8lygPJIg2yk1Her34B4cYWNG9Gfm3KS0cigon1KlrhqQZOecmfo1Gn/roby8R9E3DnvyO64vhF0w5Bfis00iGn3sJwHE2HQrdWi5ickSzVGg79J2SrjobtbvjkJpH22XsoMajviAylyT0nMj1U8gYFdmdeISDB7g/7mLDix+uGIk1mjRkunWTfXeqOAMDW1O4KHtg+RSf0Xsz1XCoKhavgvywmUPDzdNebJsG/hlAzMczwOJKTC9PwbCJeILOxMS+ZIIiAA4dROJeOkza1NeEmWtM4vuFBk89aQ1XOWNx3xkJRfnZPOfCEMOiSCUYvbFv94FvKiOC3IFFEE7VdYCoHVbyVOwjHc0JxHgfFsQ/bDlPq1Rn31UUaMRd/ta4uJDxgiq6jaOGD/g8IIT1ySeLLz/agGdVU+dw53s69ahrgR6JFZSiFHLGsqiS6hmfZZydB17fvnP4vjAkfhLrAHDNoYol7RgfTqqpIqtFkKJOhSRYEIA4CgBKs/h/uA2Od6aNdJuJ OvkROqdb LNgAFvcH0zsTFISRXa2hy0MJ+adbPLzMCPLk4Q7mw+A8c5T+OOFT7I2EKBZcTPFq4HrN22WjbeC2zljXTYkcWYFT8Zl62Eq9VOcgE/Pu6dvSslH8siXs23O22epsdp1UtPjJXYxab1zKfqZrSHjabb7iK/BoZMVk6RmFMcaz9CeCAa9UQ9GXGNznpgWrBEXXdXJXGbnDwE5Dkh3nkNNO9V+AoIQIw5Ar3CI8m 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 Thu, May 18, 2023 at 06:33:50PM +0100, Catalin Marinas wrote: > On architectures like arm64, ARCH_DMA_MINALIGN is larger than most cache > line size configurations deployed. However, the single kernel binary > requirement doesn't allow the smaller ARCH_DMA_MINALIGN. Permit an > architecture to opt in to dma_get_cache_alignment() returning > cache_line_size() which can be probed at run-time. > > Signed-off-by: Catalin Marinas > Cc: Christoph Hellwig > Cc: Robin Murphy > Cc: Will Deacon > --- > include/linux/dma-mapping.h | 2 ++ > kernel/dma/Kconfig | 7 +++++++ > 2 files changed, 9 insertions(+) > > diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h > index 3288a1339271..b29124341317 100644 > --- a/include/linux/dma-mapping.h > +++ b/include/linux/dma-mapping.h > @@ -545,6 +545,8 @@ static inline int dma_set_min_align_mask(struct device *dev, > > static inline int dma_get_cache_alignment(void) > { > + if (IS_ENABLED(CONFIG_ARCH_HAS_DMA_CACHE_LINE_SIZE)) > + return cache_line_size(); > #ifdef ARCH_HAS_DMA_MINALIGN > return ARCH_DMA_MINALIGN; > #endif Maybe allowing architectures to simply override dma_get_cache_alignment would be a little cleaner rather than adding yet another abstraction? That might also be able to repace ARCH_DMA_MINALIGN in follow on cleanup.