From: Waiman Long <longman-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Jens Axboe <axboe-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>
Cc: cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-block-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
"Ming Lei" <ming.lei-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
"Andy Shevchenko"
<andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>,
"Andrew Morton"
<akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>,
"Michal Koutný" <mkoutny-IBi9RG/b67k@public.gmane.org>,
"Hillf Danton" <hdanton-k+cT0dCbe1g@public.gmane.org>,
"Waiman Long" <longman-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Subject: [PATCH v9 0/3] blk-cgroup: Optimize blkcg_rstat_flush()
Date: Fri, 4 Nov 2022 14:20:47 -0400 [thread overview]
Message-ID: <20221104182050.342908-1-longman@redhat.com> (raw)
v9:
- Remove patch "llist: Allow optional sentinel node terminated lockless
list" for now. This will be done as a follow-up patch.
- Add a new lqueued field to blkg_iostat_set to store the status of
whether lnode is in a lockless list.
- Add a new patch 3 to speed up the freeing of blkcg by flushing out
the rstat lockless lists at blkcg offline time.
v8:
- Update the llist patch to make existing llist functions and macros
work for both NULL and sentinel terminated lockless list as much
as possible and leave only the initialization and removal functions
to have a sentinel terminated llist variants.
v7:
- Drop patch 1 ("blk-cgroup: Correctly free percpu iostat_cpu in blkg
on error exit") as it is found to be unnecessary.
- Add a new llist patch to provide a lockless list variant terminated
by a sentinel node.
- Modified patch 3 to use the new sllist API and move percpu_ref_put()
later in the blkcg_rstat_flush() loop to prevent potential
use-after-free problem.
This patch series improves blkcg_rstat_flush() performance by eliminating
unnecessary blkg enumeration and flush operations for those blkg's and
blkg_iostat_set's that haven't been updated since the last flush.
Waiman Long (3):
blk-cgroup: Return -ENOMEM directly in blkcg_css_alloc() error path
blk-cgroup: Optimize blkcg_rstat_flush()
blk-cgroup: Flush stats at blkgs destruction path
block/blk-cgroup.c | 103 +++++++++++++++++++++++++++++++++++------
block/blk-cgroup.h | 10 ++++
include/linux/cgroup.h | 1 +
kernel/cgroup/rstat.c | 20 ++++++++
4 files changed, 119 insertions(+), 15 deletions(-)
--
2.31.1
next reply other threads:[~2022-11-04 18:20 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-04 18:20 Waiman Long [this message]
2022-11-04 18:20 ` [PATCH v9 1/3] blk-cgroup: Return -ENOMEM directly in blkcg_css_alloc() error path Waiman Long
[not found] ` <20221104182050.342908-1-longman-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2022-11-04 18:20 ` [PATCH v9 2/3] blk-cgroup: Optimize blkcg_rstat_flush() Waiman Long
2022-11-04 18:20 ` [PATCH v9 3/3] blk-cgroup: Flush stats at blkgs destruction path Waiman Long
[not found] ` <20221104182050.342908-4-longman-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2022-11-04 20:00 ` Tejun Heo
2022-11-04 20:12 ` Waiman Long
[not found] ` <84fd6656-d133-b9df-c39e-fbb3a1f4a873-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2022-11-04 20:13 ` Tejun Heo
2022-11-04 20:21 ` Waiman Long
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221104182050.342908-1-longman@redhat.com \
--to=longman-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
--cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
--cc=andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
--cc=axboe-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org \
--cc=cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=hdanton-k+cT0dCbe1g@public.gmane.org \
--cc=linux-block-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=ming.lei-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=mkoutny-IBi9RG/b67k@public.gmane.org \
--cc=tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox