* [PATCH] ext4: add sysfs attr /sys/fs/ext4/<disk>/journal_task
@ 2019-02-04 10:17 Konstantin Khlebnikov
2019-02-21 16:52 ` Theodore Y. Ts'o
0 siblings, 1 reply; 2+ messages in thread
From: Konstantin Khlebnikov @ 2019-02-04 10:17 UTC (permalink / raw)
To: linux-fsdevel, Andreas Dilger, linux-ext4, Theodore Ts'o,
linux-kernel
This is useful for moving journal thread into cgroup or
for tracing it with ftrace/perf/blktrace.
For now the only way is `pgrep jbd2/$DISK` but this is not reliable:
name may be longer than "comm" limit and any task could mock it.
Attribute shows pid in current pid-namespace or 0 if task is unreachable.
Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
---
Documentation/ABI/testing/sysfs-fs-ext4 | 7 +++++++
fs/ext4/sysfs.c | 13 +++++++++++++
2 files changed, 20 insertions(+)
diff --git a/Documentation/ABI/testing/sysfs-fs-ext4 b/Documentation/ABI/testing/sysfs-fs-ext4
index c631253cf85c..78604db56279 100644
--- a/Documentation/ABI/testing/sysfs-fs-ext4
+++ b/Documentation/ABI/testing/sysfs-fs-ext4
@@ -109,3 +109,10 @@ Description:
write operation (since a 4k random write might turn
into a much larger write due to the zeroout
operation).
+
+What: /sys/fs/ext4/<disk>/journal_task
+Date: February 2019
+Contact: "Theodore Ts'o" <tytso@mit.edu>
+Description:
+ This file is read-only and shows the pid of journal thread in
+ current pid-namespace or 0 if task is unreachable.
diff --git a/fs/ext4/sysfs.c b/fs/ext4/sysfs.c
index 9212a026a1f1..60085b2e41ed 100644
--- a/fs/ext4/sysfs.c
+++ b/fs/ext4/sysfs.c
@@ -30,6 +30,7 @@ typedef enum {
attr_feature,
attr_pointer_ui,
attr_pointer_atomic,
+ attr_journal_task,
} attr_id_t;
typedef enum {
@@ -125,6 +126,14 @@ static ssize_t trigger_test_error(struct ext4_sb_info *sbi,
return count;
}
+static ssize_t journal_task_show(struct ext4_sb_info *sbi, char *buf)
+{
+ if (!sbi->s_journal)
+ return -ESRCH;
+ return snprintf(buf, PAGE_SIZE, "%d\n",
+ task_pid_vnr(sbi->s_journal->j_task));
+}
+
#define EXT4_ATTR(_name,_mode,_id) \
static struct ext4_attr ext4_attr_##_name = { \
.attr = {.name = __stringify(_name), .mode = _mode }, \
@@ -188,6 +197,7 @@ EXT4_RW_ATTR_SBI_UI(msg_ratelimit_burst, s_msg_ratelimit_state.burst);
EXT4_RO_ATTR_ES_UI(errors_count, s_error_count);
EXT4_ATTR(first_error_time, 0444, first_error_time);
EXT4_ATTR(last_error_time, 0444, last_error_time);
+EXT4_ATTR(journal_task, 0444, journal_task);
static unsigned int old_bump_val = 128;
EXT4_ATTR_PTR(max_writeback_mb_bump, 0444, pointer_ui, &old_bump_val);
@@ -217,6 +227,7 @@ static struct attribute *ext4_attrs[] = {
ATTR_LIST(errors_count),
ATTR_LIST(first_error_time),
ATTR_LIST(last_error_time),
+ ATTR_LIST(journal_task),
NULL,
};
@@ -304,6 +315,8 @@ static ssize_t ext4_attr_show(struct kobject *kobj,
return print_tstamp(buf, sbi->s_es, s_first_error_time);
case attr_last_error_time:
return print_tstamp(buf, sbi->s_es, s_last_error_time);
+ case attr_journal_task:
+ return journal_task_show(sbi, buf);
}
return 0;
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] ext4: add sysfs attr /sys/fs/ext4/<disk>/journal_task
2019-02-04 10:17 [PATCH] ext4: add sysfs attr /sys/fs/ext4/<disk>/journal_task Konstantin Khlebnikov
@ 2019-02-21 16:52 ` Theodore Y. Ts'o
0 siblings, 0 replies; 2+ messages in thread
From: Theodore Y. Ts'o @ 2019-02-21 16:52 UTC (permalink / raw)
To: Konstantin Khlebnikov
Cc: linux-fsdevel, Andreas Dilger, linux-ext4, linux-kernel
On Mon, Feb 04, 2019 at 01:17:43PM +0300, Konstantin Khlebnikov wrote:
> This is useful for moving journal thread into cgroup or
> for tracing it with ftrace/perf/blktrace.
>
> For now the only way is `pgrep jbd2/$DISK` but this is not reliable:
> name may be longer than "comm" limit and any task could mock it.
>
> Attribute shows pid in current pid-namespace or 0 if task is unreachable.
>
> Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Thanks, applied with one change; if the file system does not have a
journal, reading the /sys/fs/ext4/<disk>/journal_task will return
"<none>" instead of returning a ESRCH error.
- Ted
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-02-21 16:53 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-04 10:17 [PATCH] ext4: add sysfs attr /sys/fs/ext4/<disk>/journal_task Konstantin Khlebnikov
2019-02-21 16:52 ` Theodore Y. Ts'o
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).