[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20221003154459.207538-1-longman@redhat.com>
Date: Mon, 3 Oct 2022 11:44:56 -0400
From: Waiman Long <longman@...hat.com>
To: Tejun Heo <tj@...nel.org>, Jens Axboe <axboe@...nel.dk>
Cc: cgroups@...r.kernel.org, linux-block@...r.kernel.org,
linux-kernel@...r.kernel.org, Ming Lei <ming.lei@...hat.com>,
Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Huang Ying <ying.huang@...el.com>,
Michal Koutný <mkoutny@...e.com>,
Waiman Long <longman@...hat.com>
Subject: [PATCH v7 0/3] blk-cgroup: Optimize blkcg_rstat_flush()
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.
v6:
- Add a missing free_percpu() into blkcg_css_free() in patch 3.
- Integrating the documentation patch 4 back into patch 3.
v5:
- Add a new patch 2 to eliminate the use of intermediate "ret"
variable in blkcg_css_alloc() to fix compilation warning reported
by kernel test robot.
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):
llist: Add a lock-less list variant terminated by a sentinel node
blk-cgroup: Return -ENOMEM directly in blkcg_css_alloc() error path
blk-cgroup: Optimize blkcg_rstat_flush()
block/blk-cgroup.c | 85 ++++++++++++++++++++++-----
block/blk-cgroup.h | 9 +++
include/linux/llist.h | 132 +++++++++++++++++++++++++++++++++++++++++-
lib/llist.c | 79 ++++++++++++++++++++++++-
4 files changed, 289 insertions(+), 16 deletions(-)
--
2.31.1
Powered by blists - more mailing lists