From patchwork Thu Feb 6 18:51:03 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: 13963570 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 01234C02194 for ; Thu, 6 Feb 2025 18:52:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5E795280016; Thu, 6 Feb 2025 13:51:57 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 4D3CF280002; Thu, 6 Feb 2025 13:51:57 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2D5C4280016; Thu, 6 Feb 2025 13:51:57 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 0ABA8280002 for ; Thu, 6 Feb 2025 13:51:57 -0500 (EST) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id BD62D1A13C5 for ; Thu, 6 Feb 2025 18:51:56 +0000 (UTC) X-FDA: 83090414232.29.EE23A30 Received: from mail-pj1-f73.google.com (mail-pj1-f73.google.com [209.85.216.73]) by imf20.hostedemail.com (Postfix) with ESMTP id EFB991C000B for ; Thu, 6 Feb 2025 18:51:54 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=JNLkVsKl; spf=pass (imf20.hostedemail.com: domain of 3yQSlZwQKCKoPfNVQYYQVO.MYWVSXeh-WWUfKMU.YbQ@flex--fvdl.bounces.google.com designates 209.85.216.73 as permitted sender) smtp.mailfrom=3yQSlZwQKCKoPfNVQYYQVO.MYWVSXeh-WWUfKMU.YbQ@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=1738867915; 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=LNVYMIarRsr0t8rcUQ946hUXqx5cMeLkMOmL07Z29aU=; b=7ri015VG2EQsaWyRkSg0VVyteyo+9vLUva7NeTBS6F2mi9wBu2LTvray6rApDEaNQwkNwL xZ305KBDcR14k3fPND9/25nKVBlKO33bI3E/oV5/efM4TY6+jJ7QiE+1ISqipVMLxyFTcd 4RfOt3f5boXyjuAE2f3wirtUTxpoG8U= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=JNLkVsKl; spf=pass (imf20.hostedemail.com: domain of 3yQSlZwQKCKoPfNVQYYQVO.MYWVSXeh-WWUfKMU.YbQ@flex--fvdl.bounces.google.com designates 209.85.216.73 as permitted sender) smtp.mailfrom=3yQSlZwQKCKoPfNVQYYQVO.MYWVSXeh-WWUfKMU.YbQ@flex--fvdl.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738867915; a=rsa-sha256; cv=none; b=pP81kU4Iuj1q8OPCG6pxtEvlcih271iRi7SyQmAcVoHILOnXkXMpg8oslC27DKsMA/dDIr MZVMCEyDtrW4X3CLPNBK6l359BDgZ1SZLAZIFJuSwQ2TgshZj+FfSmCRZGoNSZbZH4UBjd tpJJDsFmiOaQTILPJcW0MZvDeqetcNE= Received: by mail-pj1-f73.google.com with SMTP id 98e67ed59e1d1-2f9da17946fso3843539a91.3 for ; Thu, 06 Feb 2025 10:51:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1738867914; x=1739472714; 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=LNVYMIarRsr0t8rcUQ946hUXqx5cMeLkMOmL07Z29aU=; b=JNLkVsKlk4Txp9swjm0PoTYC2Gro5OaQWDdTlebEn97SA03fvtIcPH4GWX3StLlJOk lmhgW0G9WS3bhJIYjO14xdvDWrynJprSYoBWEywcupNrq4DZpic+omh6HdZhiKoVXzrL w+GkJX3OsKFuHTU+QE6UhycXUDHNFD60+oy+JT4gQnVOom6W2sdpRBONg34o1pKVVJSL RJEHL6OYv0Wo8WVXWuYOUc/DfU6YFj0N788S/XIZIfOL6Ee/lVKRxyq0hmiJq0SEk4z2 4EjrpJlRKaSwozJDz5V17AaXDKlXKcPgTysCZdXIlrrdg7xRDttkJ1UQgZJiTvFjVh6K F+Bw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738867914; x=1739472714; 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=LNVYMIarRsr0t8rcUQ946hUXqx5cMeLkMOmL07Z29aU=; b=DIv2EzvZpystBxEkb1+HViO9z42Oy3FgjP1QMzjP6YgauqFWvrNX7zjeZJ6CL2YtNn pEJmkwe89hhvHY0RWDwMg6pwhvHJL+zkcoa4Hbdau8RkLoAguXf1+H9WwbocXsQmBFX8 imnvIT3vLJUd/BldvkQmQvAs3Jth812Qt4ZAXUMKNG4irAZjkejWdZljxHCrP2NEji6B RP7/Dc95jzEPK0PqE+LGlC8zyBGndAAbUzp/2sY6AH/LqFklgqTcKtGmPOyPaz+HQ69E LztBeMvN7CQJLKj60EfTy1CX1Qwj9VThxOHnBJ99CpMy/wjqEkTtDUIzN8d0OybUL92e XxIA== X-Forwarded-Encrypted: i=1; AJvYcCVtYQcyTxHJ47+5AoaZVxSgGjvdheHSsbIj+DEJLOLQ87pcaYlAMN1O0r0ir+OC2Zac1M7skp5fWg==@kvack.org X-Gm-Message-State: AOJu0YxYs89h/mFQ+/8xMqk8MgiaZQCYHwUnONKVBK7uEYbS+Vr6dfq2 ND2eFTnHFXbrYKpy5b9mxwghXkxXltmtVI7mp10reyGxIYsqrJeq5zvUvdje28CmFy0OVA== X-Google-Smtp-Source: AGHT+IFAHneXOb/4XfmdG9sW63Is4KRKWVRpRsXVSKXLK7gMZJrhr70i+wLMYHxanmPA9luzKj98Soc+ X-Received: from pfbko5.prod.google.com ([2002:a05:6a00:4605:b0:730:5607:bee4]) (user=fvdl job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:139c:b0:72a:a7a4:b4cd with SMTP id d2e1a72fcca58-7305d54712emr393600b3a.21.1738867913918; Thu, 06 Feb 2025 10:51:53 -0800 (PST) Date: Thu, 6 Feb 2025 18:51:03 +0000 In-Reply-To: <20250206185109.1210657-1-fvdl@google.com> Mime-Version: 1.0 References: <20250206185109.1210657-1-fvdl@google.com> X-Mailer: git-send-email 2.48.1.502.g6dc24dfdaf-goog Message-ID: <20250206185109.1210657-24-fvdl@google.com> Subject: [PATCH v3 23/28] 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-Rspam-User: X-Stat-Signature: 3g399yqqqgbhsnu7twqoiu8iiuw5wpq6 X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: EFB991C000B X-HE-Tag: 1738867914-238220 X-HE-Meta: U2FsdGVkX1/7CFRcIUUXto40xglc8HkPEUXN/J9/nOrtsTEqwMfzVOvS/u+yUwlqTM7ZmsrlYs33grWve1e53tA3r3717WMuYxAA1BUH/NeqcV7T49tCKj7httNxZvbtqqMKWLbLpb8phtNr/9mA5SscH57lBhRcfsW/XOkF5gWVg/CSSLGHZ/3XIUUjGKbbMQaL48PHsn/sRzuVZqP/m1+rR7Vc5dJt65ZTnDH2GjiB4McvXbTGynB57Mv/xeQr8yD/T3YOShrb6/GV4ZXuoQZmP94n1qIgSDNncvD9unoATo490F0IqlNERUYPiDoCC/dbjTMF5tcIWw39l5a9U5iDaP/3hwYm1IiXciLzP8tjScJkEWLhDeSc/RwrZc2ki8E0p1rO96h3I0MUFgwPMmlWm/ndf2EKRH0h8s864Z+qGFOmIpBsu7hjMJaBT1Mwt8UIiBwiYil5EDoGskUCKmoTu76V+DD6KBbDiTu8HJE2cnRqYJyasKaLU3t+/2w+iqLAR9zSxq7eIY8YnEJbODzUdVnBYHlQ5sAmCu/6qbXwH9RYLJmFPmb2t+sJSLEaEcEBv+Wqxw1zg0g7BZzzk5d0sJbTBATQu/7hKzk/FfsLz0pXQkXtzfhFbKc53i8ShNcDlJWXU3/ed1Ja8Ny9a+a0LbgO7aRoR3Vz5QeNeTrFTvynvX4eNOQg/G11w/zXFvhhtEbz1gwp/QSSgJoV0Z4b/wupnD8tdeztag4JyOtuo49IMGz6B3RTdcxpCbogWV6KEs7hWrt7oRT634X/feKhhdAmsXV9dEeECLGy9oZynLCL6Szr8YNF0et1eLpQFF64lcFkCzj2qtNEOM70EPNeS6BhcpL5tZVVApFZtGsbCwqGfVZTPnduQxAdTaSOiz2edjZ4tQLAmW/n06dsB2IEC+bWevB0wxnN17Jf1km93UgudspwhakooFBsJZt6kr2zE0YuVTt+cendcay OhWhODKw pzDGV+JH5xJ8d7bC5A3pkyoQekAKjgngedY2nISP1AyZTPi3NKgGbzogIDTSXeyr26IX9UKi74z+JIcItx8pXWFWyj8yjebelH8nlsXQ1C6TFp6h/zp3WkkdwEIFJ5MLeRnoKyMiJYfYEZB9aqkyJhuF8t4ZwuMcFu/Iz1Uub+rq4A2zM48I15azAXCDIWFfr+E/tB6FF9H7O0bBrx2+Cmnt1idEbLhnsKHzMLxtWCK7PoFbv+S2yUsZ8z4AViTeQLPiOALzTQPDM5R8p6Ds4zuEcimeXtm5iaP86b4xkEAvG8m7J7/ZMELk8Hrls4TftzMiutlkU/S7MW1Mu4PKsp44S/dIfEiGuljtkx4wzYdN40tppf+pf3aAfN0idwY2IgQfw/uHjpmEZDz1Mi7t5ex2pDDp1ObsHgJg1do9RLxcvD/R6q3PRgEaKIPlInOZ1rCsu9IcL01M/ExcO9sbyPJgh6M3elW5n7gUHs2Vpdi0T5uRdnwfpbRzEmCjuJ4I2+0uRuD8biIPQLtyxqR85qTtQTg== 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: 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];