Re: [RFC v3 8/9] kmsg: add predefined _PID, _TID, _COMM keywords to kmsg* log dict
flat view
From: Andy Lutomirski <luto@amacapital.net>
Date: 2015-10-20 18:20:10
Also in:
lkml
On Tue, Oct 20, 2015 at 4:16 AM, Paul Osmialowski [off-list ref] wrote:
Hi Andy, On Mon, 19 Oct 2015, Andy Lutomirski wrote:quoted
On Mon, Oct 19, 2015 at 5:58 AM, Paul Osmialowski [off-list ref] wrote:quoted
From: Marcin Niesluchowski <redacted> kmsg* devices write operation wrote no dict along with message Due to usage of kmsg devices in userspace dict has been added identifying pid, tid and comm of writing process.Does this affect even the normal /dev/kmsg?Yes.
Is this okay? Comm at least is a bit odd.
quoted
quoted
-static int kmsg_sys_write(int minor, int level, const char *fmt, ...) +static size_t set_kmsg_dict(char *buf) +{ + size_t len; + + len = sprintf(buf, "_PID=%d", task_tgid_nr(current)) + 1; + len += sprintf(buf + len, "_TID=%d", task_pid_nr(current)) + 1; + memcpy(buf + len, "_COMM=", 6); + len += 6; + get_task_comm(buf + len, current); + while (buf[len] != '\0') + len++;len += strlen(buf); ? Is it obvious for some reason that this doesn't overflow buf?KMSG_DICT_MAX_LEN sets architecture-intepentent max size.
And how many things are written and what asserts that it's big enough?
quoted
Why is task_pid_nr acceptable here? Isn't this intended for use in namespaces?task_tgid_nr - process id (pid as seen in userspace), task_pid_nr - thread id
These are the ids as seen by the global namespace. If the goal is to create one of these nodes in some other namespace, then this is the wrong thing to do. --Andy