From patchwork Fri Dec 17 09:08:26 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Baoquan He X-Patchwork-Id: 12683931 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 39F2DC433F5 for ; Fri, 17 Dec 2021 09:09:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 302B96B0073; Fri, 17 Dec 2021 04:08:51 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 28B5C6B0075; Fri, 17 Dec 2021 04:08:51 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 12B976B0078; Fri, 17 Dec 2021 04:08:51 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0056.hostedemail.com [216.40.44.56]) by kanga.kvack.org (Postfix) with ESMTP id 02FE86B0073 for ; Fri, 17 Dec 2021 04:08:51 -0500 (EST) Received: from smtpin07.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id B4F0218030C8B for ; Fri, 17 Dec 2021 09:08:40 +0000 (UTC) X-FDA: 78926710800.07.8BD793B Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf31.hostedemail.com (Postfix) with ESMTP id 970FA20014 for ; Fri, 17 Dec 2021 09:08:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1639732120; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=sT+g3CTtmuJQa5zGo6KTILdE5kw3zymgexb1EZSOqJ0=; b=QYGstFkOebVwVRMLC0rhkJPz2C5yRkn3xEnNPXWjwLZFXzobXgPZwWmT616W2TtjeB1S6g jh7EamUeC3dY1prq051lD/cUAtD4anCk8SJSBfnznSIydCMlXiJnflhyqoEqsAdzRd0Mls tnngD9b9pcgXQcwBbn/jgvAruNEW6e0= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-647-PY05FEHuPQCSFtN73MMsaA-1; Fri, 17 Dec 2021 04:08:36 -0500 X-MC-Unique: PY05FEHuPQCSFtN73MMsaA-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4F369593A8; Fri, 17 Dec 2021 09:08:35 +0000 (UTC) Received: from MiWiFi-R3L-srv.redhat.com (ovpn-12-164.pek2.redhat.com [10.72.12.164]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7E6CD7A488; Fri, 17 Dec 2021 09:08:32 +0000 (UTC) From: Baoquan He To: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org, akpm@linux-foundation.org, corbet@lwn.net, hch@lst.de, cl@linux.com, bhe@redhat.com Subject: [PATCH 1/2] docs: kernel-parameters: Update to reflect the current default size of atomic pool Date: Fri, 17 Dec 2021 17:08:26 +0800 Message-Id: <20211217090827.101938-2-bhe@redhat.com> In-Reply-To: <20211217090827.101938-1-bhe@redhat.com> References: <20211217090827.101938-1-bhe@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Rspamd-Queue-Id: 970FA20014 X-Stat-Signature: m9yebc6ahmcc7fqqxszo9byae45b6psi Authentication-Results: imf31.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=QYGstFkO; dmarc=pass (policy=none) header.from=redhat.com; spf=none (imf31.hostedemail.com: domain of bhe@redhat.com has no SPF policy when checking 170.10.129.124) smtp.mailfrom=bhe@redhat.com X-Rspamd-Server: rspam02 X-HE-Tag: 1639732112-875590 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: Since commit 1d659236fb43("dma-pool: scale the default DMA coherent pool size with memory capacity"), the default size of atomic pool has been changed to take by scaling with system memory capacity. So update the document in kerenl-parameter.txt accordingly. Signed-off-by: Baoquan He Reviewed-by: Christoph Hellwig --- Documentation/admin-guide/kernel-parameters.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt index 9725c546a0d4..ec4d25e854a8 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -664,7 +664,9 @@ coherent_pool=nn[KMG] [ARM,KNL] Sets the size of memory pool for coherent, atomic dma - allocations, by default set to 256K. + allocations. Otherwise the default size will be scaled + with memory capacity, while clamped between 128K and + 1 << (PAGE_SHIFT + MAX_ORDER-1). com20020= [HW,NET] ARCnet - COM20020 chipset Format: From patchwork Fri Dec 17 09:08:27 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Baoquan He X-Patchwork-Id: 12683933 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 EB912C433EF for ; Fri, 17 Dec 2021 09:09:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4604B6B0075; Fri, 17 Dec 2021 04:08:56 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 3E97D6B0078; Fri, 17 Dec 2021 04:08:56 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 28ACB6B007B; Fri, 17 Dec 2021 04:08:56 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0233.hostedemail.com [216.40.44.233]) by kanga.kvack.org (Postfix) with ESMTP id 1A7B56B0075 for ; Fri, 17 Dec 2021 04:08:56 -0500 (EST) Received: from smtpin13.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id C9C8B82499B9 for ; Fri, 17 Dec 2021 09:08:45 +0000 (UTC) X-FDA: 78926711010.13.9339CBD Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf10.hostedemail.com (Postfix) with ESMTP id 9F808C0014 for ; Fri, 17 Dec 2021 09:08:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1639732124; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=DRJJuCkVZyOEZbsOujR3uAMVyJ2EnPCTOzk3f46x6zw=; b=e0c69PacukQpSlDb9PGlUbxEarx6CvNFc0WjqyqqPhNcviv4QLBog8Ytq9NTrERgsgLb/g hh36kDLob6iLTu2knNO9PtIzNgLAHaN7UFAjcqCd5VrwyRzvnCV6s0isrPX7HJcAcJhr0P gz9lEo5THbH3Yshez+AWw+7ulv1302Q= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-590-HmxlCgYLOFSU00JjNowJaA-1; Fri, 17 Dec 2021 04:08:41 -0500 X-MC-Unique: HmxlCgYLOFSU00JjNowJaA-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id C57EE185303D; Fri, 17 Dec 2021 09:08:39 +0000 (UTC) Received: from MiWiFi-R3L-srv.redhat.com (ovpn-12-164.pek2.redhat.com [10.72.12.164]) by smtp.corp.redhat.com (Postfix) with ESMTP id D0F5D7A483; Fri, 17 Dec 2021 09:08:35 +0000 (UTC) From: Baoquan He To: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org, akpm@linux-foundation.org, corbet@lwn.net, hch@lst.de, cl@linux.com, bhe@redhat.com Subject: [PATCH 2/2] dma-pool: allow user to disable atomic pool Date: Fri, 17 Dec 2021 17:08:27 +0800 Message-Id: <20211217090827.101938-3-bhe@redhat.com> In-Reply-To: <20211217090827.101938-1-bhe@redhat.com> References: <20211217090827.101938-1-bhe@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Rspamd-Queue-Id: 9F808C0014 X-Stat-Signature: bn7bcym9o8nuxbefoodcorttq4p59nxd Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=e0c69Pac; dmarc=pass (policy=none) header.from=redhat.com; spf=none (imf10.hostedemail.com: domain of bhe@redhat.com has no SPF policy when checking 170.10.133.124) smtp.mailfrom=bhe@redhat.com X-Rspamd-Server: rspam11 X-HE-Tag: 1639732120-803732 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: In the current code, three atomic memory pools are always created, atomic_pool_kernel|dma|dma32, even though 'coherent_pool=0' is specified in kernel command line. In fact, atomic pool is only necessary when CONFIG_DMA_DIRECT_REMAP=y or mem_encrypt_active=y which are needed on few ARCHes. So change code to allow user to disable atomic pool by specifying 'coherent_pool=0'. Meanwhile, update the relevant document in kernel-parameter.txt. Signed-off-by: Baoquan He Reviewed-by: Christoph Hellwig --- Documentation/admin-guide/kernel-parameters.txt | 3 ++- kernel/dma/pool.c | 7 +++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt index ec4d25e854a8..d7015309614b 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -664,7 +664,8 @@ coherent_pool=nn[KMG] [ARM,KNL] Sets the size of memory pool for coherent, atomic dma - allocations. Otherwise the default size will be scaled + allocations. A value of 0 disables the three atomic + memory pool. Otherwise the default size will be scaled with memory capacity, while clamped between 128K and 1 << (PAGE_SHIFT + MAX_ORDER-1). diff --git a/kernel/dma/pool.c b/kernel/dma/pool.c index 5f84e6cdb78e..5a85804b5beb 100644 --- a/kernel/dma/pool.c +++ b/kernel/dma/pool.c @@ -21,7 +21,7 @@ static struct gen_pool *atomic_pool_kernel __ro_after_init; static unsigned long pool_size_kernel; /* Size can be defined by the coherent_pool command line */ -static size_t atomic_pool_size; +static unsigned long atomic_pool_size = -1; /* Dynamic background expansion when the atomic pool is near capacity */ static struct work_struct atomic_pool_work; @@ -188,11 +188,14 @@ static int __init dma_atomic_pool_init(void) { int ret = 0; + if (!atomic_pool_size) + return 0; + /* * If coherent_pool was not used on the command line, default the pool * sizes to 128KB per 1GB of memory, min 128KB, max MAX_ORDER-1. */ - if (!atomic_pool_size) { + if (atomic_pool_size == -1) { unsigned long pages = totalram_pages() / (SZ_1G / SZ_128K); pages = min_t(unsigned long, pages, MAX_ORDER_NR_PAGES); atomic_pool_size = max_t(size_t, pages << PAGE_SHIFT, SZ_128K);