From patchwork Sun May 16 20:20:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Uladzislau Rezki X-Patchwork-Id: 12260589 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.5 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 792D1C433ED for ; Sun, 16 May 2021 20:21:11 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 101A261159 for ; Sun, 16 May 2021 20:21:11 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 101A261159 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 096EF6B006E; Sun, 16 May 2021 16:21:10 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 01FB86B0070; Sun, 16 May 2021 16:21:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DDABA6B0071; Sun, 16 May 2021 16:21:09 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0245.hostedemail.com [216.40.44.245]) by kanga.kvack.org (Postfix) with ESMTP id AB89D6B006E for ; Sun, 16 May 2021 16:21:09 -0400 (EDT) Received: from smtpin36.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id 514F36C1D for ; Sun, 16 May 2021 20:21:09 +0000 (UTC) X-FDA: 78148213458.36.CD45B8A Received: from mail-lf1-f49.google.com (mail-lf1-f49.google.com [209.85.167.49]) by imf22.hostedemail.com (Postfix) with ESMTP id 1B669C0001FA for ; Sun, 16 May 2021 20:21:07 +0000 (UTC) Received: by mail-lf1-f49.google.com with SMTP id j10so5700576lfb.12 for ; Sun, 16 May 2021 13:21:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=LTbrZqzeTIdq/svG2NlB3CMiMALncw0fFJVSdnt0oRk=; b=o78MraK05iBBjWGZuYur/m357uPW50CXSMMUNWrLVGMUFk41oVmfQF5n/osjtwvO25 zIXXjySahdIiA/tYHAuRc7f5BLterfBZ7bf6xVBYSgz3RtZlHjnhEpaV1aWUEEX0oTls 3zrSsOpkeefcocOsYsUWOoOKxbOaAVQkqBSgo4pfIDVoaPkBpvOqNNJimGCFQgrisMFS 2G/jPbk74xoWIure0fmhiMnJdmGWO+pVVr1gyDaUyesuucPIHrwZ3yWbhlrizjAhYJjO o6jaL2V2Ai0EGIYZxx04vXqfEjtnu2tgaW0fPH/oE9MXH328htKhxHybvEePYHK0YCVE uzuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=LTbrZqzeTIdq/svG2NlB3CMiMALncw0fFJVSdnt0oRk=; b=R8ZRwBx6Xreb7m06l2uenIZB7pZxsHF3ZZzsiOWOgiFq0nwDMsUVPwlP7DVpNIn1IX Z9GkHT0kKQVqvEjk5iZ7v5GsEy4hKP+9dAcWrWehquQjBFoknIuXqksc58DtXsTUInKF HYnAO2A13y8UH9LNuLSmmNfOKsb3trFoTCBOlRClrYAnVeQhJH8vD0CSi8pqKz/3ZflS ni0/qRdS+Vuz/qc3k/3HfwkvBkN2G4MCJ8dg2TawYqWyI84Bkh0WZ2U/txskSjU49jC/ R1UtuC7SeRjPA3EuXlsbUyhZ0KAoXl7W2er2FeZaiRWoqPd1M43ZKwzw/tz9v0362nWY 8Drg== X-Gm-Message-State: AOAM530yve8M/dUrUGzB8lMi+93Gxl47l3EINdVP46GZLGbpLb/MdjP8 fppIdNxf/8oAQJes3vWsMaA= X-Google-Smtp-Source: ABdhPJyM14gAplAXXpF4AUnSFzgvUSDfbI7eGPa+pyRMtiLmeknUt9gQORE5k1NmjlDrGtmPd4DbrA== X-Received: by 2002:a05:6512:214d:: with SMTP id s13mr39980367lfr.344.1621196467749; Sun, 16 May 2021 13:21:07 -0700 (PDT) Received: from pc638.lan (h5ef52e3d.seluork.dyn.perspektivbredband.net. [94.245.46.61]) by smtp.gmail.com with ESMTPSA id y28sm378195lfg.210.2021.05.16.13.21.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 May 2021 13:21:07 -0700 (PDT) From: "Uladzislau Rezki (Sony)" To: Andrew Morton Cc: linux-mm@kvack.org, LKML , Mel Gorman , Matthew Wilcox , Nicholas Piggin , Uladzislau Rezki , Hillf Danton , Michal Hocko , Oleksiy Avramchenko , Steven Rostedt Subject: [PATCH 1/3] mm/page_alloc: Add an alloc_pages_bulk_array_node() helper Date: Sun, 16 May 2021 22:20:54 +0200 Message-Id: <20210516202056.2120-2-urezki@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210516202056.2120-1-urezki@gmail.com> References: <20210516202056.2120-1-urezki@gmail.com> MIME-Version: 1.0 Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=gmail.com header.s=20161025 header.b=o78MraK0; spf=pass (imf22.hostedemail.com: domain of urezki@gmail.com designates 209.85.167.49 as permitted sender) smtp.mailfrom=urezki@gmail.com; dmarc=pass (policy=none) header.from=gmail.com X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 1B669C0001FA X-Stat-Signature: bpnmjz4xgfhkykm4a1o4116r8dosweja X-HE-Tag: 1621196467-864220 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: Add a "node" variant of the alloc_pages_bulk_array() function. The helper guarantees that a __alloc_pages_bulk() is invoked with a valid NUMA node ID. Signed-off-by: Uladzislau Rezki (Sony) Acked-by: Mel Gorman --- include/linux/gfp.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/include/linux/gfp.h b/include/linux/gfp.h index 11da8af06704..94f0b8b1cb55 100644 --- a/include/linux/gfp.h +++ b/include/linux/gfp.h @@ -536,6 +536,15 @@ alloc_pages_bulk_array(gfp_t gfp, unsigned long nr_pages, struct page **page_arr return __alloc_pages_bulk(gfp, numa_mem_id(), NULL, nr_pages, NULL, page_array); } +static inline unsigned long +alloc_pages_bulk_array_node(gfp_t gfp, int nid, unsigned long nr_pages, struct page **page_array) +{ + if (nid == NUMA_NO_NODE) + nid = numa_mem_id(); + + return __alloc_pages_bulk(gfp, nid, NULL, nr_pages, NULL, page_array); +} + /* * Allocate pages, preferring the node given as nid. The node must be valid and * online. For more general interface, see alloc_pages_node().