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 A81D0C36005 for ; Fri, 21 Mar 2025 16:14:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 98488280007; Fri, 21 Mar 2025 12:14:38 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 91241280001; Fri, 21 Mar 2025 12:14:38 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 736F5280007; Fri, 21 Mar 2025 12:14:38 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 45783280001 for ; Fri, 21 Mar 2025 12:14:38 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 82F5AB5FDB for ; Fri, 21 Mar 2025 16:14:39 +0000 (UTC) X-FDA: 83246056278.26.88760FE Received: from mail-qt1-f171.google.com (mail-qt1-f171.google.com [209.85.160.171]) by imf06.hostedemail.com (Postfix) with ESMTP id A0DE4180011 for ; Fri, 21 Mar 2025 16:14:37 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=14lZOjJ2; spf=pass (imf06.hostedemail.com: domain of surenb@google.com designates 209.85.160.171 as permitted sender) smtp.mailfrom=surenb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1742573677; 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:dkim-signature; bh=Lr1NpamvodEP6MFP3VgS0Dk87IubpsnKUE/+euMf6QU=; b=xtDJ4JE5RQM7mNWsbJzt12jXKWvq4um9TZ5OkXi9OR8AeMv/SdPMpixs/UyhMmqtKo2lD3 9ihZ8XiCPLbFLpx8lZ1E1ee/1N42EnxPsdM/E4MFLNEjtPvDgEfAxANsyiK7u0cy+kLStO kh/QWCAXOernuECe11k4PIEBXXh4DVU= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=14lZOjJ2; spf=pass (imf06.hostedemail.com: domain of surenb@google.com designates 209.85.160.171 as permitted sender) smtp.mailfrom=surenb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1742573677; a=rsa-sha256; cv=none; b=0yvxs5ZyeRq1ukp23wXVn7fPmRoVd2jPabOCSBiO4ZQSlsgslT/8PZPb8BkvHFyKwTrItt FppTWzN8RSgmMkqPdDBLdHaBgxirHnSRw7rRklRvolpzSp4PxXfS8KDKdYjZfQCudabuv7 fkQoH1ddnEaFefDq+zEPgWB0zO2+4ZY= Received: by mail-qt1-f171.google.com with SMTP id d75a77b69052e-47681dba807so242951cf.1 for ; Fri, 21 Mar 2025 09:14:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1742573677; x=1743178477; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=Lr1NpamvodEP6MFP3VgS0Dk87IubpsnKUE/+euMf6QU=; b=14lZOjJ2/SliYjCnM4Sxamixr7vY5hRmciDIf7ppdKgMPoJYQmTzgrgPX8QU0VVihe IXyc8hMBADRCuu7wOhhQAn2gOKqa/Q8aE/SOOrQl24zOJIJRxwYfrcDxrH9RDyJJX+lE NCF/qyn4Z4l7XUqDS5GE4hRiqTfNWrkKvGPyjBhxrO+7IYUR+5aRB6bwVz91lhfnnqYE 9l65OmYGdE/UUZNcwsq3YbwCmJfWlx1lX/Ryul+0rZXWpr64xTW12X0qqKVAKvMcVcBp AIMe5zFCPV9a/Jfhw+3cbeyhR43ptN+p+U9IBFb5TwzACQz5V8GkP3+XQz0oApDmXRXo bdrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742573677; x=1743178477; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Lr1NpamvodEP6MFP3VgS0Dk87IubpsnKUE/+euMf6QU=; b=q24f2FraTVErsbYhCxxXJvzuNSv7SGvh+spZTIpNODThTNrmoi6F7lMTzoGzLBONm9 mKw/p+noQ6ah2OaEQ2UPZvXKs04O8SidOAukn6SNsUVAkZ/dS6gdyLuXqbIyp5JdUK7x jmS1Kto1kTrlRW5a8oUPceW01mGdVv+PtlTkmf2+QVviIAeoAWWKc9oYY4CwRIpA2W72 l0E7/80EebtRHLb06DWnJNcayigFINZVMuskBpj8wYKaHKnGSQNB22bu4DBFZhNTz6vO VPYf3qBdv4duCiXcVyTkgFZMBg8DIur7HyN/HWPUrE6l7MZusWc/GX5oJjiYtVq75J1j ClOg== X-Forwarded-Encrypted: i=1; AJvYcCXQDAZsXOe2ZXEZfwvjz4m/ZWCmp4bTFfLfXnxRdyEKWyVPA4AmzUfDzaovc1jKtFdQ3FThqv0/Dg==@kvack.org X-Gm-Message-State: AOJu0YzkbNG55I8Z2MedA+/9PmUYqLRO7BSKdfTkUPDGgMjR8g1CS+fY 2uzmuig8rIRjTKeHWyuGgqTPmgV1Isfi8KRCJ3pDJzs1Tmty6oNUKCE6kzHyK2SdaXPk6uxlu7m D1vXAWOcBYa96EsibWabTst+B9YwPMH8bmFkf X-Gm-Gg: ASbGncvRVan199OTBdeuJDRdEvmznvo5DR3BpltR4guehyMAwwYO4pXYveUudVBpmfJ RtiUY3qdGbVAdOdIJ+kW6f/Nzf21ipqMW1/Ln/9XMs9VrAiiWxA1CBghnnMGxN0nKTvHL8PEwzd pGJCWPmyMG8Nwufsq8vexZ+7Aarw== X-Google-Smtp-Source: AGHT+IFtRdtnxmYqCiNGozdyiDRgbS5XVd2/jJNIMYaa9ildizNYGE8X3N7zH+w9Lm6oeOkoQXAJJ6yRGhxNC/i547Y= X-Received: by 2002:a05:622a:1c10:b0:476:77be:9102 with SMTP id d75a77b69052e-4771f510a8amr3527931cf.7.1742573676464; Fri, 21 Mar 2025 09:14:36 -0700 (PDT) MIME-Version: 1.0 References: <20250320173931.1583800-1-surenb@google.com> <20250320173931.1583800-4-surenb@google.com> <20250321-unhelpful-doze-791895ca5b01@spud> In-Reply-To: <20250321-unhelpful-doze-791895ca5b01@spud> From: Suren Baghdasaryan Date: Fri, 21 Mar 2025 09:14:24 -0700 X-Gm-Features: AQ5f1Jp8UfxX8WOnw9385d8J0NeQgt0g6OSnoez6cTxiRd2n5Bydr6rryoZB6As Message-ID: Subject: Re: [RFC 3/3] mm: integrate GCMA with CMA using dt-bindings To: Conor Dooley Cc: akpm@linux-foundation.org, willy@infradead.org, david@redhat.com, vbabka@suse.cz, lorenzo.stoakes@oracle.com, liam.howlett@oracle.com, alexandru.elisei@arm.com, peterx@redhat.com, hannes@cmpxchg.org, mhocko@kernel.org, m.szyprowski@samsung.com, iamjoonsoo.kim@lge.com, mina86@mina86.com, axboe@kernel.dk, viro@zeniv.linux.org.uk, brauner@kernel.org, hch@infradead.org, jack@suse.cz, hbathini@linux.ibm.com, sourabhjain@linux.ibm.com, ritesh.list@gmail.com, aneesh.kumar@kernel.org, bhelgaas@google.com, sj@kernel.org, fvdl@google.com, ziy@nvidia.com, yuzhao@google.com, minchan@kernel.org, linux-mm@kvack.org, linuxppc-dev@lists.ozlabs.org, linux-block@vger.kernel.org, linux-fsdevel@vger.kernel.org, iommu@lists.linux.dev, linux-kernel@vger.kernel.org, Minchan Kim Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: A0DE4180011 X-Rspamd-Server: rspam05 X-Rspam-User: X-Stat-Signature: 6pd11rw7t35fjykbtixsuxznsfy8wxsc X-HE-Tag: 1742573677-67806 X-HE-Meta: U2FsdGVkX1+gOFyT9mPq/q17mXgu+uFTGfm9BhqQ/Ezj/VeYom34OGFsSMjkPSLkKxE7qHzWETIHxcBSPJ3xm6kp6Bg8IX5Z6/UI9yL5XSM7mXdF5uWeASmb8g78VptauOjG3QWCdJxRcOrrOllX6+8IR2gKypsm+xvJjgpzI4WaGDatqcQ/S6xq/LrjIrBqYfdmnh6WYAz9kGCOxw8W4zGM9DFN+uvYySbucslDLtAHTmx/x4xgxkX8iGg3qZhyme2l5u+bN6XjL9SURglcXwECsA87nX3m2kjMjcBghHIOKiw+SVpV8rbl1JtO3jI6odRtHrYrcEPOGPNh1G1pano9i/SezoySMqSIxcLtENdDIVwfonNGQfNY3NQjFDNQwt7J7T4yzxNl6Oqlhrd6AMtDaqNvMJ9Zd7VF1R+WSZSP14xtjpG3uvHEEscJsZzcbcMgHso3Hx0i4XQttJ7CgOAccxKvjCg6vlhSAS+ZgjSzbcC1YdNYc8p/a9pdCTe+243vDuGEQL1hla4ZI8LYA3BeZJbI8x53/mwOw4Y51GUhFRolBr91QAzuxvpO803W6grd5TORKVLp7bQQ5rg15o/6Sxxn20gDw3aW0qTHnpLJcRvc+1V8nrjY21nfF4F+dJpqM+NSVs7rBplyJXc3dsS9vvpQaOCEmR+u4wEydEduf1DZnXIMJTkmRbmU6PIxdHdVHY/82NkjcnSUeyhMM8zNdMeG7w5W0XLPI9sFTrxwGZPcdLoom9ZnjPksMzm9GDniqi8di3Px2slqaONgCMsOXxYSnplbWjRJZwZbNFjqmexB54+DU+h7xdiBLeSlW0p6/+qvViCOKSk5TvrV50zxcqAGTlxHtMCIOqu6Ktlq+whPK1dMYCtrooc2cLMyeoPy3Fg6dixaV3q/gaXJB0BjGGagSeBAs6WZ7xjtR2Ih++76PuJtTmDYfNOfgODc9TcDuywuNmDSX9Ho4OB DOEWcteo Fodzs9a49qTOiTmpt64SIFL8Q6oIugbyMrggYlQA3x3fnx1au5UDDK/1WBmj6FOAFdB4xA0B1xKn7MFqeuS08tWnudcLorQOfggUsSose/Zw6190RC3mHGgoizRGMw0zjBRS0uFc7nZgIV+a+mkosaksNAXabNLTBT7olAtqIXZhvbXFtuM5xWJE0u1fcDn2XogQ0XQBAYl4jUCp5/cDDwqOBYrEe43lgu3ecbkmddGR6H/9Q5LcUN4VjMfrOFVWJfKvhipIvyoDSyVGgQWv+oRwb+u0leNGjP7ZTTZWmNq+UG2CEBQ39ZFdeqg== 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: List-Subscribe: List-Unsubscribe: On Fri, Mar 21, 2025 at 7:06=E2=80=AFAM Conor Dooley wro= te: > > On Thu, Mar 20, 2025 at 10:39:31AM -0700, Suren Baghdasaryan wrote: > > This patch introduces a new "guarantee" property for shared-dma-pool. > > With this property, admin can create specific memory pool as > > GCMA-based CMA if they care about allocation success rate and latency. > > The downside of GCMA is that it can host only clean file-backed pages > > since it's using cleancache as its secondary user. > > > > Signed-off-by: Minchan Kim > > Signed-off-by: Suren Baghdasaryan > > --- > > arch/powerpc/kernel/fadump.c | 2 +- > > include/linux/cma.h | 2 +- > > kernel/dma/contiguous.c | 11 ++++++++++- > > mm/cma.c | 33 ++++++++++++++++++++++++++------- > > mm/cma.h | 1 + > > mm/cma_sysfs.c | 10 ++++++++++ > > 6 files changed, 49 insertions(+), 10 deletions(-) > > > > diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.= c > > index 4b371c738213..4eb7be0cdcdb 100644 > > --- a/arch/powerpc/kernel/fadump.c > > +++ b/arch/powerpc/kernel/fadump.c > > @@ -111,7 +111,7 @@ void __init fadump_cma_init(void) > > return; > > } > > > > - rc =3D cma_init_reserved_mem(base, size, 0, "fadump_cma", &fadump= _cma); > > + rc =3D cma_init_reserved_mem(base, size, 0, "fadump_cma", &fadump= _cma, false); > > if (rc) { > > pr_err("Failed to init cma area for firmware-assisted dum= p,%d\n", rc); > > /* > > diff --git a/include/linux/cma.h b/include/linux/cma.h > > index 62d9c1cf6326..3207db979e94 100644 > > --- a/include/linux/cma.h > > +++ b/include/linux/cma.h > > @@ -46,7 +46,7 @@ extern int __init cma_declare_contiguous_multi(phys_a= ddr_t size, > > extern int cma_init_reserved_mem(phys_addr_t base, phys_addr_t size, > > unsigned int order_per_bit, > > const char *name, > > - struct cma **res_cma); > > + struct cma **res_cma, bool gcma); > > extern struct page *cma_alloc(struct cma *cma, unsigned long count, un= signed int align, > > bool no_warn); > > extern bool cma_pages_valid(struct cma *cma, const struct page *pages,= unsigned long count); > > diff --git a/kernel/dma/contiguous.c b/kernel/dma/contiguous.c > > index 055da410ac71..a68b3123438c 100644 > > --- a/kernel/dma/contiguous.c > > +++ b/kernel/dma/contiguous.c > > @@ -459,6 +459,7 @@ static int __init rmem_cma_setup(struct reserved_me= m *rmem) > > unsigned long node =3D rmem->fdt_node; > > bool default_cma =3D of_get_flat_dt_prop(node, "linux,cma-default= ", NULL); > > struct cma *cma; > > + bool gcma; > > int err; > > > > if (size_cmdline !=3D -1 && default_cma) { > > @@ -476,7 +477,15 @@ static int __init rmem_cma_setup(struct reserved_m= em *rmem) > > return -EINVAL; > > } > > > > - err =3D cma_init_reserved_mem(rmem->base, rmem->size, 0, rmem->na= me, &cma); > > + gcma =3D !!of_get_flat_dt_prop(node, "guarantee", NULL); > > When this (or if I guess) this goes !RFC, you will need to document this > new property that you're adding. Definitely. I'll document the cleancache and GCMA as well. Thanks!