From patchwork Fri Feb 28 18:29:23 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: 13996921 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 33E19C282D0 for ; Fri, 28 Feb 2025 18:30:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5C384280018; Fri, 28 Feb 2025 13:30:28 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5722F280001; Fri, 28 Feb 2025 13:30:28 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3EE1B280018; Fri, 28 Feb 2025 13:30:28 -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 1040A280001 for ; Fri, 28 Feb 2025 13:30:28 -0500 (EST) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id A922D81102 for ; Fri, 28 Feb 2025 18:30:27 +0000 (UTC) X-FDA: 83170193694.25.FB68242 Received: from mail-pj1-f74.google.com (mail-pj1-f74.google.com [209.85.216.74]) by imf20.hostedemail.com (Postfix) with ESMTP id BB7241C002A for ; Fri, 28 Feb 2025 18:30:25 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=zXKTCzZ+; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf20.hostedemail.com: domain of 3wADCZwQKCA8uAs0v33v0t.r310x29C-11zAprz.36v@flex--fvdl.bounces.google.com designates 209.85.216.74 as permitted sender) smtp.mailfrom=3wADCZwQKCA8uAs0v33v0t.r310x29C-11zAprz.36v@flex--fvdl.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740767425; 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=4Pj/N1+GF3Q+15wlANDSI128u4evupABN+ixVt0HlBM=; b=YgkuKpvTKuIF4dSb/tD5bq9q0crgOZvO2deIouqDZekvdfHhsFPvk/OAisUReUmyyCyzt/ novtXGC8VBIz2q9ptWrw7eUhndSmMEQSdPQoLF4rNyXdisEMhnQa4gZQ9fKOtJP6EyYZcw 3AqOnLoxCpgCc/XeURuBgdk+Rvk5qP0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740767425; a=rsa-sha256; cv=none; b=ENJtA1xN9jBETaQ7FvDr25pnJSuSGA9EJwRZFAtTPiVhTOXB6+T8UmHH9sVVTs4TdKRxJG O/QBQ+gr09RGcaj1QDEbYMYKj4JAVNUcn0uAm6z7XsgjSxf3bdgLgkD6qrXDpHF5VuQtUc 9I5oi3eg8W3at7A/TJiWtRuW9PG/Wlc= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=zXKTCzZ+; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf20.hostedemail.com: domain of 3wADCZwQKCA8uAs0v33v0t.r310x29C-11zAprz.36v@flex--fvdl.bounces.google.com designates 209.85.216.74 as permitted sender) smtp.mailfrom=3wADCZwQKCA8uAs0v33v0t.r310x29C-11zAprz.36v@flex--fvdl.bounces.google.com Received: by mail-pj1-f74.google.com with SMTP id 98e67ed59e1d1-2f816a85facso5031415a91.3 for ; Fri, 28 Feb 2025 10:30:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1740767424; x=1741372224; 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=4Pj/N1+GF3Q+15wlANDSI128u4evupABN+ixVt0HlBM=; b=zXKTCzZ+6R6Z5aqsSjmiED7UswxTONoOUAa/MLHztZYIxaBRBorcBv1WAz07UuFtL9 01dxu4/Hvkl5qAwu2FP8qrYUISkT4kx/QLsbAmGEXh0HuvSTg1ZOZuzQsJMyew601XRo 8EUrOKCMuGccXW1QcSL4GBJtgcAVgcP8eWtC6lU4cZVkCkzTpDpZvXWpvLBBGbdxq5g2 ztKeVxU/+0lOzjZOsk7b8+2dah8YtSMoCTJNoIjwc+bOtIFs8i30fYv0OrrAS4MAKrYq zGq6YXVOJHbet3+x3t5Xpj1qGvqKjG3OV9jlY0KDihyivJVCshSyPd9ZHIUb13IDTK+k QC+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740767424; x=1741372224; 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=4Pj/N1+GF3Q+15wlANDSI128u4evupABN+ixVt0HlBM=; b=BY4hmdZ3aYunhne+w3eapBadNSiODkZS328yR4NduA37HfN5xllPgbTDsTUod9wf7p FXgID2AuWuAv2mURn4dLC9cryZxm163a0P+cczP03InoB31aMiuYji+8WbYGujUyuLN0 lzJ3KGyiKq586tIJqzmTcj7j3RY/BFva6fmGz/EgTxijpJKP4wiFSB+x6ou2J4TthXOb 6F8dBC8hjO5oovhjn+ckkBiA3oT5DPuy5XSCpxxki5MLO/rn6Hrpl/FgFlP1PF4krHiL FjMLZhYDcnV2Gpa5rVLktYJ1gefe80nO/6YBi7YcWyG3hqI39LCLw2FDx45wRPEr9nup t7ow== X-Forwarded-Encrypted: i=1; AJvYcCVr+Wjgu+7rooJAEoAHpla/WlmVQHSrwYCCipgNHs4Xn5R+fs2DTm80noFTI2RUwk6XZIEmeua7RA==@kvack.org X-Gm-Message-State: AOJu0YyFpf1Plluo1GLykEwnf9Awy+vElDwc9BZKahOvMPybhAQDDPwQ QZjqQAOkXbvjxOvXMXusTlTNWsUhSgiZ+lIHY3ykWDlyk3siUKNeL+MoK5EFF+LWidConw== X-Google-Smtp-Source: AGHT+IF24dXL3LJ+F8+s7hLTj4qoGxn/r2uY+HJ8KpKKTOzotTZzgKMLzWfSEpexnlD+Bvn5pLcYDA3/ X-Received: from pgwb25.prod.google.com ([2002:a65:6699:0:b0:af1:44fa:2fc3]) (user=fvdl job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a21:600e:b0:1f1:1cd1:e3fa with SMTP id adf61e73a8af0-1f2f4c9c728mr8137086637.6.1740767424601; Fri, 28 Feb 2025 10:30:24 -0800 (PST) Date: Fri, 28 Feb 2025 18:29:23 +0000 In-Reply-To: <20250228182928.2645936-1-fvdl@google.com> Mime-Version: 1.0 References: <20250228182928.2645936-1-fvdl@google.com> X-Mailer: git-send-email 2.48.1.711.g2feabab25a-goog Message-ID: <20250228182928.2645936-23-fvdl@google.com> Subject: [PATCH v5 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, ziy@nvidia.com, david@redhat.com, Frank van der Linden X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: BB7241C002A X-Stat-Signature: 5c6hefea1fdox7huf36m3d5uf9uzi684 X-HE-Tag: 1740767425-326017 X-HE-Meta: U2FsdGVkX1/HmS9IvgLbM8G1ZGjSpfmE/PY6nQAjE2RYr+Q46tYUwZp0ek8WZdLLHelzQGy1i8KHZSerWPAxqiGvphZk14V4PIxPbR85FmgLYT5VgUOu3fJgx1tDVNQL1KpHzAB7xAH9N3T1TeW6Z4aYgAPqZT57yZRxk8I67q1ndKddoGrGg1vPP+VOIb31Frkwm7NfaSlYYJKxDNLeF5ZCxtaniV2AhB4HRUvi4khZO6Ffwl6uH+SN0Nxn5x4tyP9+vdSO5XPu0DOJS+BienCwEJivQm0finheRrPLR23eaRjmcQXEyHJUKNA+nS5VNMAYN1X7Y+UHxIhpfGljPAVg9pyMpUvicsS268Q9sBl6ajqEyEQf/Z8ssrz+/4JNoDNcTyl8wlS2j7A0CcYMi3rMq12QNc/2aFB1Jzr/cLgliYkDU0sAyxNCEIz5wPLiTj/ZFalcLaW3TgZY0wlNDeSJNtcgLY0pin9FiLmjCKNka69FHZ7Z5vnwcFhfwGTbHNYz5TQR06m/iZdADDKCHZDLDDAszwP012+9gNt+GmQtk29chK1e7R90+yCIC+fVeSFlYcrhAg6vXjyESAKP+Q70Ld309IVQM6J3m1sZFhiaOkIJlI4Pt1i7JoKUGbYc6F6j0h87qSoEWFqA6OFU3LK1kQTx1cF+eqdkZX68EdIVtaIJoyWXrVjYkSmqNOc+aP4xMUAKlVMKci/eanIVGXLeAYU+XWAq1yMofIdnIJURM5Hh3VmPs3uGAaJwA7pIYYEG+9rPOh3UTlrboORhaV9lSaacZf+xZERh9HkW41/KWayzptYPRYuZYmdU0lnwN43IRlLhVRVPrh4EXeWWQy22K2mfGYOnHkYupxmSLxyGKyDZi6htrlNP64fZPdKa9qmBqrfsPXKBMsOhslycHxd1ZjwVBgrDjBAqvY2uludiXiXJVrwrIpMyRE3RcqlLxTYXRjrJMSVk4vYiQXU P+e8/oSy tQMzZmIzfDUZjgFqs4PGs33FuZWx8P4EMih0TDOlbjEkNC4P5v4O8taSdkl4+ScaRqkENFATymV9GVHzKC28w7izETXQmWSkQAwnbfhksJEhL3SDc3nqgbYYJsNESHYJe9Li/K280tVXwgCSbIZIH+d43I2YXZ8vwPLMAq1P1jTG1ih3c8cYtfxQQktwih3ipgKj6ty8L26Wx5Nw/MqEeuASMUhIWjJHR0ElUeY1EV9TjVxN+AHJkOXjM3bBls+OItjgfCXdKS98Owts+qtZegphozSzHtWo2TbHb5GVMe/iHDwqAj3pWrHkpGPs6E1TWtNCT0kBcEEoWvSifYjAS5DM7ofr2buSbaYTTDTai/P6/oL60ptPv75ebWdiUt1paTRxq8SCqFnv5J4rfbaDeX3y/GpE5lPDJThGMMmHQyN3un/r6oer13dj76iaM7pWWTVoL+DO1GCqQwoc9cmF9E6SCyXlUB3hWHTuurJYEik44tFAVAI04Pgx3NL4hcqb4Q/hEHpAlEdyU/zOWrqWrmwM7qw== 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 8dc46bfa3819..61ad4fd2f62d 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];