The patch titled Subject: proc: use seq_puts() everywhere has been added to the -mm tree. Its filename is proc-use-seq_puts-everywhere.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/proc-use-seq_puts-everywhere.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/proc-use-seq_puts-everywhere.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Alexey Dobriyan <adobriyan@xxxxxxxxx> Subject: proc: use seq_puts() everywhere seq_printf() without format specifiers == faster seq_puts() Link: http://lkml.kernel.org/r/20190114200545.GC9680@avx2 Signed-off-by: Alexey Dobriyan <adobriyan@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- fs/proc/array.c | 16 ++++++++-------- fs/proc/base.c | 2 +- fs/proc/task_nommu.c | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) --- a/fs/proc/array.c~proc-use-seq_puts-everywhere +++ a/fs/proc/array.c @@ -343,28 +343,28 @@ static inline void task_seccomp(struct s #ifdef CONFIG_SECCOMP seq_put_decimal_ull(m, "\nSeccomp:\t", p->seccomp.mode); #endif - seq_printf(m, "\nSpeculation_Store_Bypass:\t"); + seq_puts(m, "\nSpeculation_Store_Bypass:\t"); switch (arch_prctl_spec_ctrl_get(p, PR_SPEC_STORE_BYPASS)) { case -EINVAL: - seq_printf(m, "unknown"); + seq_puts(m, "unknown"); break; case PR_SPEC_NOT_AFFECTED: - seq_printf(m, "not vulnerable"); + seq_puts(m, "not vulnerable"); break; case PR_SPEC_PRCTL | PR_SPEC_FORCE_DISABLE: - seq_printf(m, "thread force mitigated"); + seq_puts(m, "thread force mitigated"); break; case PR_SPEC_PRCTL | PR_SPEC_DISABLE: - seq_printf(m, "thread mitigated"); + seq_puts(m, "thread mitigated"); break; case PR_SPEC_PRCTL | PR_SPEC_ENABLE: - seq_printf(m, "thread vulnerable"); + seq_puts(m, "thread vulnerable"); break; case PR_SPEC_DISABLE: - seq_printf(m, "globally mitigated"); + seq_puts(m, "globally mitigated"); break; default: - seq_printf(m, "vulnerable"); + seq_puts(m, "vulnerable"); break; } seq_putc(m, '\n'); --- a/fs/proc/base.c~proc-use-seq_puts-everywhere +++ a/fs/proc/base.c @@ -456,7 +456,7 @@ static int proc_pid_schedstat(struct seq struct pid *pid, struct task_struct *task) { if (unlikely(!sched_info_on())) - seq_printf(m, "0 0 0\n"); + seq_puts(m, "0 0 0\n"); else seq_printf(m, "%llu %llu %lu\n", (unsigned long long)task->se.sum_exec_runtime, --- a/fs/proc/task_nommu.c~proc-use-seq_puts-everywhere +++ a/fs/proc/task_nommu.c @@ -178,7 +178,7 @@ static int nommu_vma_show(struct seq_fil seq_file_path(m, file, ""); } else if (mm && is_stack(vma)) { seq_pad(m, ' '); - seq_printf(m, "[stack]"); + seq_puts(m, "[stack]"); } seq_putc(m, '\n'); _ Patches currently in -mm which might be from adobriyan@xxxxxxxxx are proc-fix-proc-net-after-setns2.patch proc-fix-proc-net-after-setns2-v2.patch mm-shuffle-gfp_-flags.patch proc-return-exit-code-4-for-skipped-tests.patch proc-read-kernel-cpu-stat-pointer-once.patch proc-calculate-end-pointer-for-proc-lookup-at-compile-time.patch proc-use-seq_puts-everywhere.patch