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 E3B0EC7EE29 for ; Thu, 25 May 2023 16:12:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1C44B6B0074; Thu, 25 May 2023 12:12:56 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 14DDC900002; Thu, 25 May 2023 12:12:56 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F30646B0078; Thu, 25 May 2023 12:12:55 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id DECFE6B0074 for ; Thu, 25 May 2023 12:12:55 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id B5EBF160D4E for ; Thu, 25 May 2023 16:12:52 +0000 (UTC) X-FDA: 80829270984.14.FE26955 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf23.hostedemail.com (Postfix) with ESMTP id B15BE140022 for ; Thu, 25 May 2023 16:12:50 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=none; spf=pass (imf23.hostedemail.com: domain of robin.murphy@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=robin.murphy@arm.com; dmarc=pass (policy=none) header.from=arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1685031170; a=rsa-sha256; cv=none; b=OYS00o2cYVgVIPk/MwHU7jWcCQs0uGN1bmYzHSZZxdFxZ71S00UXS6zs+7oQeJcaFPv//r OIbPpenS+UX8hKm8N8L+H7pGfuL3/GnGCUqTwzf/lQ9XtY1QBMf6b7OfHYneGRsLgJUf32 4iNKQeEPgKv9ZbSuGy1mVshySv4rr90= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=none; spf=pass (imf23.hostedemail.com: domain of robin.murphy@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=robin.murphy@arm.com; dmarc=pass (policy=none) header.from=arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1685031170; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mSRITqeZOIP2G8wC6e238b3zXYywC66HT3b3F+lawQw=; b=KWGQOLhf4e6LyI6U8ZujTL/YIavFTxYGNPJ4EPY7zVfh7hT2XQDxH9tl6tPDPj3DCIoeix 3K2ZH5qlvo/Xp3fJMuV8lisKUMNeBbDxHxyeUgulSQqBscTQSznFVUMA63SYDn0WGtZizx E2qQIUzDvOD8KZn021jJTIRokntgUCk= Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id A82561042; Thu, 25 May 2023 09:13:33 -0700 (PDT) Received: from [10.1.196.40] (e121345-lin.cambridge.arm.com [10.1.196.40]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 060BB3F762; Thu, 25 May 2023 09:12:38 -0700 (PDT) Message-ID: Date: Thu, 25 May 2023 17:12:37 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux aarch64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: Re: [PATCH v5 15/15] arm64: Enable ARCH_WANT_KMALLOC_DMA_BOUNCE for arm64 Content-Language: en-GB To: Catalin Marinas , Linus Torvalds , Christoph Hellwig Cc: Arnd Bergmann , 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" , linux-mm@kvack.org, iommu@lists.linux.dev, linux-arm-kernel@lists.infradead.org References: <20230524171904.3967031-1-catalin.marinas@arm.com> <20230524171904.3967031-16-catalin.marinas@arm.com> From: Robin Murphy In-Reply-To: <20230524171904.3967031-16-catalin.marinas@arm.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: B15BE140022 X-Stat-Signature: qzc3oto1tek4f6wcrfxbtd5bsorbk3f8 X-HE-Tag: 1685031170-141657 X-HE-Meta: U2FsdGVkX19E+4icqqxY9CZFA5JcUpBVGHbbStleHCB0YPoGr3l/sibUqujCHPWupsPJZQbaKO4Ror7SW+ovHKC4I1MGIDYzHrTTQ7srOywydIqXUye0DqKk9II5PqCIrm8xRM31OWUkdReTXJXaINnGY1YnHF3iPFq8k+NapEaIuJAItA5uze+WCoONDbExZ7sFiC8c7qzsqkFZA8WzLw9PtcEZjq5AoPqmquyfT//aFSWQB2oBSx2QEEmns3ezaLhukcwEZ4/Y0BoBdIKXlTds78Pk3NBsMFK8yVOVFSIdFyVU4hmN83biwj2UQCUW5usUTl9GQJIqTkgfsbao2YnAwAAIwbEXuehQFJI5ub12N034nR0n+34YaA0chKSIlfVvoeQYy4PIVkyGxURA05jxojh2INoKblqGuuUdJAHbWfRoE+0DRCNIAvlo4NMjK5ObzjRcL9LcgNQA9//Xcs2fi0LbK14MNNiYld9qf5OQ4l7XxTjJ92Y3w+zBlNfOqVfzl4qdxclZMv0hkWdF1cwfquH8WOmyz7Vz49l2h7vUlQnPJt37dWOrVs1d64T36c8NBBH28TlFGP6Sg3Z4EYxSMnkzf3Rw6MJEulSIxqI4ww4cK1OPqR4SMkXjxMfrrUqyE0npl4oUfR/gkvkg+8BHXlx5TtqxtYm+GZgNhFKMXgAehTKlbnTGibfMfGgiWTqFJ8YXWdyJcFMP7W7vp6t7e1ZN3lOvE/2qxcZrDwWqnH+ZQdpsKhgeHe1ZNGpHI1wxyrOdRjg2Xozh7gT4PlIzXnU+VoCLnROOlYQY2gXl4zOkFJYjrDp5nCDsPrq1GKrzBe4Ukm2sa9L5+u25Nfk+rLM38bMRAtAVmzJD4R28UQJIhToAolETikPsLCFHhZIRqI624oJ3lkh0xvWDnt+NAI++OdCc4q2dEmjmx7En0wdc0/UXTZipWMLCwLEjb2bWEGkJspfp+70UkDg TPsHe4FT b/rgL76gXDv2IGpDI7wYi/+K16vkGTm2rQnQpVDvs7Knxal8p6ooF6Irqv6/AJqaMgvLWFpLXGr1YMX9nvvGhZV9hz1gdG+MX5xSPGLU9I9Qv9ndrORrTV1QkukDcUbslMcJSG+wve+UdLtWlza6ssdEgiuAs8EKhjBSrTBx1YqPOfd4REFepr4c84UiswyY3NAgFqhTxwxKbpjl3kBwx/QzutfYHKgir10hMqYgZ7Jkouv4CGVcNDmGjsviPSJicpEPUXIa90nadCmGGX0xdebx0lw== 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 24/05/2023 6:19 pm, Catalin Marinas wrote: > 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 > --- > 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 We may want to give the embedded folks an easier way of turning this off, since IIRC one of the reasons for the existing automatic behaviour was people not wanting to have to depend on the command line. Things with 256MB or so of RAM seem unlikely to get enough memory efficiency back from the smaller kmem caches to pay off the SWIOTLB allocation :) Cheers, Robin. > 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();