From patchwork Tue Feb 18 18:16:50 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank van der Linden X-Patchwork-Id: 13980421 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 9144FC021AD for ; Tue, 18 Feb 2025 18:18:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A6E2928018A; Tue, 18 Feb 2025 13:17:44 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A263D280181; Tue, 18 Feb 2025 13:17:44 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 847AA28018A; Tue, 18 Feb 2025 13:17:44 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 5E87B280181 for ; Tue, 18 Feb 2025 13:17:44 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 203271C5538 for ; Tue, 18 Feb 2025 18:17:44 +0000 (UTC) X-FDA: 83133873648.19.C96D8EC Received: from mail-pl1-f202.google.com (mail-pl1-f202.google.com [209.85.214.202]) by imf06.hostedemail.com (Postfix) with ESMTP id 41C9A180017 for ; Tue, 18 Feb 2025 18:17:42 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=tREwi+TO; spf=pass (imf06.hostedemail.com: domain of 3xc60ZwQKCHodtbjemmejc.amkjglsv-kkitYai.mpe@flex--fvdl.bounces.google.com designates 209.85.214.202 as permitted sender) smtp.mailfrom=3xc60ZwQKCHodtbjemmejc.amkjglsv-kkitYai.mpe@flex--fvdl.bounces.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=1739902662; 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=kGTbfuDhtOfrmTloe9TGps+4hlek0DMBo1K39iEQF0Q=; b=eVRcTwAhNmrodAQ1pdAIX2koL6PvD7nJV10CBixlHYjvMFwvgP/kUZktGh4lnZQWNVYpQX yq6G4+5V4uZygyV+P2CxZ33bgEafB5an/nppvFlT8YSNinpl0Au+QYy+AZMJ8PI6NZe7FS Ch9/CXpURaLZNFXCMjoHo1WnXigZYtI= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=tREwi+TO; spf=pass (imf06.hostedemail.com: domain of 3xc60ZwQKCHodtbjemmejc.amkjglsv-kkitYai.mpe@flex--fvdl.bounces.google.com designates 209.85.214.202 as permitted sender) smtp.mailfrom=3xc60ZwQKCHodtbjemmejc.amkjglsv-kkitYai.mpe@flex--fvdl.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739902662; a=rsa-sha256; cv=none; b=BmBfgKUHJnPryvYKc1ywqDRYBYSAjr7Vpk8nw3r94N6hy3GQ19+MJmWzfu6mE9xrV8kJtq 8vyIrT00momVpqb+bhk0BRHpcrSG7Chd0pyoyPH6+zcX+vNy+D+nilNmzpD/14mPaFgKMj M4BMhgLvPKp6DJlD56prCJWhawCRtI0= Received: by mail-pl1-f202.google.com with SMTP id d9443c01a7336-220c1f88eb4so92003225ad.2 for ; Tue, 18 Feb 2025 10:17:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1739902661; x=1740507461; darn=kvack.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=kGTbfuDhtOfrmTloe9TGps+4hlek0DMBo1K39iEQF0Q=; b=tREwi+TONNSjOeSXJOp8vE2xFH2gBoCzd+MQGzPQQKaraR4fuWUcJhk1ucgZFvLu+9 wGy3t+Im/vUe8jPmhEN+gqa9j0RDn43PSCFfcXbYuW4yG7BbHWTVRWq190gpThjsmtA7 9cXHstZmbu0MibcLIDSLSKl0ENJWgJ8xt1fPOYaLdQVdIzbmktZm10z0QReYGsrSFsZ2 046Arwbfpnw3P9z6Wyaph0IZlZeF8rvbBplPoweLLDhEKo7DPDqf23CNta/ixCOd88R8 ydwXmCNKU7iIl6bzEMF4I59JXar9P2hfJKlmPACFCGMPsUBugKDxDlKblNVHP1JJjKvt 4ToQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739902661; x=1740507461; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=kGTbfuDhtOfrmTloe9TGps+4hlek0DMBo1K39iEQF0Q=; b=RG0BGeWwqUG6OfGL2RxQA4EAYP3/hTLIShdgRVoXH0CyUw1oj0xhM9q+n65QinCMTw boIpr2pyPlQdFDasnxNexNCbpcNjPhzewkKH9Nma9IdSfzQl7DxGqASS+Obdk9Lhbc/I jrY4Hrj15FLz3SrETMa+ToHB55gebyxoKmrKD8tGd/MaHX8OWOqiGy41S33drJxCz3Nb 3haEARKVQ+bVR2dWKwLoPQQ4k/ONtRBZp3K1Z1QoL6gH7X87xVryf7FoDnnfO7p6Hejn 558dfSQ/Lx7jL0QkwqZdfpxn2SEhyDM486fUlcFof0pROfUuGa+K4EMrzzlyQskWQ2iW LcJQ== X-Forwarded-Encrypted: i=1; AJvYcCVtvWexAUWaZM+GSFoeWk4XnxgVVyPwKcKPuWCNj/8qQdWsYiAdTLeA2bRQzHoQu6KKlVbSbeLViA==@kvack.org X-Gm-Message-State: AOJu0YwU4Jsgl2To0jtIgEphq+jnqrfqGAiGYJQo4uVSisDVYRLsoMUk QrWxDTCQ5alvqj5dMYSd4skNmJtlwenbM2pgeBMblFaFURES8zBTk3aRe4IDbutfyQRu+g== X-Google-Smtp-Source: AGHT+IGC76au004/aFeR5ds1UoSeoi/FYjc7RFTvfNZAi/zas3b2Y6TZXHmBA5s4wW0uV/fN5KqM21qn X-Received: from pfbf7.prod.google.com ([2002:a05:6a00:ad87:b0:730:7500:ab0c]) (user=fvdl job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:2443:b0:732:2923:b70f with SMTP id d2e1a72fcca58-7329de80bbemr370375b3a.11.1739902661113; Tue, 18 Feb 2025 10:17:41 -0800 (PST) Date: Tue, 18 Feb 2025 18:16:50 +0000 In-Reply-To: <20250218181656.207178-1-fvdl@google.com> Mime-Version: 1.0 References: <20250218181656.207178-1-fvdl@google.com> X-Mailer: git-send-email 2.48.1.601.g30ceb7b040-goog Message-ID: <20250218181656.207178-23-fvdl@google.com> Subject: [PATCH v4 22/27] mm/cma: simplify zone intersection check From: Frank van der Linden To: akpm@linux-foundation.org, muchun.song@linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: yuzhao@google.com, usamaarif642@gmail.com, joao.m.martins@oracle.com, roman.gushchin@linux.dev, Frank van der Linden X-Rspamd-Queue-Id: 41C9A180017 X-Stat-Signature: ow33nhmpanorht31rigo7n1e6z3xozqb X-Rspam-User: X-Rspamd-Server: rspam01 X-HE-Tag: 1739902662-476481 X-HE-Meta: U2FsdGVkX1+fWe5J8hgFhKduhs2WYw/N+kcNuua5kxu2tcoWAKt/bQ3TjuAT1Lw1rkRZhToFXe9+ub9hS7/cSX/PxE4ELjsEDiqx6Iv74wPP8YztLXig7D/2WyBogoxwxnlX3Jzw8a/tYdSWyvAd7nMRCVMq16PIlKlPp8rASAAqzGLUYG5Ceb7VAdRAb408MH8N4xOvIbZrwqlRBQjz/gWp9vy/YB4Yab8LKMgALQtzrdegt+SugjsJmiIGMlEU2c88IEGnxGzLgFH9agmI0UcnlwxhXoKiwCKnJcWA6pZAKJ9AwHhncym4K/SL7pNb01luU7iLN4xbxkAbq5rUoDzNCAEnC5iTGf6SMG02IHla2i4C3ua+ern4zDYtsUOjhw0GUdrniIqKtgjl3PW6vLQSrx+MxevBMFmPyXkTSZPtJ3CgJuxbPKdTwQScDpuvpU66xSxxj3QtUgpojYa3PZDPDV/KXjl6zRO8HVoP5zx7it9wkXHTbNsKkJzGDbKN8pkP2p+ElBBf+/daivIAz58vfVBMQMuDpzWEmdqXxmzOVI9DYaccYOVEtXjWhbH1ILM43pzIxyL9Nq8cWNkWQjvz5qoxmGPlTtKmdGAL05X3G/D1uMpc/QTSvkoc0mCXmTsfXrc/Lx0Hp9tMrE6KOFQGx885Hva6i4t8jDri4dE2hrY5rhfGT9xcj32EO2CSvWiTUsS6mMTNGy0RrnWWKiEdFoGDiDJIa3E+q3mnEmrKY5+ewein1UXcVBmmFLvm5qzhAiby08klxkm5Y/NG8MdhmxE65P8o/sqgqDM9JaTtm5sJZTk6awG/5gCplqz/VArtgSYA1CEgK4VRrUF/UYxVMO/5sHAmLDQoq7ostyj/1DQsNorkaHIxi0MdDCiYxKOONpbWcw95GwT51jBbGN2UX6toFo+GZwFtM5fLqM2Na2k5ygqEfLkm8sVyZvm8904ymjjSxBVst6qyRJ0 PFHC18tP OYGxfBAxQcJSHKRfZiQm6v4GMWGnu06B6+jEY58Es5V7AreiTmKtx0rTTrJcqQ6gXQbXO0zax1Q5s7nEQ9mwYl0CQM+tZZ3bY/8hjzJ4f+4TPWCuq1EfHu5ZJlX8OZZ3D8KHTkE0oA+WJHDEOHYlXifKhYuryIH1GEmpIsnfZI++6SdrFi2DUmnuoh/sTEe8wOhPQhpVwJUnkEG/UseH0rjUnzbqI9NxSf+IhWYc8RN9AwmDQbMv/O0cZfUl1247Z6lcAUlCrTmdf9eKkP177uFSkDYAMWvC6/MKE476C7Saj/JbiNKFz0CYKEZ6NpGj15pOSm4SGEM68a7VE+zW4XqSdD/VCz4SwGQwz96IVB10weeo4rkNnyi7ddEfwHhASYzd1+Fwpwf5SfRIspMmkqV93eyHRA8QqmHDJTIbH8jHlgoyALKE972FlJHH+lzGAiC8xL5GbsoYBf+FE1KofpGh+5kJnnDSe2+Z2Dfc+7TEbdoYPF2wpLGv6om4jwJeO/g6KoIrndGvh2ee5WYJcsi4xew== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000047, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: cma_activate_area walks all pages in the area, checking their zone individually to see if the area resides in more than one zone. Make this a little more efficient by using the recently introduced pfn_range_intersects_zones() function. Store the NUMA node id (if any) in the cma structure to facilitate this. Signed-off-by: Frank van der Linden --- mm/cma.c | 13 ++++++------- mm/cma.h | 2 ++ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/mm/cma.c b/mm/cma.c index c7116a5819c5..d0227af4bb71 100644 --- a/mm/cma.c +++ b/mm/cma.c @@ -103,7 +103,6 @@ static void __init cma_activate_area(struct cma *cma) { unsigned long pfn, base_pfn; int allocrange, r; - struct zone *zone; struct cma_memrange *cmr; for (allocrange = 0; allocrange < cma->nranges; allocrange++) { @@ -124,12 +123,8 @@ static void __init cma_activate_area(struct cma *cma) * CMA resv range to be in the same zone. */ WARN_ON_ONCE(!pfn_valid(base_pfn)); - zone = page_zone(pfn_to_page(base_pfn)); - for (pfn = base_pfn + 1; pfn < base_pfn + cmr->count; pfn++) { - WARN_ON_ONCE(!pfn_valid(pfn)); - if (page_zone(pfn_to_page(pfn)) != zone) - goto cleanup; - } + if (pfn_range_intersects_zones(cma->nid, base_pfn, cmr->count)) + goto cleanup; for (pfn = base_pfn; pfn < base_pfn + cmr->count; pfn += pageblock_nr_pages) @@ -261,6 +256,7 @@ int __init cma_init_reserved_mem(phys_addr_t base, phys_addr_t size, cma->ranges[0].base_pfn = PFN_DOWN(base); cma->ranges[0].count = cma->count; cma->nranges = 1; + cma->nid = NUMA_NO_NODE; *res_cma = cma; @@ -497,6 +493,7 @@ int __init cma_declare_contiguous_multi(phys_addr_t total_size, } cma->nranges = nr; + cma->nid = nid; *res_cma = cma; out: @@ -684,6 +681,8 @@ static int __init __cma_declare_contiguous_nid(phys_addr_t base, if (ret) memblock_phys_free(base, size); + (*res_cma)->nid = nid; + return ret; } diff --git a/mm/cma.h b/mm/cma.h index 5f39dd1aac91..ff79dba5508c 100644 --- a/mm/cma.h +++ b/mm/cma.h @@ -50,6 +50,8 @@ struct cma { struct cma_kobject *cma_kobj; #endif bool reserve_pages_on_error; + /* NUMA node (NUMA_NO_NODE if unspecified) */ + int nid; }; extern struct cma cma_areas[MAX_CMA_AREAS];