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 CE396C27C53 for ; Wed, 12 Jun 2024 07:20:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 414D88D0007; Wed, 12 Jun 2024 03:20:15 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3C5248D0001; Wed, 12 Jun 2024 03:20:15 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2B32B8D0007; Wed, 12 Jun 2024 03:20:15 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 0F3C38D0001 for ; Wed, 12 Jun 2024 03:20:15 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 59516A0305 for ; Wed, 12 Jun 2024 07:20:14 +0000 (UTC) X-FDA: 82221387948.16.5311DD7 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf27.hostedemail.com (Postfix) with ESMTP id 4541840017 for ; Wed, 12 Jun 2024 07:20:10 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=linuxfoundation.org header.s=korg header.b=u1Re4Ijl; spf=pass (imf27.hostedemail.com: domain of gregkh@linuxfoundation.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=gregkh@linuxfoundation.org; dmarc=pass (policy=none) header.from=linuxfoundation.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1718176811; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=wWyuNGrSO7Qu8B8o5K6zQkXrHmUeomhmgo3qRigbDhI=; b=3k/PXsF1i1RmWJyWYzBguKtI0XaOFXFUdRNmPo417D/VF3N3VNJRO0mX2/DNLeBc1O7Hxg uXTWmupIHrROpLer8SZz2oC/qhYmODpG8JvxdC5EdUuIORX078sbTkuurgt8iphgk/YXf7 lohyPjNqtzAQInR7Y8QAM4OCNQRMMXg= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=linuxfoundation.org header.s=korg header.b=u1Re4Ijl; spf=pass (imf27.hostedemail.com: domain of gregkh@linuxfoundation.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=gregkh@linuxfoundation.org; dmarc=pass (policy=none) header.from=linuxfoundation.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1718176811; a=rsa-sha256; cv=none; b=XqpFPVQn+Ln8Dwi1AYrQgggoXmEbmzrH8ypmGpsJXOGw2+C8s+amPyFQBrfm+KAoR60kZj 1aSJV/hb/cBMKR6Ml08IuHM2fn0NyiHeR9pWAV6dR5GwXRREK6gB6rqj4H+z2gaKNQ89tf XvLv/2qGdkP8hJlVrTUB21f70UtdypM= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 74F9DCE1E72; Wed, 12 Jun 2024 07:20:06 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 413E0C3277B; Wed, 12 Jun 2024 07:20:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1718176805; bh=6LKNcDkiR6haqhH0c4d9D/aD3KKjTTuaAQYblOONqB8=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=u1Re4IjlBcM5fzUtCOGLInvUYXE6IPxIpJ2+kVcecipQMs9HVh3kx7J7caR7vLVUn yzOC3UDmjvc/G4G8IpzP2OTa2Kc0/OPeMJtv5MVV7Q41Weu2J3hW+s1qVjOOmr2OTd NLRoFDifDAB32GCuxZP1EYtBN7X3hOM0fRyeZ3HI= Date: Wed, 12 Jun 2024 09:20:02 +0200 From: Greg KH To: "zhai.he" Cc: akpm@linux-foundation.org, sboyd@kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, zhipeng.wang_1@nxp.com, jindong.yue@nxp.com Subject: Re: [PATCH] Supports to use the default CMA when the device-specified CMA memory is not enough. Message-ID: <2024061228-unburned-dander-c9a2@gregkh> References: <20240612023831.810332-1-zhai.he@nxp.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240612023831.810332-1-zhai.he@nxp.com> X-Rspam-User: X-Rspamd-Queue-Id: 4541840017 X-Rspamd-Server: rspam01 X-Stat-Signature: s3uohwjmx3911imbpoyg3z3ct3zarnd8 X-HE-Tag: 1718176810-25150 X-HE-Meta: U2FsdGVkX1/xqpvbvm3lAuWiUCAx4FjaRERw21pNpwy6ekzh4ubKM5lhGtFHkS6aUu/g/ut4z93RVRgH7TJXiOhsLygNkn3iaQYdA6YEat6dOToMvLrPYjvhXtoGNEthdTIe/M7EzTGH6u1H9fEPOYBR4M8SRaXed7oG/RBaYv9LK+GuW+ehWBEZYe/tQiScZsvL69l6HFxoPO44ceTKZFimmrbxvEajIcy4ykIRIJJ6zgaOLPsRz++JzSObjz/Lk9QgcX8CQ//kAsaGH1BXrtxzOFneDGaSJ1TPpqG0TdZydhcU2nk8u4oQA9QajcYlmhf+T7EIt1g6+iDm76ZGp/zDr3dmnRLS21A4codaBjO9NQHCIeztL/+0ZXnnjw1FIf++WBok2DECvTnK/LR0dXkxO+XImryg7dnbur0GLcBhRt2o58zZmtYmbXoyQMD58i1pBScbz3s8keBp9ZmzJ3UtaMjyPHnFZirxUMp3w/RnpMTCCDrDEuxIBn2jFWihXpC+z9zVu9SH9cBiEF7WrguvM+bp43+FCvW/2XFofOFZUAsBqzBX2+LfS2pQjAutVsDnWno8T0HcPE8YBdUguR1F/zlipjB+toZb8rD/eMCNN8ELTW97NG4gT7EDxMDAjn4mcmBrZF00D66mIsIKCGzsEk/vNs62V4oRw1OZP6i53LJ31HOTzBQ+B6IszIUpdTkU/o/6tAXbK4t7IZO7u1k34jAtMoepRXtE84SLCwZCaKKmxy5Y6UE7Gf0/hN+hdR9LNcKoN96RI0IFZCU/t1ItGBBS9ZYazqFlGF7Gj7MKOXHXKL2VxRgH5w+iQpcqGyz8PuSjPyrTJDv1LASQZLvd1IOUmwk6U7sI2ZbKiq3HJ4SbIcp8XUfWEiYwQVvHwndzw7AhblBVcQGyhrIjMNqqYmobMMOLsVtRVHjbpGtTDkyXKIyZ4aURjKkWaMQqnsY7dZAkzel55rBUw+J PVwv2K4W bg22vtI1G0iDIEWlDMxv9RVGqK9FoA+LV4rRso9Ej/v5l6H/CXEv297PlHZrIaqCNBo3J2M+YAirSOLdE5YVKLo1oiDotSLpgiGEvbcKclWVHQivKenUadps+BNDI6P5l68ylRlswYzu5ebrA8BiAl+t9WLI8yxIduSuFx1S8loNDJn1ETImsStOCK3yG6WQdg/TiWVnYu8TTRcybOMp1uFXWJWmmBkS3p/Lelc42QOPcyR1EULdxTAg01EZ64dfw/8ts2M2RcWbkn5LWl8VCX8Ph39tF2Hk9+eYnMIJPOKEt0wo= 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 Wed, Jun 12, 2024 at 10:38:31AM +0800, zhai.he wrote: > From: He Zhai > > In the current code logic, if the device-specified CMA memory > allocation fails, memory will not be allocated from the default CMA area. > This patch will use the default cma region when the device's > specified CMA is not enough. > > Signed-off-by: He Zhai > --- > kernel/dma/contiguous.c | 11 +++++++++-- > mm/cma.c | 2 +- > 2 files changed, 10 insertions(+), 3 deletions(-) > > diff --git a/kernel/dma/contiguous.c b/kernel/dma/contiguous.c > index 055da410ac71..e45cfb24500f 100644 > --- a/kernel/dma/contiguous.c > +++ b/kernel/dma/contiguous.c > @@ -357,8 +357,13 @@ struct page *dma_alloc_contiguous(struct device *dev, size_t size, gfp_t gfp) > /* CMA can be used only in the context which permits sleeping */ > if (!gfpflags_allow_blocking(gfp)) > return NULL; > - if (dev->cma_area) > - return cma_alloc_aligned(dev->cma_area, size, gfp); > + if (dev->cma_area) { > + struct page *page = NULL; > + > + page = cma_alloc_aligned(dev->cma_area, size, gfp); > + if (page) > + return page; > + } > if (size <= PAGE_SIZE) > return NULL; > > @@ -406,6 +411,8 @@ void dma_free_contiguous(struct device *dev, struct page *page, size_t size) > if (dev->cma_area) { > if (cma_release(dev->cma_area, page, count)) > return; > + if (cma_release(dma_contiguous_default_area, page, count)) > + return; > } else { > /* > * otherwise, page is from either per-numa cma or default cma > diff --git a/mm/cma.c b/mm/cma.c > index 3e9724716bad..f225b3f65bd2 100644 > --- a/mm/cma.c > +++ b/mm/cma.c > @@ -495,7 +495,7 @@ struct page *cma_alloc(struct cma *cma, unsigned long count, > } > > if (ret && !no_warn) { > - pr_err_ratelimited("%s: %s: alloc failed, req-size: %lu pages, ret: %d\n", > + pr_debug("%s: %s: alloc failed, req-size: %lu pages, ret: %d, try to use default cma\n", > __func__, cma->name, count, ret); Why did you change the error level here? And when you use pr_debug(), you NEVER need to use __func__, as it is already included automatically in the message output. So now you have it twice :) thanks, greg k-h