From patchwork Tue Sep 12 02:17:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vern Hao X-Patchwork-Id: 13380511 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 489FDCA0ECB for ; Tue, 12 Sep 2023 02:17:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A99086B00B5; Mon, 11 Sep 2023 22:17:40 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A21F36B00B6; Mon, 11 Sep 2023 22:17:40 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 89B696B00B7; Mon, 11 Sep 2023 22:17:40 -0400 (EDT) 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 3B00E6B00B5 for ; Mon, 11 Sep 2023 22:17:40 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id F41134087E for ; Tue, 12 Sep 2023 02:17:39 +0000 (UTC) X-FDA: 81226334280.24.F1AFE1C Received: from mail-ot1-f43.google.com (mail-ot1-f43.google.com [209.85.210.43]) by imf03.hostedemail.com (Postfix) with ESMTP id 42B372000D for ; Tue, 12 Sep 2023 02:17:38 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=hz6efH1F; spf=pass (imf03.hostedemail.com: domain of haoxing990@gmail.com designates 209.85.210.43 as permitted sender) smtp.mailfrom=haoxing990@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1694485058; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=szu4YjijCmQAPr2TZ3fba/jfaS/4RHUOM3EpMid6LKA=; b=joCSgjsUXxtiUQFzZ8ojtKwEFLAKO4OrNdL7cQgpBQ7rY77Qkwt3W1DIhGc/fWCh84kM2U EVXP0qftnLkRBs/QEs936bqcmNclAZQYXmLHkayFXnrDH38hi+03hUzWkmDQYd0DSIGlkK wi1VZTeU7lZZdvhYQ3ikhwxdmXsXLHY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1694485058; a=rsa-sha256; cv=none; b=Pvi+dqcEElpprKXGuKQzV1hmeS0mMxutxgZDjwxmHpIABdHwonaJTQQbdnUfKAInzvYV6f nrvSKytyL1MpTabJuldUx1L1yrs1TiJYyJ+WFqwYG5nAOXQoyRqiPEhjSBoDhIoM7TdTYx Z1eTZhtbFTFZcJDk208dWNSMVNSoXKs= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=hz6efH1F; spf=pass (imf03.hostedemail.com: domain of haoxing990@gmail.com designates 209.85.210.43 as permitted sender) smtp.mailfrom=haoxing990@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-ot1-f43.google.com with SMTP id 46e09a7af769-6bf04263dc8so3781154a34.3 for ; Mon, 11 Sep 2023 19:17:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1694485057; x=1695089857; darn=kvack.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=szu4YjijCmQAPr2TZ3fba/jfaS/4RHUOM3EpMid6LKA=; b=hz6efH1FYJ6K0Hs6c9yHbk8P4WxRIT9m5488cJVM2ftn9suBThvfWW3XX806PNNR/T WmGLxZZ9qS5OWxe2DhS38bywlwopxoxDzhyrfzxHBj2P8X9VG0avxMwipb18vvOP74Rt 2SRkF6Qs347SHjSXIHD/1iYywdkRAmGCDykvcmJ6y4OvUwWuz/zl0FXd6Wt9I5prVl30 Oab8G6B6iVSWTZsVdd5Cb5QB7LttjkBB6INEKaIFcqtNPPgLrHsMNL26Pp1MdR+L1P2H Rl3iv5X4CE3iOnrQ+WkmJ8wBMckzmJBqwYaFPG0znMJmiTlzRlWpy7QEVjijvlYL/zjK PHdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694485057; x=1695089857; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=szu4YjijCmQAPr2TZ3fba/jfaS/4RHUOM3EpMid6LKA=; b=QgGS+Lz+91nRgeoSA20oM60PV0RVGGBck8h/x8u+IdEsi/xUibw4a4pA7H7Uzc7jUv vHRBw0UJVFo1Rt/UqxiXgoxQHt5puDaCwn8WK43xTlmLvpENV2KG8Hm6JWXwm4rQAoSE 8uuKn3CV5clAzVqiDtvtMZ2m60+eJ/GdkMrPoI6bSRP236sudqZUrrkpX0x5r+oFluQc S1HPJadutvL7wnwToQp+ucD+IW7613KIGbsNbHnbHvSmnpClvC/cR8EpQl24IgmSwFSP kVaqvbQcPGtVf/9GJJPLWowZR6M1lVBN6U/k6CvY7a6/mZU0pmrGFiCHb4Zfo/MsNzYr duvA== X-Gm-Message-State: AOJu0YzCACxQIoWl77gYYPahh4OFixMgA2I6e/woMPmMmLdFMVF+k7Ox dnlstzqSF/rmjlBldSmE+zo= X-Google-Smtp-Source: AGHT+IG6eRsMjzIqfU49hP6rWFie9ekepj5lrE+HWW7v6TG8MQjgNCU9kwvahkZf3SFU8A2l9SgEnQ== X-Received: by 2002:a05:6359:ba4:b0:140:ecf2:4c7e with SMTP id gf36-20020a0563590ba400b00140ecf24c7emr9231225rwb.1.1694485057218; Mon, 11 Sep 2023 19:17:37 -0700 (PDT) Received: from VERNHAO-MC1.tencent.com ([103.7.29.31]) by smtp.gmail.com with ESMTPSA id x47-20020a056a000bef00b0068a538cc7adsm6217108pfu.52.2023.09.11.19.17.34 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Mon, 11 Sep 2023 19:17:36 -0700 (PDT) From: Vern Hao X-Google-Original-From: Vern Hao To: hannes@cmpxchg.org Cc: mhocko@kernel.org, roman.gushchin@linux.dev, shakeelb@google.com, akpm@linux-foundation.org, cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, haoxing990@gmail.com, Xin Hao Subject: [PATCH v2] mm: memcg: add THP swap out info for anonymous reclaim Date: Tue, 12 Sep 2023 10:17:25 +0800 Message-ID: <20230912021727.61601-1-vernhao@tencent.com> X-Mailer: git-send-email 2.42.0 MIME-Version: 1.0 X-Rspamd-Queue-Id: 42B372000D X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: en18ezhfubqzy6o813egzj18btwch71n X-HE-Tag: 1694485058-973173 X-HE-Meta: U2FsdGVkX19/dvIbr2rB1lUwgplg7B8NfF0qdBIsBd9Kvv6i5pczPQx4yvKGY8dKw+ujs4rFqbplyB4idb/WH1D7ioBww9tEz2p8QZkb/oEKORx3ld/h29E+qfkOyIxgkQA3kJk+TDCoWadEU6vAFCsEM1ALmYDXOZFztIxFa+9lsj1zdb208ez0+U6yIMLhNTkBcxsUg2q9AxpjG3++cbjZNhAwmAv3PN9Wphlaza8GgJ/r+u1ubp3UdegO+zEvKoRA+WN1bI+bZctEnTry9wilABNMUVhYARgsDhSskMxAlFtN5dRWDY2dA8x81yK8bHknpUXVZk6G70bZWAqiPcHemlihj/Y7RJBuJQsYgY54js4WZXmMji5ioWLwFpWBXrvbMHszbELLxLc6JcdmVMeyynrAo9AJnnFFpFhXTtPskPbmpsYj4M46gF3nmspJ0e8e2OrKYmddgh3yuxw2vWd5iPTTV6GRVEmUYJ+UekH0bnqF1nwI9Al2jt/r2+ErEGDslUYbY61tz+UcRiBaZN/2L3pq9olMYcVSWa7aIPmhqqVKNRcZkjM92G+EnXWrZu5K/Oy1rEt/GAeqJczD7PXskRagAn++zk2/dO39eMowz42CfaeFUPDFzWM2OIUFA++7tQZYGiwSUsyZvYuv5QcugLcwoDMm67oUtVT5SzY4Uvv6YFW2mIdUE9ZCDro6eC4h+KkWvTjv1ZQkBBNHlJ1usWgg9prktaKmHsT8NyWEMkrj5LGvO11MJG3cg84ntaRtawjF/KHGbcCOnz7oDBo8SXZ0kKvi42VFaHMnnSN064rl5Rkjqc8iMsbAqqJY+iS9zPJBCvn0N9joSMzXzQ2nnebVkGlXVjIagdqFKSNk6iTfQyv36/BXc9zB8I3tcRDMU8Bu/LsoUz5JInKOx1OWHHcRp+mgGw85UTQlbb3V+6e8Z5m0cm5VQZt5Kva7jlyJAURidx6tI3nOm+g 5wBMog7z Cg+soTMoQhpdH96YXTYj40vPJaOBQYgnuMEPVZRnopsEy6HKNfIlt0TtBFRefa/yq8LetB2kw+XcAI5Gr68t+oarxnvWucNMnDOOROQnXhUNug0AnMKvvvWYyyyN1Bw0xybyL/E0n3NFbRjtY7ANA9W6KgOtrX+biDh24qdS+D4cjtfMN1La/SgNWF3rXN9boPIIjETbZaaqWD/cJu0G5cUeyJi5KiPlNOuld8uGdLPtgOpHG88e6SQKRIvOaPmThTQKnMUGOw8HYi0+zydQ6GdE2jpZw3rpEqS2xNY8Trbo9kwDoEy7fZ6wYwWmHli8R9KaglExp2QOAVtIQGtPyyl186xCZVJpchFLeGzaWCgD+19Hw3alBuWyzDkYxtNGOwoDBoOWkKyPa2F8kigcgIkbKNuU3IVFnYGPcXdl32QA/eCkMOjbK7c+5XtNoefQW7DqOAYLcmYc9RCKsO/2Pni0NK8GzcXBMSMlNoaCrp1qV9DZbH0RhNccU9SHZkY6m8mX9J+TS7kYVjX50NrlLOQJ2LFw9D5JoZWombnuyeOwZxKxLQZk6Rxc2Ww== 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: From: Xin Hao At present, we support per-memcg reclaim strategy, however we do not know the number of transparent huge pages being reclaimed, as we know the transparent huge pages need to be splited before reclaim them, and they will bring some performance bottleneck effect. for example, when two memcg (A & B) are doing reclaim for anonymous pages at same time, and 'A' memcg is reclaiming a large number of transparent huge pages, we can better analyze that the performance bottleneck will be caused by 'A' memcg. therefore, in order to better analyze such problems, there add THP swap out info for per-memcg. Signed-off-by: Xin Hao --- v1 -> v2 - Do some fix as Johannes Weiner suggestion. v1: https://lore.kernel.org/linux-mm/20230911160824.GB103342@cmpxchg.org/T/ mm/memcontrol.c | 2 ++ mm/page_io.c | 4 +++- mm/vmscan.c | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index ecc07b47e813..32d50db9ea0d 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -752,6 +752,8 @@ static const unsigned int memcg_vm_event_stat[] = { #ifdef CONFIG_TRANSPARENT_HUGEPAGE THP_FAULT_ALLOC, THP_COLLAPSE_ALLOC, + THP_SWPOUT, + THP_SWPOUT_FALLBACK, #endif }; diff --git a/mm/page_io.c b/mm/page_io.c index fe4c21af23f2..73b2f2846bec 100644 --- a/mm/page_io.c +++ b/mm/page_io.c @@ -208,8 +208,10 @@ int swap_writepage(struct page *page, struct writeback_control *wbc) static inline void count_swpout_vm_event(struct folio *folio) { #ifdef CONFIG_TRANSPARENT_HUGEPAGE - if (unlikely(folio_test_pmd_mappable(folio))) + if (unlikely(folio_test_pmd_mappable(folio))) { + count_memcg_folio_events(folio, THP_SWPOUT, 1); count_vm_event(THP_SWPOUT); + } #endif count_vm_events(PSWPOUT, folio_nr_pages(folio)); } diff --git a/mm/vmscan.c b/mm/vmscan.c index ea57a43ebd6b..39beb0d30156 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -1928,6 +1928,7 @@ static unsigned int shrink_folio_list(struct list_head *folio_list, folio_list)) goto activate_locked; #ifdef CONFIG_TRANSPARENT_HUGEPAGE + count_memcg_folio_events(folio, THP_SWPOUT_FALLBACK, 1); count_vm_event(THP_SWPOUT_FALLBACK); #endif if (!add_to_swap(folio))