From mboxrd@z Thu Jan 1 00:00:00 1970 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 0D135C4167B for ; Wed, 8 Nov 2023 16:49:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 710878D00BD; Wed, 8 Nov 2023 11:49:29 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6BFB88D0073; Wed, 8 Nov 2023 11:49:29 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 587A58D00BD; Wed, 8 Nov 2023 11:49:29 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 484308D0073 for ; Wed, 8 Nov 2023 11:49:29 -0500 (EST) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 18E18160C30 for ; Wed, 8 Nov 2023 16:49:29 +0000 (UTC) X-FDA: 81435372858.03.F35917E Received: from mail-ej1-f73.google.com (mail-ej1-f73.google.com [209.85.218.73]) by imf21.hostedemail.com (Postfix) with ESMTP id 4D7AF1C000F for ; Wed, 8 Nov 2023 16:49:27 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=p9gjU40Z; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf21.hostedemail.com: domain of 3FbxLZQgKCOwXOQYaObPUccUZS.QcaZWbil-aaYjOQY.cfU@flex--jackmanb.bounces.google.com designates 209.85.218.73 as permitted sender) smtp.mailfrom=3FbxLZQgKCOwXOQYaObPUccUZS.QcaZWbil-aaYjOQY.cfU@flex--jackmanb.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1699462167; 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: references:dkim-signature; bh=f+htJKZ/Y85O1839RGUSFWieIBLrRpnb2wXiA69z2nI=; b=hsxhS51BpM+38Y/S0ZBD/50kAMtWKQHTZe7iS6pRZ7+Gr4tDDgqI9UqI6Yhvw3Nem3TERB Cj2Jw5q4qrbL23gtgb189IKObA1xuZ4XvSB6eyyfqPUfu3OcIi5pI0xbR2Nfg06JZyFJyV TlJxKxkPAeFS4aOJMX04SfRHmQFBxKg= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=p9gjU40Z; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf21.hostedemail.com: domain of 3FbxLZQgKCOwXOQYaObPUccUZS.QcaZWbil-aaYjOQY.cfU@flex--jackmanb.bounces.google.com designates 209.85.218.73 as permitted sender) smtp.mailfrom=3FbxLZQgKCOwXOQYaObPUccUZS.QcaZWbil-aaYjOQY.cfU@flex--jackmanb.bounces.google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1699462167; a=rsa-sha256; cv=none; b=yq6pZ+Ikiy1QuM9k3/PGkLqOgeH2lZ3rCV4Lj/h3esCdhBSaZ/B7PpyUkxiVHPBFiYUsfm z7g+GhomeoLatWVR7uG2BcPFbsO73voO5CyG6/okKRFR4aVNHRdGh+mz30/ooSj3Ar4B8q K0OCF8KWcz48ecCUgupHh3zqaFHdYj4= Received: by mail-ej1-f73.google.com with SMTP id a640c23a62f3a-9e28d82339aso161295166b.2 for ; Wed, 08 Nov 2023 08:49:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1699462165; x=1700066965; darn=kvack.org; h=cc:to:from:subject:message-id:mime-version:date:from:to:cc:subject :date:message-id:reply-to; bh=f+htJKZ/Y85O1839RGUSFWieIBLrRpnb2wXiA69z2nI=; b=p9gjU40ZaS3QEAg5EmfMciMagoIdb85CDl4TLRd8couH1vh4N+saQBMTXfruntuCgg Ni1XM8uz1kjtVhdcoy7ZplM1WJw7dB94v1APDqbLHn93sNvhqWXRo1/TSje4KdvWL2k+ 2YSb9NgSJYmZWaL11Ezv9gqYizOeN/LnraxMVpgTM6jVkdEk0PBopbtIGm4zoWt1GVPj g4E8viIEV3jKAsCogG4I7IDR0qDVMus6gHj7CnIM4gUjS+OAlr532+zAIHSBgaZ8Z38d G0fHntgepDaawI1PWLmmtVqsqZAgA13/5lBDFbJc2yu+xxUNVCJvask9E1LLmamjX3li UcHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699462165; x=1700066965; h=cc:to:from:subject:message-id:mime-version:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=f+htJKZ/Y85O1839RGUSFWieIBLrRpnb2wXiA69z2nI=; b=Ax18rVTLh1FCF0F7fHY5UvTATo/QF0VkIjGcZ8u43b3G7nuNlde2hLLEqJfWrAR9t5 G9F/H1BiRMPgpMFttDxzkvYhcR28eu9y47KplX8LwXb9fN6KEGVzOd1CQTm75BPBvzl4 XPXUDohoYcsY6kMFB56Bp2Uuc2xO4pPkeuyfJG3jwIsUSxD/egl5xQsaARwgn6B2So/8 zJv0DR7vtelT/840AMpF+cU0dJ6GZvi4aoQDQhouo/t1MBCVni4TnpIvmqiz8Jpzf/Iy B1WWYJ0YE0Vp0cfuAm9wm30wlYyFFp+xieBeuLtJ7TgW4oIY9MwMN0310Or5ZRCmZ1r0 YIgQ== X-Gm-Message-State: AOJu0YxIkJ+PH+ymWa9u9rsppJJZQwMLHG0wPEcHygLPnYTWEOwq7g8Z 98J0x38FZyGmX1iq71cbF9ZQQs96nZGIYabpfO/MTOfoVnUTaytPzXWCWMha/aCOdikhnPxmsc9 IWnSbR5xxmt0lov9rHOMSlgmdPATkvKgm9vxtMW542jLNeV08E3WYjnPMQCuWNw== X-Google-Smtp-Source: AGHT+IFXD7JBU7Ih4GN9dRKagmjiX/0+G1ettC7JnYtPW36ZDnFm+K0UN+rGEj+e/pp9dXcfNvFb0HPFeWQLvQ== X-Received: from beeg.c.googlers.com ([fda3:e722:ac3:cc00:28:9cb1:c0a8:11db]) (user=jackmanb job=sendgmr) by 2002:a17:906:dfe6:b0:9be:dbea:42a2 with SMTP id lc6-20020a170906dfe600b009bedbea42a2mr15361ejc.8.1699462165146; Wed, 08 Nov 2023 08:49:25 -0800 (PST) Date: Wed, 8 Nov 2023 16:49:20 +0000 Mime-Version: 1.0 X-Mailer: git-send-email 2.42.0.869.gea05f2083d-goog Message-ID: <20231108164920.3401565-1-jackmanb@google.com> Subject: [PATCH v2] mm/page_alloc: Dedupe some memcg uncharging logic From: Brendan Jackman To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Johannes Weiner , Michal Hocko , Shakeel Butt , Muchun Song Cc: Andrew Morton , Brendan Jackman Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 4D7AF1C000F X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: aa7sr5rrkd8os73qrwiufgsz3jdzke9k X-HE-Tag: 1699462167-281675 X-HE-Meta: U2FsdGVkX1+Pcb5Fwy5CVN2lyfkscfZIWSP4QN+5cgWK2N1JKF06OpiN1j0ARlBZjjSno3CyG2w014vLZsj6Bfn8YdW2v4IH3PW778q2U5z8Od1o6qqi6Z3bjq0ORCt1TOWNGLOgxTDcoR7VKeu3xeWDQpqwhJADgd/8lYH9cKyndgGOkQAooIjKW1WNb6OJ3VppK5ECRXr9ynKlbqAIh3hHPsENIKsvZWhfdMxqxcCY3O9pNWGmOKtXN+Bhhb6Egsu2oF8NK/FfJPZ3QalwP9NA2sw4bFbIEM3S542eiks38/ejiBh8O7gpCcSfOXihWYV20FSWjhcyfpykpH8qzuvn2WyA2cMDhPv109KA3dReFHQZ0X/y+8zpyTV3O2OPxniTlAnl15LwAI+v4xweD63CQBuBj6ePNNgKkgJQxp7yHBHlyxDZq6Nd+y+520ksvR477y4Q0nv1BGS/lmU4ZhX5Ai+LF0rm4nrx1imcK9+0c5+ZUYC1j7+aNMr3kylusf3rmzX0TunukPcS3hPBLUfX4pJva2iymHWWrcueMkcFKuGjDkj/AtVAVQYL1+DUUg05NI8BBPNPKeC0WXBIuMxyDblNNxoW9qW7APn6PStO0ij6w8HC1FFrZD1FWRNCtPLsO/3YBQD0+ppHhCj18V1ECdMhTZLmcdmzpFEvDkJRPXfJB9EuxNlTqW62cN0G0QqE0MXlgWXKNUMddUaZ0VYz82dqwiFSGCOmkfb1yfWVnTrOvVq/cPOXeOTB1XBlOZgx6IK8Tpr/lAc4a6IDpTVHghGuF7AJuVBMmFND/QogdjXUasB4WRrfCnf1hcH01XrTKBADn1LQ5CIumQdVm8tHYgkTqgKroMaWQb99q8gjsHPQMgwEo5csaZ83uI9zepMkQ1Kl78pllK2zw83jUTVsUMEHCZGyGw/cMGlKX9ygNdroXNixsz16e2uY8EPtEfgostzWEwCo9wXsmsE 1BeMUD13 b2W9/yqxHk7wRpX3PkBc+TV2m+L3NzrkyjoR5oYNMMKH6VnYofZWzFRRSG5z5g5ZKxzxT8xnukvhbbc7pKyHs9OtarucRFZUk9iWLSpp8/QBAy0g3RWViT7tI4E0Cw7eRuHBPInr85BWkbn8/vmn0Z3ann2EYn1ARkc9noJwVGDAG6UFFpTrw08ujVXPrL1IFNyu2TO93+oBd2m8RxypfwSdTn/W4wurwmmFbHc2dKfDzB2RKNrLjVWFb6hXnCAq1T+TWlLGuGEbYx8qQyaiId0jSy0LC3CLMF2tmttxTZe8IwcPA8WBRz0gn28PaivEf7HbnjpjVHl1WTz0H+Ut+oNHvhK0HZQQ+Qb7pRaYLfNU+s1MpRN8Hw4ujXGpK3YdDnUZAopXLnm1N+uWumltaZU+KhnB4nlYosXeNZDrMtiGYwfEkLwrmEcv4009H2tPZ6Fy/35uW5sH+17zTbirv+gaEXsiijrAF09c2+ac/yyj6FStQis7l4mJOfWXFa7ZvLA+wFNkXygJRZ7RvLR/vYlYkJRGooDeI95W0YZy0YsNs1jgw0o2ztKSm3uFLHT1Uf2V06lpHXDr1rFQ= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000003, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: The duplication makes it seem like some work is required before uncharging in the !PageHWPoison case. But it isn't, so we can simplify the code a little. Note the PageMemcgKmem check is redundant, but I've left it in as it avoids an unnecessary function call. Signed-off-by: Brendan Jackman --- mm/page_alloc.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 733732e7e0ba..dd5e8a759d27 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1086,13 +1086,11 @@ static __always_inline bool free_pages_prepare(struct page *page, trace_mm_page_free(page, order); kmsan_free_page(page, order); + if (memcg_kmem_online() && PageMemcgKmem(page)) + __memcg_kmem_uncharge_page(page, order); + if (unlikely(PageHWPoison(page)) && !order) { - /* - * Do not let hwpoison pages hit pcplists/buddy - * Untie memcg state and reset page's owner - */ - if (memcg_kmem_online() && PageMemcgKmem(page)) - __memcg_kmem_uncharge_page(page, order); + /* Do not let hwpoison pages hit pcplists/buddy */ reset_page_owner(page, order); page_table_check_free(page, order); return false; @@ -1123,8 +1121,6 @@ static __always_inline bool free_pages_prepare(struct page *page, } if (PageMappingFlags(page)) page->mapping = NULL; - if (memcg_kmem_online() && PageMemcgKmem(page)) - __memcg_kmem_uncharge_page(page, order); if (is_check_pages_enabled()) { if (free_page_is_bad(page)) bad++; -- 2.42.0.869.gea05f2083d-goog