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 C8CBFC7EE2F for ; Mon, 12 Jun 2023 15:33:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6E3BF8E0005; Mon, 12 Jun 2023 11:33:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 69395940009; Mon, 12 Jun 2023 11:33:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 55D528E000D; Mon, 12 Jun 2023 11:33:26 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 3D1218E0005 for ; Mon, 12 Jun 2023 11:33:26 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 1FE79AF5D4 for ; Mon, 12 Jun 2023 15:33:26 +0000 (UTC) X-FDA: 80894490012.08.F0DDAEA Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf06.hostedemail.com (Postfix) with ESMTP id 764B1180006 for ; Mon, 12 Jun 2023 15:33:24 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none); spf=pass (imf06.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=1686584004; 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:in-reply-to:references:references; bh=ohstg6Y6DkD+7eeT8TqXPEnbed0FH6PfCyBYZpswvgo=; b=MewcNe3eSRVC8io1f3Rt/IN9HPfz89v6OVT/FyasmBwhEs2q6Cmgz0jLNk4eJY87brett1 m7YCQFSlhTxs1AFNNTDgNON20mv+Y1UIa2kLRX8ra45xskzVPX625LBXgG79Hgu766Haey gMWHpMBqg2oGUxs0OKa4+wZ647/5PKI= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none); spf=pass (imf06.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=1686584004; a=rsa-sha256; cv=none; b=L6opSX7MixD4RptWwlyuLVvVszmo+1SH6ssVhkXgY9AiYoOUnmj31aF8JrioiCV3dVlUjq X7AG+1qn2bd/5I3QxvmeE6WQ+5AvdprooGo4CThCU+GvayceJTIVfkLLGH6xnOUI/y1yoB cVmsAgtBBaFJO20Tv0jgnkJH5dtA/NM= 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 A03F5617E7; Mon, 12 Jun 2023 15:33:23 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 216D4C433D2; Mon, 12 Jun 2023 15:33:18 +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 17/17] arm64: Enable ARCH_WANT_KMALLOC_DMA_BOUNCE for arm64 Date: Mon, 12 Jun 2023 16:32:01 +0100 Message-Id: <20230612153201.554742-18-catalin.marinas@arm.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230612153201.554742-1-catalin.marinas@arm.com> References: <20230612153201.554742-1-catalin.marinas@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 764B1180006 X-Stat-Signature: bshd56sfgwuq68ickc41cj9n6uz89dh7 X-HE-Tag: 1686584004-929576 X-HE-Meta: U2FsdGVkX1/pxaZPCpFM8PCvDfLBvn1uz74w132rYZjigEuj3l+caA2AEx+/zAubeXjDveTvRXmUCZisV9mUNJ5nvnj8/xfkouiPrBzJNC0U2hXlQMw46As9gks4dTgdCcvgbJ/CerxwlKA80z1PiShiOwer/RTZYP3jAVWncOaSQ7h/dvYV/IUVeuN3ONnP5jMFGnzgnSnz97fy24CqbWaliIze8Fc4JdNfinKYOVeka9vqov/QU7z0/zup3DjaAfJKTYFwF6OtRruS/xGgR/LECOPq6nxkCYoVq2HvhMtNnNagnCfRZDwCJGAplIWTWWPFP/gsdInqmfhLDfsecUhUnh6zU2Y/TSwMkQUEafBZRUGaGxE90ouQZrGBbQmDamGQVQ0dJV97R+pEcoKcZ0CfZqPabwJCiRWTFrUKaLqQntgVPHT0DrMPWU5KpPxK1VhRBkHSqafRgMYYBTe5u13k2CGySIeb/3cJYkHVvstaqXfCazZhpLyFA1Ctu/8y/rd1tcY9MAUYV9V8iKrC+VoN+ChFWmMwC/bcZil1sMw4kBAN8GBGT37U5pvazlDpDYcUBcK/Ny1UT9O2YD32eH8HnRFto+8+DsX5hdKQOYVzw1x3u6etnXcd3uFCsRLxY6mfIGdK4lz4vMAL6svFDbewPv+RLAjoJwBiwgNQxHJHwxogSqyn+6hB3XHHQAQbH7XzEaZEoRT49lkh2/bzLbZnQ9BABgglY97pdBPsi52lYgBYpojzjjT4yo15foz2R+zZcZSyeNbtJtHMxcC20gHd2FojGC5dUCmHmWSrle9fKyUi2RiQvUmfLmBsC9XkSrJf7s4QkYAVLlI79l+4yyuWAzXGKv9ZlylamLUPp8ZfSfBXGL9wVsMo7FmjjuPkcuKPe/ZFbiV+bd2HcAcwUout8IxXYI/JcZcxQPU0v7zGZzJqmjgrUSH3eBlEzRMzcumz58JV/gvVRvbb82y /DoVr4So Tzhwt76j7BXN2sMo2/qaeNl0ubV7kwXvlcGxJHRrSDTPJ7AmOKly6fz7oqVHgFsEekHGywncNHjYUSdX1gBwmRmA1Tiqt4dO4FKjDUzYYT2yg4i1ZqH3+9DuW5UOZs0Ntzno4XAsZcNkKFUAJSnmiY9J9kItSSKp70Glhb0zMzrpHvRH2U+daomgUSuCfDgile5OU7ftxJMXUpBjiIuTZ8j4hohbh88cUt2RjRRKNcup0hHm4Bl/pfeRZmPEmi/Tp7+boHJlhr2F2SiZEI4z8dPfn5TO24nzMu7UilMcf46XUGdec3PZljRLOkxRagIPv6PmJsIEaUuO0SPpzprRjW5RHRlVm8zJxFDtr4CtnRaodPMcOYhnmVnRGPZkIohvlS5uCYmvp6Wb6QsC/VZT549/jhAQdjF8C6QPhdIQIbAM3k1NrsIQzRX2rRbDdIK0IGqJYaq+EOi37FzlXpnnsO0lbAeBe2C+zQfSI9KKsvXiowbLmlUDJyigk1baQG1h6U42X2qfjousDuPcAI2f1y5PXkWSEq2l9Pc/3Us8sZRhCiJuc3Lm5YJfqNQ+b1ZbqhYW56n0VCCLWGt36CINgu1kjAw== 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: With the DMA bouncing of unaligned kmalloc() buffers now in place, enable it for arm64 to allow the kmalloc-{8,16,32,48,96} caches. In addition, always create the swiotlb buffer even when the end of RAM is within the 32-bit physical address range (the swiotlb buffer can still be disabled on the kernel command line). Signed-off-by: Catalin Marinas Cc: Will Deacon Tested-by: Isaac J. Manjarres --- arch/arm64/Kconfig | 1 + arch/arm64/mm/init.c | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index b1201d25a8a4..af42871431c0 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -120,6 +120,7 @@ config ARM64 select CRC32 select DCACHE_WORD_ACCESS select DYNAMIC_FTRACE if FUNCTION_TRACER + select DMA_BOUNCE_UNALIGNED_KMALLOC select DMA_DIRECT_REMAP select EDAC_SUPPORT select FRAME_POINTER diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c index 66e70ca47680..3ac2e9d79ce4 100644 --- a/arch/arm64/mm/init.c +++ b/arch/arm64/mm/init.c @@ -442,7 +442,12 @@ void __init bootmem_init(void) */ void __init mem_init(void) { - swiotlb_init(max_pfn > PFN_DOWN(arm64_dma_phys_limit), SWIOTLB_VERBOSE); + bool swiotlb = max_pfn > PFN_DOWN(arm64_dma_phys_limit); + + if (IS_ENABLED(CONFIG_DMA_BOUNCE_UNALIGNED_KMALLOC)) + swiotlb = true; + + swiotlb_init(swiotlb, SWIOTLB_VERBOSE); /* this will put all unused low memory onto the freelists */ memblock_free_all();