From: Shaohua Li <shli@kernel.org>
To: linux-kernel@vger.kernel.org, linux-block@vger.kernel.org
Cc: tj@kernel.org, gregkh@linuxfoundation.org, hch@lst.de,
axboe@fb.com, rostedt@goodmis.org, lizefan@huawei.com,
Kernel-team@fb.com, Shaohua Li <shli@fb.com>
Subject: [PATCH 00/11]blktrace: output cgroup info
Date: Fri, 2 Jun 2017 14:53:53 -0700 [thread overview]
Message-ID: <cover.1496432591.git.shli@fb.com> (raw)
From: Shaohua Li <shli@fb.com>
Hi,
Currently blktrace isn't cgroup aware. blktrace prints out task name of current
context, but the task of current context isn't always in the cgroup where the
BIO comes from. We can't use task name to find out IO cgroup. For example,
Writeback BIOs always comes from flusher thread but the BIOs are for different
blk cgroups. Request could be requeued and dispatched from completely different
tasks. MD/DM are another examples. This brings challenges if we want to use
blktrace for performance tunning with cgroup enabled.
This patchset try to fix the gap. We print out cgroup fhandle info in blktrace.
Userspace can use open_by_handle_at() syscall to find the cgroup by fhandle. Or
userspace can use name_to_handle_at() syscall to find fhandle for a cgroup and
use a BPF program to filter out blktrace for a specific cgroup.
The first 5 patches adds export operation handlers for kernfs, so userspace can
use open_by_handle_at/name_to_handle_at to a kernfs file. Later patches make
blktrace output cgroup info.
Thanks,
Shaohua
Shaohua Li (11):
kernfs: implement i_generation
kernfs: use idr instead of ida to manage inode number
kernfs: add an API to get kernfs node from inode number
kernfs: don't set dentry->d_fsdata
kernfs: add exportfs operations
cgroup: export fhandle info for a cgroup
blktrace: export cgroup info in trace
block: always attach cgroup info into bio
block: call __bio_free in bio_endio
blktrace: add an option to allow displying cgroup path
block: use standard blktrace API to output cgroup info for debug notes
arch/x86/kernel/cpu/intel_rdt_rdtgroup.c | 2 +-
block/bfq-iosched.h | 16 +-
block/bio-integrity.c | 1 +
block/bio.c | 1 +
block/blk-throttle.c | 13 +-
block/cfq-iosched.c | 15 +-
fs/kernfs/dir.c | 80 +++++++---
fs/kernfs/file.c | 6 +-
fs/kernfs/inode.c | 7 +-
fs/kernfs/kernfs-internal.h | 4 +
fs/kernfs/mount.c | 107 +++++++++++--
fs/kernfs/symlink.c | 6 +-
fs/sysfs/mount.c | 2 +-
include/linux/blk-cgroup.h | 16 +-
include/linux/blktrace_api.h | 12 +-
include/linux/cgroup-defs.h | 2 +
include/linux/cgroup.h | 14 ++
include/linux/kernfs.h | 23 ++-
include/uapi/linux/blktrace_api.h | 3 +
kernel/cgroup/cgroup.c | 18 ++-
kernel/trace/blktrace.c | 254 +++++++++++++++++++++----------
21 files changed, 430 insertions(+), 172 deletions(-)
--
2.9.3
next reply other threads:[~2017-06-02 21:54 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-02 21:53 Shaohua Li [this message]
2017-06-02 21:53 ` [PATCH 01/11] kernfs: implement i_generation Shaohua Li
2017-06-02 21:53 ` [PATCH 02/11] kernfs: use idr instead of ida to manage inode number Shaohua Li
2017-06-12 18:14 ` Tejun Heo
2017-06-02 21:53 ` [PATCH 03/11] kernfs: add an API to get kernfs node from " Shaohua Li
2017-06-02 22:03 ` Eduardo Valentin
2017-06-02 23:36 ` Shaohua Li
2017-06-12 18:20 ` Tejun Heo
2017-06-12 18:37 ` Tejun Heo
2017-06-02 21:53 ` [PATCH 04/11] kernfs: don't set dentry->d_fsdata Shaohua Li
2017-06-12 18:29 ` Tejun Heo
2017-06-02 21:53 ` [PATCH 05/11] kernfs: add exportfs operations Shaohua Li
2017-06-02 21:53 ` [PATCH 06/11] cgroup: export fhandle info for a cgroup Shaohua Li
2017-06-12 18:44 ` Tejun Heo
2017-06-02 21:54 ` [PATCH 07/11] blktrace: export cgroup info in trace Shaohua Li
2017-06-03 5:35 ` kbuild test robot
2017-06-02 21:54 ` [PATCH 08/11] block: always attach cgroup info into bio Shaohua Li
2017-06-12 18:49 ` Tejun Heo
2017-06-02 21:54 ` [PATCH 09/11] block: call __bio_free in bio_endio Shaohua Li
2017-06-02 21:54 ` [PATCH 10/11] blktrace: add an option to allow displying cgroup path Shaohua Li
2017-06-02 21:54 ` [PATCH 11/11] block: use standard blktrace API to output cgroup info for debug notes Shaohua Li
2017-06-03 1:09 ` kbuild test robot
2017-06-03 2:00 ` kbuild test robot
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=cover.1496432591.git.shli@fb.com \
--to=shli@kernel.org \
--cc=Kernel-team@fb.com \
--cc=axboe@fb.com \
--cc=gregkh@linuxfoundation.org \
--cc=hch@lst.de \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lizefan@huawei.com \
--cc=rostedt@goodmis.org \
--cc=shli@fb.com \
--cc=tj@kernel.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;
as well as URLs for NNTP newsgroup(s).