From patchwork Mon Jun 12 15:31:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Catalin Marinas X-Patchwork-Id: 13276858 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 98F85C88CB4 for ; Mon, 12 Jun 2023 15:32:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3142F8E0006; Mon, 12 Jun 2023 11:32:23 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2C3B68E0002; Mon, 12 Jun 2023 11:32:23 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 164D38E0006; Mon, 12 Jun 2023 11:32:23 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 02A638E0002 for ; Mon, 12 Jun 2023 11:32:23 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id CFC4E1A0260 for ; Mon, 12 Jun 2023 15:32:22 +0000 (UTC) X-FDA: 80894487324.28.BEEE22C Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf24.hostedemail.com (Postfix) with ESMTP id E8948180037 for ; Mon, 12 Jun 2023 15:32:09 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none); spf=pass (imf24.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=1686583930; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references; bh=sfm6oK2kKER3nS3c7n4XXIpQr7CIb5U5AXi7eHp9iFs=; b=In0k1rrx0gMJbldi4WNOykDhxzQG+93lPHaI4mxxwcoYLC/HiX1EiVOCrkvnRpV0vxZrOo ar84g9G7SG8nPC5is5qz5KjvcixJsp74JY/dcZwMfTo51i8SXDxDHvi+ujbJaeKL2J7rpB X/McJCitSr2mrShTrt/cYK0IXKWfLRE= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none); spf=pass (imf24.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=1686583930; a=rsa-sha256; cv=none; b=ecx63ro6lITzROQIul6F5TaDN7IOB/R+zzsDX/kpNezRP/HFrtBFGU3uUUE5OE3dqsaLVC IfjZzb24wcdp6cZRt4gETj1yeBTaogp7Q+QaePrHevCxKD+z4CqcyBUOX5WqTaGA1DGyWW htfKqLs/5Zvz6ud8an9pCMelklkLIGE= 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 8F8DB62AE3; Mon, 12 Jun 2023 15:32:08 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A0019C433D2; Mon, 12 Jun 2023 15:32:03 +0000 (UTC) From: Catalin Marinas To: Andrew Morton , Linus Torvalds Cc: 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 , Vlastimil Babka , linux-mm@kvack.org, iommu@lists.linux.dev, linux-arm-kernel@lists.infradead.org Subject: [PATCH v7 00/17] mm, dma, arm64: Reduce ARCH_KMALLOC_MINALIGN to 8 Date: Mon, 12 Jun 2023 16:31:44 +0100 Message-Id: <20230612153201.554742-1-catalin.marinas@arm.com> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 X-Rspamd-Queue-Id: E8948180037 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: mgduw9s1nfpeus67ui784p8nn9d4ca14 X-HE-Tag: 1686583929-188900 X-HE-Meta: U2FsdGVkX1+AOdCr5MgWr+/WgwLGIVCM6tjlkGOp+ILg9k32fLQ5KCsXEfd/wQhn0S8KjdZFTWlO9uzOB30eFuY9f6YIHUA6YcLUUJjghCFGELJMuOb4w4OURA5+1tgWTr4kHQUBm+dzI1xfAATb7A7H3CCp/EnjtALKRHuHryGsioXWP2APBDe5MoBGOctd+XKBPLXP12RFcYdMCZikjVZEM7F5Qvgk+lSSeTIur2qTgk4uz28Q/bTvxEHQBhAA9BbKRj3JYMemZOHIOASvBxnQarX/UQOgIyJAvGNfk/cZTK+arz6vEKXUItbu6THN2yPfepXCok0Me1DIwFMq81/yesUTmW0/bsngrU/D58KcrfYsBIMNDSBbc8YtPuEWftqP3lHQhbY2xpDIVswuBNMcocakXItFB+d82WcF0PLgXrOg2euSmOr9gOVU+/+yK3XEcXv6Ej5Mpbtl/S6VNpSfi6gmRCpPdazfpFNFmkT7KPSX4X/Z6E51qTO/sVPq78WX9Axre37ij3oVCFpMh2Nutk8p9Z0woOPlle0cImsIJewsi4eXYK4T+7PcQpi6O9r7EgMOuZEFBG0VmyjK3+bncpf1hCnZ4AOtRHCwvsNFcB7+mOG+mQ8aNucUqsPf5THCdxU3VBI875glvfoIwARRWU35MEFsgGpaW63QbZNwTiOhENcpgoqKbN6tsvCSr7l6ptSvHmLRf7qvuxzHps8fSXOjk0684Qgn1EC0cxKhR2bdMn2xsxoHd2KeN9l+R2v5xYr/0bFQ+67WR3GnS5v71wYZ5m9jhQIA7iSjSGSvUdk0W6EQsKJxHTJhpArM8B+n6BsHLoB0DORP4q14HsQfFrBb8vJPDZNgC6e4+4CfY+mBQCMQUN0yYo4A4rB1YoKwideo8WjG4Vg42IaRDa+wkNvU1U92UDFiam2TrmhGoiwTmrWQ1haxnFskvSvM0wO0Y/oo3hPvwXLK83C yQs6WBji 8IXV/2IG2rcaXmFqFIJlR/7RDIbM7WbLxzFYq5b0YUHFWx2aOKaUPgg6Vs/MnJ4Lzhr8OOdNQoG3vsJ3I2U5Yyu2URZVhtwyh/REJ9zKDaoP6ogCwqPHpX/iovURzdq7TGrJCNUyKdkcF+r2m67iymijZWeUGn/bP+HSfXmfLP8mGs2J65HX2u6xW/LkVPPslFnYzYrb+7BwE3vjbp8qgfkzmLoFo+9hUUnm7dNvW101qddTn9SBYEe7uOBfS6rJuzFZ0+jKaIiuzP0womzG40pY3M0833Oa7IUHYyt1k9J5RbGDyROw1Exn4hKowVEaGAbjRDhawQkXTcCFoJLOojsR95s3ESisCrucL0DYSLpZgcQWOI8DwpIqiW6RtuIx3u1rY8AaLhp0iYasaRfIXEpVk5eeAVvDi90rTUmZXmEQYyWBsdHook1guHyV/+D5S6vzG+ooRxKOVAox3Y8UPFv7YyLbwjZX3KFgCPi1+Cj/G2+2P+qc09rYsVpuaLuDKPGifwHHyyWiq5w7smtwTRMUu7VvjQLws+Wo2skX75prYoolTuJrE0eNHKvlYBfkeK2Dd 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: Hi, That's v7 of the series reducing the kmalloc() minimum alignment on arm64 to 8 (from 128). There's no new/different functionality, mostly cosmetic changes and acks/tested-bys. Andrew, if there are no further comments or objections to this version, are you ok to take the series through the mm tree? The arm64 changes are fairly small. Alternatively, I can push it into linux-next now to give it some wider exposure and decide whether to upstream it when the merging window opens. Thanks. The updated patches are also available on this branch: git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux devel/kmalloc-minalign Changes since v6 (https://lore.kernel.org/r/20230531154836.1366225-1-catalin.marinas@arm.com): - Moved ARCH_DMA_MINALIGN to include/linux/cache.h from slab.h (it matches the asm/cache.h where most architectures defining this macro place it). - Single body for __kmalloc_minalign() with an #ifdef. - Renamed the sg_dma_use_swiotlb() to sg_dma_is_swiotlb() (Robin's suggestion). - Added acks/tested-by. Catalin Marinas (15): mm/slab: Decouple ARCH_KMALLOC_MINALIGN from ARCH_DMA_MINALIGN dma: Allow dma_get_cache_alignment() to be overridden by the arch code mm/slab: Simplify create_kmalloc_cache() args and make it static mm/slab: Limit kmalloc() minimum alignment to dma_get_cache_alignment() drivers/base: Use ARCH_DMA_MINALIGN instead of ARCH_KMALLOC_MINALIGN drivers/gpu: Use ARCH_DMA_MINALIGN instead of ARCH_KMALLOC_MINALIGN drivers/usb: Use ARCH_DMA_MINALIGN instead of ARCH_KMALLOC_MINALIGN drivers/spi: Use ARCH_DMA_MINALIGN instead of ARCH_KMALLOC_MINALIGN dm-crypt: Use ARCH_DMA_MINALIGN instead of ARCH_KMALLOC_MINALIGN iio: core: Use ARCH_DMA_MINALIGN instead of ARCH_KMALLOC_MINALIGN arm64: Allow kmalloc() caches aligned to the smaller cache_line_size() dma-mapping: Force bouncing if the kmalloc() size is not cache-line-aligned iommu/dma: Force bouncing if the size is not cacheline-aligned mm: slab: Reduce the kmalloc() minimum alignment if DMA bouncing possible arm64: Enable ARCH_WANT_KMALLOC_DMA_BOUNCE for arm64 Robin Murphy (2): scatterlist: Add dedicated config for DMA flags dma-mapping: Name SG DMA flag helpers consistently arch/arm64/Kconfig | 1 + arch/arm64/include/asm/cache.h | 3 ++ arch/arm64/mm/init.c | 7 +++- drivers/base/devres.c | 6 ++-- drivers/gpu/drm/drm_managed.c | 6 ++-- drivers/iommu/Kconfig | 1 + drivers/iommu/dma-iommu.c | 58 ++++++++++++++++++++++++-------- drivers/iommu/iommu.c | 2 +- drivers/md/dm-crypt.c | 2 +- drivers/pci/Kconfig | 1 + drivers/spi/spidev.c | 2 +- drivers/usb/core/buffer.c | 8 ++--- include/linux/cache.h | 6 ++++ include/linux/dma-map-ops.h | 61 ++++++++++++++++++++++++++++++++++ include/linux/dma-mapping.h | 5 ++- include/linux/iio/iio.h | 2 +- include/linux/scatterlist.h | 60 ++++++++++++++++++++++++++------- include/linux/slab.h | 14 +++++--- kernel/dma/Kconfig | 7 ++++ kernel/dma/direct.c | 2 +- kernel/dma/direct.h | 3 +- mm/slab.c | 6 +--- mm/slab.h | 5 ++- mm/slab_common.c | 41 +++++++++++++++++------ 24 files changed, 244 insertions(+), 65 deletions(-)