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 20197C07E8F for ; Mon, 22 Apr 2024 07:43:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AFD6E6B0089; Mon, 22 Apr 2024 03:43:08 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id AAE8B6B008C; Mon, 22 Apr 2024 03:43:08 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 94D976B0092; Mon, 22 Apr 2024 03:43:08 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 6ED2C6B0089 for ; Mon, 22 Apr 2024 03:43:08 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 206B4140AEF for ; Mon, 22 Apr 2024 07:43:08 +0000 (UTC) X-FDA: 82036376856.12.385C3F3 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) by imf02.hostedemail.com (Postfix) with ESMTP id 448828000D for ; Mon, 22 Apr 2024 07:43:06 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=L9tKyMnn; spf=pass (imf02.hostedemail.com: domain of pizhenwei@bytedance.com designates 209.85.214.179 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=1713771786; 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=8v4Ayhiua6xBQPRLdZqElV8SuuukGuSIp7AWQ+b83kM=; b=ppuPoPyJBoS/yx8UMvPs05YebQV6TRdj6HyI8Ic9KOawJAF7USprzxQbKJ7Bpg3SaGLsvV V+2e8sfrcdU0JiPsVpDmNcbSnJeCHakN8IIf5lbtDLtNK94t2STJQZTcbpqCXqF9p5RLww mKDgZ7wfGbjqXI4xL5hErtxDwhVH7OU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1713771786; a=rsa-sha256; cv=none; b=r0X0dsruWW81QkD2Azrm/8BmJVMvAfFNfXPr7i2ubTb1WOQMxLx2D2jI5nkQJ7gLio6nLO Vh5drQ5CRXNE2j1OadoiCvuR1ClNainjeA1UYdWxVYXx7Ld61Q2uX3Ibbd8sObD5g57k11 N3LRdllqVu66aBGn61iTS3xzCrhnh6A= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=L9tKyMnn; spf=pass (imf02.hostedemail.com: domain of pizhenwei@bytedance.com designates 209.85.214.179 as permitted sender) smtp.mailfrom=pizhenwei@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-1e2b137d666so31896865ad.2 for ; Mon, 22 Apr 2024 00:43:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1713771785; x=1714376585; 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=8v4Ayhiua6xBQPRLdZqElV8SuuukGuSIp7AWQ+b83kM=; b=L9tKyMnnHnO6Rj7HVTwfCIrB4QFLspUZ7L/aLPZ8TOq2K3x0x7H9Y1oc8f4gxJ8hT0 +RIMQl2lm4WNa6WMoCMcUOUNnPAzqwiJ8UBhm59CyY6vUfvbR5sAyNEpVGzoEx3DXYLP CdVv0rPBExKJqS79D0xhXoQBFikRTZWQDADp6A9sZrxKkY65Uo5dIQ86zuJOcvUI8TWT S6QjuNThuC7QfJXx8irG9zluzYN2bd4oIuVXPwkTmVckUOEl39sl0ov86L+3iHfyhzJM IYyVR1K6acfy5crkWI5QNv7wnApHHilgIOiuT82CCJfM+osT8Ym3rRJvrhBw9lo6f4XS hwlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713771785; x=1714376585; 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=8v4Ayhiua6xBQPRLdZqElV8SuuukGuSIp7AWQ+b83kM=; b=Bg+Jt2F70JxqQGv+qqllWeRKZIxDUqHvFrWviZwAKMq8QCNN1QlPs2JWFlEo7ZpSaJ C3KF1DMQIH/qFcYkSYgV1Rhvo/7k9uN+j1j37LmZbnEotmrPZQgJE5+Mgil2WTAq0rht aqGo6foTBHWBDqoTnHzAvUM0fqdJiYVJ6cBBF+NEU/MvRXDDzocegpihe0fBSyRwpnEz 11S+mOts4P1PM4j6HxOidgINO0MxwbRiUYuNdqmAZth45UbQcHRt51aaqyU7HmmvH1+x mT4v1QLXmHpv6W4Pi2WdwzrPYB8Fq+tD75Tg43bL1auaYDeegJA7il59E8jsG1jzw71H vJNA== X-Forwarded-Encrypted: i=1; AJvYcCUrtOieyCgHGKDRNOtrLDKb7m1/0XzMS4VQ3M6wENNHhfoMQmPRWewM5jy+bg8MQZTQNJtedqonQyPg8TyiQHPY8u4= X-Gm-Message-State: AOJu0Ywrqqip95ZbH82ozyQyGvW1x8f0VCO9o8vS3QHlFPH868cVAaR8 bMkMEA20mtR+7lyAi1I8GUA1zivWaOmoynPC1AhdD3/nYbTjbn8sBeIAe1fl+AM= X-Google-Smtp-Source: AGHT+IH5FapWr2NsqZRBiIrj5e5+IahI/4Uza3UkvKorGF9IdyGMaix/CVDPSu/65IlIfj7nO5mHKw== X-Received: by 2002:a17:902:c40c:b0:1e4:2b90:7282 with SMTP id k12-20020a170902c40c00b001e42b907282mr13198963plk.14.1713771785215; Mon, 22 Apr 2024 00:43:05 -0700 (PDT) Received: from libai.bytedance.net ([61.213.176.11]) by smtp.gmail.com with ESMTPSA id e11-20020a170902784b00b001e0bae4490fsm7595634pln.154.2024.04.22.00.43.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Apr 2024 00:43:04 -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 v2 1/4] virtio_balloon: separate vm events into a function Date: Mon, 22 Apr 2024 15:42:51 +0800 Message-Id: <20240422074254.1440457-2-pizhenwei@bytedance.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240422074254.1440457-1-pizhenwei@bytedance.com> References: <20240422074254.1440457-1-pizhenwei@bytedance.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 448828000D X-Stat-Signature: 8m17rj7yyd7ocwu7b5f93q85sz67itn6 X-Rspam-User: X-HE-Tag: 1713771786-643609 X-HE-Meta: U2FsdGVkX18G/r/QuLsVWpnTXmzJs0qhCdGKFL15PjvDZRdALEXaaqkLjcnedHVLu1VnwT+Pd/FvWcXYsxPEjNghzDopL7ycWeZ/wUAA1MmjzM9jzu4C5SxGRZbI+t57a1iGPye1beZMgQZ9IHW3jUTc9Nsv88h1wEjDBcktP0iqS0v2Qv6UR8Xkfu1nzjjvdRZla7g50aoElLlJOqq6NBLwxxt0mEsImMMXFF+/B9XaSlwXlBUVIP/gA85j9rC039KZeRw/+OgknJlWM8aPsFsKhdSY9WMqr5eR3mptkG8wHc6TgL7/7ltqGCLqPruhI3FelvKyYEiJ+EmtYx5xVL6UT8pkIjb4XPlZh+/XgUlZzkWmT7zNw+x1faBR2xZhlMQ0pNNHqD77RAOMmoF/92tjulWqCk90ZkJ63IxZC+j4WCsgzJvRgzV78Mc4AF6mYAoT9A/zSm0i0DKS5AzdmAAuesi9dkU+JK6793Dafn/ep8qhJp1PqkCsXXK6bTqMjjK5jT2NerrrHnEAaJMrJO4+nHks5mVTBEYLJxfuU3tJ3C/BnoXQ0nWRuVm07h/zuVlamiCiWJ/1LCcRaA1jaYB4jBhzbUI114iiKQ2I9JOdc1No3ZGgFjabFEBQcRz43TtoyObU//XogCeaHni6tYHv5yl+R7WORDfCo7ZZcVoZxtWVRF/lkVTgKe+/mhi8QqW6Zr/ecDJePRObkyRWikq8+CnwHa9zkj7w4opmQ0x0hZKxQZbEhDBjYTQKoIcQpNapv4Fsn+jLeR7WxNhXNxEwWEpWTtl2rWKng9VAP5Gao7UkP00D5qihldZz7s6X7SbmoVO/MbNyTx+i2Z+RFoX4A9mDI3DBXIM62DX9KXhNkq3PZOZ9jd/fMjSVLAzRfTD2uy0Mm9cWvqyf5xvXrCFIQYgMMKICWbYIFVr4EyL0vmOB0am6emuv5FK+ZnLKUlzJUa0oAmRWsBFI8bE RsTOv87i y4U3iWsDNqz2RHsdcPhUh8oBQjhYX1HYnjCAUri+IuKMZ0IeiBpbQIoweD6LiKdFXusc8WGUedwLu0H/HSKp8DZWGTLK4fRIMfKSc5sDl0p1UfjcKv6CUxEQspUPVHTl/mX5VB+dYnDE1VIZf3KPSMOf84WB78iR8N7m1jpbX/iZvpRKpjjmjJ4tgQ0yRwmkZJ7vci/NOY13KdpWWXsm5QQb54bRRz5ORiytxc9aO6Ci1ekA8g5zXW/zyxaPNhOPWgNmoIB6Ej92VkICTGsfpSP5o++zLYu0ZgOOZNoXb3s1qPxoBw4eRFboP+ddSTqd6ieTru41bVg9G/6OwzNbiAPygOX6yYefiY4UTOwLIklRKjFWcCHEphVUkBFj/EAXpGWmac59QP4EpevdqdHIcuPhDN+hMq4hWy3BS10YLlfSGlg65nK/M6FbhckNrwy0LTqs0WcWSoVGSA6s= 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: All the VM events related statistics have dependence on 'CONFIG_VM_EVENT_COUNTERS', once any stack variable is required by any VM events in future, we would have codes like: #ifdef CONFIG_VM_EVENT_COUNTERS unsigned long foo; #endif ... #ifdef CONFIG_VM_EVENT_COUNTERS foo = events[XXX] + events[YYY]; update_stat(vb, idx++, VIRTIO_BALLOON_S_XXX, foo); #endif Separate vm events into a single function, also remove 'CONFIG_VM_EVENT_COUNTERS' from 'update_balloon_stats'. Signed-off-by: zhenwei pi --- drivers/virtio/virtio_balloon.c | 44 ++++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c index 1f5b3dd31fcf..59fe157e5722 100644 --- a/drivers/virtio/virtio_balloon.c +++ b/drivers/virtio/virtio_balloon.c @@ -316,34 +316,48 @@ static inline void update_stat(struct virtio_balloon *vb, int idx, #define pages_to_bytes(x) ((u64)(x) << PAGE_SHIFT) -static unsigned int update_balloon_stats(struct virtio_balloon *vb) +/* Return the number of entries filled by vm events */ +static inline unsigned int update_balloon_vm_stats(struct virtio_balloon *vb, + unsigned int start) { +#ifdef CONFIG_VM_EVENT_COUNTERS unsigned long events[NR_VM_EVENT_ITEMS]; - struct sysinfo i; - unsigned int idx = 0; - long available; - unsigned long caches; + unsigned int idx = start; all_vm_events(events); - si_meminfo(&i); - - available = si_mem_available(); - caches = global_node_page_state(NR_FILE_PAGES); - -#ifdef CONFIG_VM_EVENT_COUNTERS update_stat(vb, idx++, VIRTIO_BALLOON_S_SWAP_IN, - pages_to_bytes(events[PSWPIN])); + pages_to_bytes(events[PSWPIN])); update_stat(vb, idx++, VIRTIO_BALLOON_S_SWAP_OUT, - pages_to_bytes(events[PSWPOUT])); + pages_to_bytes(events[PSWPOUT])); update_stat(vb, idx++, VIRTIO_BALLOON_S_MAJFLT, events[PGMAJFAULT]); update_stat(vb, idx++, VIRTIO_BALLOON_S_MINFLT, events[PGFAULT]); + #ifdef CONFIG_HUGETLB_PAGE update_stat(vb, idx++, VIRTIO_BALLOON_S_HTLB_PGALLOC, events[HTLB_BUDDY_PGALLOC]); update_stat(vb, idx++, VIRTIO_BALLOON_S_HTLB_PGFAIL, events[HTLB_BUDDY_PGALLOC_FAIL]); -#endif -#endif +#endif /* CONFIG_HUGETLB_PAGE */ + + return idx - start; +#else /* CONFIG_VM_EVENT_COUNTERS */ + + return 0; +#endif /* CONFIG_VM_EVENT_COUNTERS */ +} + +static unsigned int update_balloon_stats(struct virtio_balloon *vb) +{ + struct sysinfo i; + unsigned int idx = 0; + long available; + unsigned long caches; + + idx += update_balloon_vm_stats(vb, idx); + + si_meminfo(&i); + available = si_mem_available(); + caches = global_node_page_state(NR_FILE_PAGES); update_stat(vb, idx++, VIRTIO_BALLOON_S_MEMFREE, pages_to_bytes(i.freeram)); update_stat(vb, idx++, VIRTIO_BALLOON_S_MEMTOT, -- 2.34.1