Skip to content

blktrace: output cgroup info

Shaohua Li linux-block lkml 5 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v5 Latest11 patches 1 replyIn review
  2. v412 patches 23 repliesSuperseded
  3. v312 patches 8 repliesSuperseded
Earlier versions · 2
VersionPostedPatchesRepliesStatus
v212 patches0 repliesSuperseded
v111 patches8 repliesSuperseded

Changes in v5 from the cover letter

- Add ack and refresh to latest -next

Patches in v5 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/11kernfs: use idr instead of ida to manage inode numberfs/kernfs/dir.c include/linux/kernfs.h+13 -60 replies
2/11kernfs: implement i_generationfs/kernfs/dir.c fs/kernfs/inode.c include/linux/kernfs.h+12 -10 replies
3/11kernfs: add an API to get kernfs node from inode numberfs/kernfs/dir.c fs/kernfs/kernfs-internal.h fs/kernfs/mount.c+69 -10 replies
4/11kernfs: don't set dentry->d_fsdatafs/kernfs/dir.c fs/kernfs/file.c fs/kernfs/inode.c +3 more+27 -310 replies
5/11kernfs: introduce kernfs_node_idfs/kernfs/dir.c fs/kernfs/file.c fs/kernfs/inode.c +3 more+21 -130 replies
6/11kernfs: add exportfs operationsfs/kernfs/mount.c include/linux/kernfs.h kernel/cgroup/cgroup.c+70 -10 replies
7/11cgroup: export fhandle info for a cgroupinclude/linux/cgroup.h+8 -00 replies
8/11blktrace: export cgroup info in traceinclude/uapi/linux/blktrace_api.h kernel/trace/blktrace.c+161 -730 replies
9/11block: always attach cgroup info into bioblock/blk-throttle.c include/linux/blk-cgroup.h+4 -60 replies
10/11blktrace: add an option to allow displaying cgroup pathfs/kernfs/mount.c include/linux/cgroup.h include/linux/kernfs.h +2 more+52 -10 replies
11/11block: use standard blktrace API to output cgroup info for debug notesblock/bfq-iosched.h block/blk-throttle.c block/cfq-iosched.c +2 more+35 -240 replies

Reviews trailers per patch

9 of 11 patches have a Reviewed-by or Acked-by.

PatchTejun HeoGreg Kroah-HartmanSteven Rostedt (VMware)
1/11A-b A-b
2/11A-b A-b
3/11A-b A-b
4/11A-b A-b
5/11A-b
6/11A-b
7/11A-b
8/11A-b
9/11A-b
10/11
11/11

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 3 reviewers.

Read the v5 thread

Cover letter [PATCH V5 00/11] blktrace: output cgroup info

From: Shaohua Li <[email protected]>

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 6 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

V4 -> V5:
- Add ack and refresh to latest -next

V3 -> V4:
- Address some issues pointed out by Tejun
- Fix build errors with latest -next tree

V2 -> V3:
- Uses 32 bits inode number
- Refresh to latest -next tree

V1 -> V2:
- Fix a bug in cgroup association
- Fix build errors reported by 0day
- Address some issues pointed out by Tejun

Shaohua Li (11):
kernfs: use idr instead of ida to manage inode number
kernfs: implement i_generation
kernfs: add an API to get kernfs node from inode number
kernfs: don't set dentry->d_fsdata
kernfs: introduce kernfs_node_id
kernfs: add exportfs operations
cgroup: export fhandle info for a cgroup
blktrace: export cgroup info in trace
block: always attach cgroup info into bio
blktrace: add an option to allow displaying cgroup path
block: use standard blktrace API to output cgroup info for debug notes

 block/bfq-iosched.h               |  13 +-
 block/blk-throttle.c              |  13 +-
 block/cfq-iosched.c               |  15 +--
 fs/kernfs/dir.c                   | 111 ++++++++++++----
 fs/kernfs/file.c                  |  10 +-
 fs/kernfs/inode.c                 |   9 +-
 fs/kernfs/kernfs-internal.h       |   9 ++
 fs/kernfs/mount.c                 |  94 ++++++++++++--
 fs/kernfs/symlink.c               |   6 +-
 include/linux/blk-cgroup.h        |   3 +
 include/linux/blktrace_api.h      |  13 +-
 include/linux/cgroup.h            |  16 ++-
 include/linux/kernfs.h            |  28 ++++-
 include/trace/events/writeback.h  |   2 +-
 include/uapi/linux/blktrace_api.h |   3 +
 kernel/cgroup/cgroup.c            |  15 ++-
 kernel/trace/blktrace.c           | 259 ++++++++++++++++++++++++++------------
 17 files changed, 467 insertions(+), 152 deletions(-)
Signature · 1 line
2.9.3