From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 05E503A961A for ; Thu, 6 Aug 2026 01:12:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.69 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785978742; cv=none; b=at1A/BvauHHKMSsIuV3/U5skJwIuKWrQG/DKOejV57e8DoD6dSpKL8/xAxpUnqMIa4V0QH0sTn3Pad8E+UuWH/02Hzj1ihb/rF986yoaa63eci56CPO69z/vybinXHk6V8t3uriHEx4pYzrOr1vt/Zet72XmUIcZjIiRUUZrOXU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785978742; c=relaxed/simple; bh=1bdOVMQbrpvD1mRBZ4IzznCqPSJiHqhdCBELaFvos60=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=tXi6ZrWEmxsN4tuMI3ucOy7LMeAB7GNnqRG0IGq9JRBO2oMMwZsriD0Kmmx6HlcwvK8GpVA0OMzlyfub5rd5oqqP3ai9i6GfWvCm3d/Wc56Sl7L0ymUDW10fvw5Z0Ya8p5In+imHKIKk90Myckps/dMLHQfkROz4H8aYyLv7U6k= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--jyescas.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=GBNhhknD; arc=none smtp.client-ip=209.85.216.69 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--jyescas.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="GBNhhknD" Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-38fa7b09921so2560092a91.1 for ; Wed, 05 Aug 2026 18:12:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1785978740; x=1786583540; darn=vger.kernel.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=eqEP+amGkpnagux7ncXk0arDHCDCPoq+yfQcXf7Ol/Y=; b=GBNhhknDpmeDl3h+9Jj8IAIwKJxn1iwKAcYieEoTPh1Dkix0vi3uagQUzz29VXPVD5 Am7caNrfTpDe94kSiCl2GX4ekA28nvEm3JCrsD+F+Zg1vj7FvOg2K79dzVc7likt8EU4 7OT1uYRQpke2UGPmFT7T+H/j4OXgc0Wy9lOLn1ka/enVCkhyEYwrsmwz8tg/u7ua6/DK AF51Q46trqyGsLiWMJMc9yTm94+x1R56qNpDL+bfnGs3cMSNPOhrozK75tF0iD10O/zC 2S0PZIww22iAhz0Cxdqyty1b1RGAjhZ2AzwqDtZxS1OWN+1MxOU7XUTEVt5hkszb+1KP PuOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785978740; x=1786583540; h=content-type: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:content-type; bh=eqEP+amGkpnagux7ncXk0arDHCDCPoq+yfQcXf7Ol/Y=; b=ejmSKY7ssujTIIGsDSIyOWXKGjjiYehqVlMrau+J3RyPgM37OCpf8xEaGhm+xteCsK pDTMk3P52+ODz+yMMBi0PeWSsMiwvvm/5UB7RtXw16hCmrlz6fvBSl4hsLx4xLjR6N9Q z9YtdyA0CeWcEpmbk3PEQuYqU3aytRPjTIFLwWsTxsoVKejWu7GYF/MqDO89yXQYlH5A 9Dtg5kKgX/quF9RyUjPLPU5adICZ/223BjWAC9ZdMEo0iuWwtRMEtseQskWlbWPqsk6U 7NUoGkUohl4AucsCqESuA++zp4svGUy/CbZplQViiortoB0aLSUPJoPqszdmExIJRRZo x/gg== X-Forwarded-Encrypted: i=1; AHgh+Rocl98hxPHSLRF1YW4E0ylsXU+KG7EkDB1Le0l1sXGF/PQ1yzyzPCrAtTAxtItMEqrdjK+VCWtXLjd+/28=@vger.kernel.org X-Gm-Message-State: AOJu0Yx//WVliBlmGwjHth0/7zr+lbs457ri7ebinoPXt8lFymUJLd5y GBENwC3gP5ucVRL4/FUYw6JfPkYXq5/XsmDg0JBC5DbsS1PEngnePpvXgnJr+h5EK2pKAs/t2UX T5DhGb+CiRw== X-Received: from dldoa1.prod.google.com ([2002:a05:701a:ca81:b0:13c:dc9f:51f2]) (user=jyescas job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:5244:b0:38e:9eb2:9d43 with SMTP id 98e67ed59e1d1-3903c5b685bmr10977529a91.16.1785978740061; Wed, 05 Aug 2026 18:12:20 -0700 (PDT) Date: Wed, 5 Aug 2026 18:09:08 -0700 In-Reply-To: <20260806011048.517229-1-jyescas@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260806011048.517229-1-jyescas@google.com> X-Mailer: git-send-email 2.55.0.629.g250fe7f194-goog Message-ID: <20260806011048.517229-8-jyescas@google.com> Subject: [RFC PATCH v2 07/16] mm: Define function to create a dir for each migrate type From: Juan Yescas To: Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , open list , "open list:MEMORY MANAGEMENT - CORE" Cc: jyescas@google.com, android-mm@google.com, ljs@kernel.org, fvdl@google.com, tkjos@google.com, minchan@google.com, dskiba@google.com, open list , "open list:MEMORY MANAGEMENT - CORE" Content-Type: text/plain; charset="UTF-8" This change creates a directory for each migrate type inside the order directory. This function won't create a directory for MIGRATE_ISOLATE due they can't be allocated using the Buddy Allocator. Note: The MIGRATE_CMA directory won't be created yet. It will be supported in the future. Signed-off-by: Juan Yescas --- Changes in v2: - Update comments. - Remove unused parameters. mm/page_alloc_hogger.c | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/mm/page_alloc_hogger.c b/mm/page_alloc_hogger.c index 24856f7ea5d7..ab39ea300704 100644 --- a/mm/page_alloc_hogger.c +++ b/mm/page_alloc_hogger.c @@ -127,20 +127,54 @@ struct page_alloc { static struct kmem_cache *req_alloc_cache; static struct kmem_cache *page_alloc_cache; +/** + * create_migrate_type_subdirs() - Creates a directory for each migrate type + * inside the order directory. + */ +static inline int create_migrate_type_subdirs(struct dentry *orderdir) +{ + struct dentry *migratedir; + char dirname[24]; + + for (int mtype = 0; mtype < MIGRATE_TYPES; mtype++) { +#ifdef CONFIG_CMA + if (mtype == MIGRATE_CMA) /* CMA allocs are not supported yet*/ + continue; +#endif +#ifdef CONFIG_MEMORY_ISOLATION + if (mtype == MIGRATE_ISOLATE) /* can't allocate from here */ + continue; +#endif + snprintf(dirname, sizeof(dirname), "migrate-%s", + migratetype_names[mtype]); + migratedir = debugfs_create_dir(dirname, orderdir); + if (IS_ERR(migratedir)) + return PTR_ERR(migratedir); + } + + return 0; +} + /** * create_page_orders_subdirs() - Creates a directory for each page order inside - * the zone directory. + * the zone directory. Once that the page order directory is created, it creates + * a directory for each migrate type. */ static inline int create_page_orders_subdirs(struct dentry *zonedir) { struct dentry *orderdir; char dirname[12]; + int ret; for (int order = 0; order < NR_PAGE_ORDERS; order++) { snprintf(dirname, sizeof(dirname), "order-%d", order); orderdir = debugfs_create_dir(dirname, zonedir); if (IS_ERR(orderdir)) return PTR_ERR(orderdir); + + ret = create_migrate_type_subdirs(orderdir); + if (ret) + return ret; } return 0; -- 2.55.0.629.g250fe7f194-goog