From patchwork Tue Apr 23 03:41:08 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: zhenwei pi X-Patchwork-Id: 13639275 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 76F85C4345F for ; Tue, 23 Apr 2024 03:41:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B9FE96B0092; Mon, 22 Apr 2024 23:41:30 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id AFFF36B0093; Mon, 22 Apr 2024 23:41:30 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9528C6B0095; Mon, 22 Apr 2024 23:41:30 -0400 (EDT) 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 70B2C6B0092 for ; Mon, 22 Apr 2024 23:41:30 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id DF5DB12041E for ; Tue, 23 Apr 2024 03:41:29 +0000 (UTC) X-FDA: 82039396698.19.6919869 Received: from mail-oa1-f54.google.com (mail-oa1-f54.google.com [209.85.160.54]) by imf04.hostedemail.com (Postfix) with ESMTP id 1C6FB40002 for ; Tue, 23 Apr 2024 03:41:27 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=jx3L+oyf; spf=pass (imf04.hostedemail.com: domain of pizhenwei@bytedance.com designates 209.85.160.54 as permitted sender) smtp.mailfrom=pizhenwei@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1713843688; 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:in-reply-to:references:references:dkim-signature; bh=F5+no2YCmidvNin275LSwR8pI0Tp0FoxLTpLeIvaXuY=; b=DJCBzk3GjsLZC4VFT2d+BWCbR0tsDwsmnie0GYJlFTz718tKeJvyHzG/Y4d+Ko2lzlG8T8 ldJd+t7BwU2gZCUbb/aBqi/8V1xtgOcFvxgUVyk1k2OFrOO2PxCeROVI+jJsmR4zDSCcWH db/TjjupjT90oyHPg477lTzIWaI8ARM= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=jx3L+oyf; spf=pass (imf04.hostedemail.com: domain of pizhenwei@bytedance.com designates 209.85.160.54 as permitted sender) smtp.mailfrom=pizhenwei@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1713843688; a=rsa-sha256; cv=none; b=nXbyGOy6PMp73voo9U4hKAAZoB1zc4Sgmw//l7qKGk4UHFn71llchZkz3fcv04HycQT8YV 4q6dpMw88qILXwmHXSJUU7HPMCjKMkPyI3MtxxJ8fraExxRqKQsKpx5GykLgnFVMLnCymY n4LOnR4RzkjxPvSuxLD8Bi35xrmjNpk= Received: by mail-oa1-f54.google.com with SMTP id 586e51a60fabf-2330f85c2ebso3130797fac.1 for ; Mon, 22 Apr 2024 20:41:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1713843687; x=1714448487; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=F5+no2YCmidvNin275LSwR8pI0Tp0FoxLTpLeIvaXuY=; b=jx3L+oyfxSj4cSMsb7D47AmxWz9/7Ex0XgYUaLzV6Nwhpy4OJxGsqN2HK86ZEavFsN AC4jYLqfMrnt7RzR3Ngdm34w5Z3BC9V3IyiqIqzWe19skHby5CqHn2InrfBf0dcwJRTi O3IPRErfce9g0zth/B/G9E6QZqqG0uUvwEV8efBIIRU25C8LlV0gp3mHWH8zR+KxAFC8 l3Hx5eHBC8FVKqfA/nv2ZRlgzd47i6TP0MtGdKNNCDnzwrdrv/iBXQi9kI1tiwPT4Rfi 4WVVmjdyUAjlH+lK3QAsVaBC+51qkAAdp1feH1uEq6GF3YJJP+QKlM7aab+mCgqHdvW3 mWFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713843687; x=1714448487; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=F5+no2YCmidvNin275LSwR8pI0Tp0FoxLTpLeIvaXuY=; b=ShrYWRjsf2rq7Tz/2sD35hzV+DaiRmcpY76tuGdVaQo29/QShbd9UopKy/h1wWUhq1 ZfR5rDmcO4pScHbXo+cWIQk5QNtvAG+NRlECbD2YvpxS+S85gy1L4wwbxrOkavDjn7rd XvGngB+7+TQWsHUoGYcP25WNRz/TVOIJBlGn2ybQHP8oR/Vb2Fc/1Rw2uj5GgULQ2G1F 8Fn2UbPlircBGmJv15koZXQZbGa/NkOYtSbP2qJLs4/QtQmdJ/u8tMCq1gS47sEkf981 D8WQBlqwtq/q9RKtEcBFgSPqK/MHbQGwST6PcJYIK+drv1A7ZqH+4p8Ue5QUp6x/Boh9 zpkw== X-Forwarded-Encrypted: i=1; AJvYcCWGZiZ1OX2hnII9tECehG+3MsHccp+a7zv7o0R9twwhhCpuweOK/Q2Y9XqwJQhYQEZKANa8dxVAFi7f/Uz7JrUyApQ= X-Gm-Message-State: AOJu0YzuR9ROdkkyMgF1MVsBL4xsnnIvsmTtPxzIztMJNpt+eLdxn2Y5 66ZMK1dchJ23EOQrPSjpoZkRLcE7wuWUIxbE8RoN4Ha/8YsIZbtMXSOwYrASKEY= X-Google-Smtp-Source: AGHT+IEk5ynVvllFpoDAECg8nh7BfbCqfpMIzwNakNzM2tHibdMZWatAJwp62coEKbLv8SpF4bdD4A== X-Received: by 2002:a05:6871:7a11:b0:22a:7899:37c4 with SMTP id pc17-20020a0568717a1100b0022a789937c4mr14499731oac.20.1713843686932; Mon, 22 Apr 2024 20:41:26 -0700 (PDT) Received: from libai.bytedance.net ([61.213.176.11]) by smtp.gmail.com with ESMTPSA id b16-20020a63d810000000b005e438fe702dsm8266980pgh.65.2024.04.22.20.41.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Apr 2024 20:41:26 -0700 (PDT) From: zhenwei pi To: linux-kernel@vger.kernel.org, linux-mm@kvack.org, virtualization@lists.linux.dev Cc: mst@redhat.com, david@redhat.com, jasowang@redhat.com, xuanzhuo@linux.alibaba.com, akpm@linux-foundation.org, zhenwei pi Subject: [PATCH v3 3/4] virtio_balloon: introduce memory allocation stall counter Date: Tue, 23 Apr 2024 11:41:08 +0800 Message-Id: <20240423034109.1552866-4-pizhenwei@bytedance.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240423034109.1552866-1-pizhenwei@bytedance.com> References: <20240423034109.1552866-1-pizhenwei@bytedance.com> MIME-Version: 1.0 X-Stat-Signature: hoeji9ge3wyiccfnw89d4h9h3e7dmpeq X-Rspamd-Queue-Id: 1C6FB40002 X-Rspamd-Server: rspam02 X-Rspam-User: X-HE-Tag: 1713843687-343019 X-HE-Meta: U2FsdGVkX1/98DnC4trk/IjJhmSw7Y+XnBsz/z/0EJqHpyaMtukKNxeIfJUVXy4b+T3eak9QTk6iOUF5HuwLw6stSIws9g5Sw69sQ7uvQijNKJhIKeMjX5geB72+je9VKtT0Q6lNyMA7QdPSjwugLkgF+Bftl5M2GfgAj5DspyCQH0E6Zn27qA8MQlcqIegqpCvrvWwNd9UOtKzZJz8+jng0UyHqBXlU149Dvvm6JV6G+rvtlpniDoaShkayeYoH2IRI76PNBedAOtyywcB0Mj7GGlwldocUfGncLw9pAj3Xm8P1WBakLHEAh51Wh7PI7r7etU43VdmN0/7AYLdZY2MsIni+FdA/TY+6SyRVf1I+DHRMwVnur9sBWsvTeyL0hc52ETZIiXsINk+VpY0HjVDxNKqkbBEPgq7C/Fn6t1nzNyEiJOo/zaY4B/CeAZ3IXTPoTVXinMI8iCNWfpVczXNrTrEpRSUN33gHsMPfCgO0hLX98uTvQAUc4PoLnpSMSQo3M0q2LgXmQvYvKI/aXwhTmreNKyps57XPX5pvCfmqTp30rnoufVUlptVU/tnP8uRGYZD1hmXX4jKs+6m4/VdhxwkB38DUYVUlStq2xMv6NUjz171FOsF3lJ/d6ZU+sA6MG/y8hSB5QK/BLnxTL99LmngM75IRLE810Ux8BhJLEZ0Hglnz00RTyP7Q3oNx7S8Y/2hhNFxLgyZ8+aRRx88WPVYJgHj2s+aqLI1Pk2t5SQL58N6f/y4LVBrXstEAr3umHAEGdXZcGdS/BajZqr4YRTGqrUllUBZybm5pmFMrT6/w/3uKlWH9YBmXpescNX+KTTCyvptg4SF3bnEufXLSw3Ie6sJg0X1qWqPwO7CEyaeUBEtudYBKYmEAswShSWTzmnOXKSBSBDLJXeyauJc9Ghc5bK7KLjA5I4627M7eztn7AtYcieRErQZyCrEGIkqMMmzVqTPKN7B2WAc Hc/EC3fZ JklXP3J7dO8vQVfGnnTS+y7rGas5HRtrIhqHBaIY2Ivd/iXwkJBgpI48tgxklpLos4D1xJR/R0DzeENas2tZiPa1mzeZw/rqOUoKz5fyCvJP/SviRISGi+0J0J1Ei4q9gK8EofliVjieQB6pKgmIdN5SCF3FC/CJ4tSRShDiebyOz60mWR60a9y6eZYIuXOeLAcB/lZyvmdpKaxbkSza6hj0A6O3eWPdGtjbwwi0833V8RbJtWl7mXsxojoHacuyRlMP2l4AYgXO5L0G/JJ0xH1W2EFXM0vqDA7WZgHSQpUpmojunFBtoTzVdn1w099+rNby5UwgODt7BqAPWzkG31EK5h8vZuzu4H16yVNLUru5CGyQaayxQ4SAFCWfpbOQykjnXBGaobjStWz6Osznr/l9AIVZfkrKUpe6cEYtbL+HXnEU9bIso4NV2shfZRROrKfm3ne5s54UZYCI8fR1RobbyqNrPjU40twkd 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: Memory allocation stall counter represents the performance/latency of memory allocation, expose this counter to the host side by virtio balloon device via out-of-bound way. Acked-by: David Hildenbrand Signed-off-by: zhenwei pi --- drivers/virtio/virtio_balloon.c | 8 ++++++++ include/uapi/linux/virtio_balloon.h | 6 ++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c index f7a47eaa0936..e6229e548832 100644 --- a/drivers/virtio/virtio_balloon.c +++ b/drivers/virtio/virtio_balloon.c @@ -322,6 +322,8 @@ static inline unsigned int update_balloon_vm_stats(struct virtio_balloon *vb) { unsigned long events[NR_VM_EVENT_ITEMS]; unsigned int idx = 0; + unsigned int zid; + unsigned long stall = 0; all_vm_events(events); update_stat(vb, idx++, VIRTIO_BALLOON_S_SWAP_IN, @@ -332,6 +334,12 @@ static inline unsigned int update_balloon_vm_stats(struct virtio_balloon *vb) update_stat(vb, idx++, VIRTIO_BALLOON_S_MINFLT, events[PGFAULT]); update_stat(vb, idx++, VIRTIO_BALLOON_S_OOM_KILL, events[OOM_KILL]); + /* sum all the stall events */ + for (zid = 0; zid < MAX_NR_ZONES; zid++) + stall += events[ALLOCSTALL_NORMAL - ZONE_NORMAL + zid]; + + update_stat(vb, idx++, VIRTIO_BALLOON_S_ALLOC_STALL, stall); + #ifdef CONFIG_HUGETLB_PAGE update_stat(vb, idx++, VIRTIO_BALLOON_S_HTLB_PGALLOC, events[HTLB_BUDDY_PGALLOC]); diff --git a/include/uapi/linux/virtio_balloon.h b/include/uapi/linux/virtio_balloon.h index b17bbe033697..487b893a160e 100644 --- a/include/uapi/linux/virtio_balloon.h +++ b/include/uapi/linux/virtio_balloon.h @@ -72,7 +72,8 @@ struct virtio_balloon_config { #define VIRTIO_BALLOON_S_HTLB_PGALLOC 8 /* Hugetlb page allocations */ #define VIRTIO_BALLOON_S_HTLB_PGFAIL 9 /* Hugetlb page allocation failures */ #define VIRTIO_BALLOON_S_OOM_KILL 10 /* OOM killer invocations */ -#define VIRTIO_BALLOON_S_NR 11 +#define VIRTIO_BALLOON_S_ALLOC_STALL 11 /* Stall count of memory allocatoin */ +#define VIRTIO_BALLOON_S_NR 12 #define VIRTIO_BALLOON_S_NAMES_WITH_PREFIX(VIRTIO_BALLOON_S_NAMES_prefix) { \ VIRTIO_BALLOON_S_NAMES_prefix "swap-in", \ @@ -85,7 +86,8 @@ struct virtio_balloon_config { VIRTIO_BALLOON_S_NAMES_prefix "disk-caches", \ VIRTIO_BALLOON_S_NAMES_prefix "hugetlb-allocations", \ VIRTIO_BALLOON_S_NAMES_prefix "hugetlb-failures", \ - VIRTIO_BALLOON_S_NAMES_prefix "oom-kills" \ + VIRTIO_BALLOON_S_NAMES_prefix "oom-kills", \ + VIRTIO_BALLOON_S_NAMES_prefix "alloc-stalls" \ } #define VIRTIO_BALLOON_S_NAMES VIRTIO_BALLOON_S_NAMES_WITH_PREFIX("")