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 D0F8FC4345F for ; Mon, 22 Apr 2024 08:58:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 40C436B00AD; Mon, 22 Apr 2024 04:58:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3BC486B00B5; Mon, 22 Apr 2024 04:58:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 283FE6B00B9; Mon, 22 Apr 2024 04:58:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 099076B00AD for ; Mon, 22 Apr 2024 04:58:31 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id A8CE540B44 for ; Mon, 22 Apr 2024 08:58:30 +0000 (UTC) X-FDA: 82036566780.26.F023119 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf21.hostedemail.com (Postfix) with ESMTP id A8FED1C001B for ; Mon, 22 Apr 2024 08:58:27 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=FM7YK9UR; spf=pass (imf21.hostedemail.com: domain of mst@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=mst@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1713776307; 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:in-reply-to:references:references:dkim-signature; bh=QD7iRawZyTFIvjusEWyW4L845dvTHcZHV/ye2ilyQhw=; b=cU1p71yPkoL8Y9RIK0U8eoi4i1/sZsKl3JnZQSy5atjAuvdLz1C6l5FxU7YMwSzsV7MQXT ZvX4qDaNp14eWVTRoh76f2zshCGQvJNzKYQADbjIwgs7KrVBcZKwvRfoT4N4r2B+U63Doz U7ukFZ1We35QNyXRJA1O8IGk8YlWuNo= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1713776307; a=rsa-sha256; cv=none; b=p+TcYZLT8yR60zPGklvjH5ITF5w4IaVqaC2j44nsELJeP0UKHqwonDYUasnko0o5Xtuiau L16dTg4H/z9vFU1glhRWUhFt21Z4sOJ93Dbr6OFBkglQq+jFXTLM/iRfWnO+eCACmdck9N 640QsfftyHSj2eIUxoA+80Pw+P/S0V4= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=FM7YK9UR; spf=pass (imf21.hostedemail.com: domain of mst@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=mst@redhat.com; dmarc=pass (policy=none) header.from=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1713776307; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=QD7iRawZyTFIvjusEWyW4L845dvTHcZHV/ye2ilyQhw=; b=FM7YK9UREgsgjagAFAQr4UzCwdqp4eKE9y4Zy13fseZafQguEjd2045ste0PomoUx5QZeK q2B0T6GHJwbb3ScLbcMJ1OTOo0cwTUx0v7WdUSKZimZs0eNZpGXWQgxsILpeABn4s5A8tV mjaHSkOEPq6Wnx3QIvxJXMoaLx2I+4I= Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-336-dbvRIicROD6d7sVf59Wy8A-1; Mon, 22 Apr 2024 04:58:25 -0400 X-MC-Unique: dbvRIicROD6d7sVf59Wy8A-1 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-343e46df264so2892151f8f.1 for ; Mon, 22 Apr 2024 01:58:25 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713776304; x=1714381104; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=QD7iRawZyTFIvjusEWyW4L845dvTHcZHV/ye2ilyQhw=; b=eHYqLAreA/v4QJQiJPDsoTKCQ7zAgPSv6HIP40KD6VAnr3SXM8GtagDKCWHi4SJbSU 0Ryhu62I6CQ/kQYOrzYqPVx2SuOgTdTp8/W+wfUwXNj37o8XjB07tDvbtgkV0b14b5qL buHiPNRkuW4lnqwkFxMA1/buSw/PfFJ0Yv37rGllM9D4abMTvlxVf/4rcVsf1k3yz//v k2/J3ZhtYUyhhs8xtaRRPZIMk1IY7LoB5Kj1V0I2CTudI95arcB5chxTL1q1BTHF/z65 yH0iPkY6Fj5q2y2f1K8ZSgIKBBarHXo3KyR9qFVus3mUI1OEp3OvqV8jdsWKPtZ++07I HGcQ== X-Forwarded-Encrypted: i=1; AJvYcCVd/7egHo5KWkKRo9oqULSLMA51WeMyMv0N8BFYRVyYDU8TGkNgZ1dpXigU+DjDZU/wvTXCg1N4x95/t2dGLAFEoGg= X-Gm-Message-State: AOJu0Yz/SJeyQayCCvqpC3oL4DOC7JMPKNtvYcBeCJXdxtZ1T53kEKUz N8KsucfxQaRpu27YH4V9eCXv1O0mUD6LFZ7WG9vwow7YbQXTJ3M7QlmUBzX7bPtE8J8Qf65EPE8 CraNpnvlzOoFCoAO560mgXvq5NUJpVT83EtcK9MBXuq819wTY X-Received: by 2002:a5d:6991:0:b0:34a:2a90:c45 with SMTP id g17-20020a5d6991000000b0034a2a900c45mr6673362wru.31.1713776304429; Mon, 22 Apr 2024 01:58:24 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFJWXJnyNZas+WvMPjlNqBM0s//s3DLYCnkbxPHoJE4uXiiTGHjbnyPXkL4hkVSoUsd66znuQ== X-Received: by 2002:a5d:6991:0:b0:34a:2a90:c45 with SMTP id g17-20020a5d6991000000b0034a2a900c45mr6673338wru.31.1713776303856; Mon, 22 Apr 2024 01:58:23 -0700 (PDT) Received: from redhat.com ([2a06:c701:7429:3c00:dc4a:cd5:7b1c:f7c2]) by smtp.gmail.com with ESMTPSA id y18-20020a056000109200b00343300a4eb8sm10492124wrw.49.2024.04.22.01.58.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Apr 2024 01:58:23 -0700 (PDT) Date: Mon, 22 Apr 2024 04:58:20 -0400 From: "Michael S. Tsirkin" To: zhenwei pi Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, virtualization@lists.linux.dev, david@redhat.com, jasowang@redhat.com, xuanzhuo@linux.alibaba.com, akpm@linux-foundation.org Subject: Re: [PATCH v2 1/4] virtio_balloon: separate vm events into a function Message-ID: <20240422045442-mutt-send-email-mst@kernel.org> References: <20240422074254.1440457-1-pizhenwei@bytedance.com> <20240422074254.1440457-2-pizhenwei@bytedance.com> MIME-Version: 1.0 In-Reply-To: <20240422074254.1440457-2-pizhenwei@bytedance.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Rspam-User: X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: A8FED1C001B X-Stat-Signature: nty9q9kgzy58oye9nfu6iruqe613kb3z X-HE-Tag: 1713776307-789713 X-HE-Meta: U2FsdGVkX19ujakoL7i443wriInE8C3oZoNcObyvQ3Kv7CC1I2F/5HDn9wxxu32XVniHD/XyWjrgT3/K+n717soDc7EZjsLCsVWJ9e+dH3cHP7PI95+mnpSCD0Wx9zg81+E13l47Qn+xvHC/MqIDCv7CZIK78hLi5lW8zy+KGjdTlSzaAtHnyfEoywLn3BO71P3HLb4guxgRnGXMT/1yML7WPFuz/+rovYdZaxziIj5G0vKMHrrqZxBFyufmxXSh9JXhM2wPQdpZoTpkpG4I5xpgmFBNcRRirYSPWd2P1FyeXbXSY/4lEMDHbrtvWkyi6n9pxa0Bi9ji5v0l3YP6pU2lXc9oEHPL1fjWP0zbBT2bIUNFJ0LUQs3aHtQeblJ5UoXTM91N8I9JX4JTN678aQt1SWdRlJIuwP5ZXafAOb6dasSe2DO5X4KD0mxLOV3zNDkZKSs3k+Nsvufq6rbEZ3YXJikC30HgRlm8j3UMnnNp5UOO4vq80AP5NlYXmj7Z82EvSrtqGe5YNKjwYpG3k8SmdrnNHeAxowrPZu0B3NGSNOBi9jpZGZObpKXKNb1pU60JsfkPeufHfXQ76cxJk3vukyg2bCU3yERuY9aCJXjB5Kv63D/HmPgbbMwVt9Oe5dYGWzwXyXSJ69tyD186IT470b19R/lOlop5ZNHpoBoVi8PCLQNMskAoi95ovX2VcbyxInhgLphFcskTKeF0SmvFf7P2D2qIPcFb8wGrjoBv7RcH31crK+Xar8WkA0B9Jo00wOdWDqKFtm6+bsVobasi+J1P1g5oKhkASyhMwzUFQ4kiYCtGSqHKZgcX1G1Xa56kFx9XBsZvI700lv/orreScrEVyrFTGluF2uJNoG8iK2gPlneMJvlV7r5THWc7I76IKA/3jQE8u+v29ajmt5fdzbybt9vJvynAfce1Z1057Pd/6UYfE1DrFVYw16JZeZc6AcShrmOkh/fPMr0 YheU84rc DWTPNgfK+POQ84KNhX4//sYzBc9TptWIcu+u/rQFv2mzYoeakn+HuXh6zJNBDUpo+dJxd7BI2dbzNLDLeasBFWy+vVW3i2OL+gVrDDN1HErmq7gA+OBrOUBOZIvk+0Stb2wRvyOQNH5dVk6ipc50jRUcJF+2bQLWTUyUbGAoFiNdJP9AZFeiBtgFWq5lUqdDTM05Mt2FuLaXv1rAJeexC9ExZibF8XWkQg9l1bOcvn1qMyglImnl4/v+C32w5eQITRTKx0eOFkdBHBpo/WohQmvVLtX114W/HHb+fYj9Z/s4pb69iHLFhUnM3CRWL/ezxrQkytlWuUVESwGmzI90c0WFM6BG0eSgNVQZT0GoJ/dB9zOilRUcxwez43STGmEmBRqJTTUorILrNYVCdDmXD7xUF3rTiftXvxQ0o 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: On Mon, Apr 22, 2024 at 03:42:51PM +0800, zhenwei pi wrote: > 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 */ > +} > + Generally the preferred style is this: #ifdef ..... static inline unsigned int update_balloon_vm_stats(struct virtio_balloon *vb, unsigned int start) { .... } #else /* CONFIG_VM_EVENT_COUNTERS */ static inline unsigned int update_balloon_vm_stats(struct virtio_balloon *vb, unsigned int start) { return 0; } #endif however given it was a spaghetti of ifdefs even before that, the patch's ok I think. > +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