Re: [PATCH v4 4/5] pstore: add pmsg

From: Mark Salyzyn
Date: Wed Jan 28 2015 - 21:49:21 EST


On 01/13/2015 04:16 PM, Åukasz Stelmach wrote:
A secured user-space accessible pstore object. Writes
to /dev/pmsg0 are appended to the buffer, on reboot
the persistent contents are available in
/sys/fs/pstore/pmsg-ramoops-[ID].

One possible use is syslogd, or other daemon, can
write messages, then on reboot provides a means to
triage user-space activities leading up to a panic
as a companion to the pstore dmesg or console logs.

Signed-off-by: Mark Salyzyn <salyzyn@xxxxxxxxxxx>
---
I am not an expert but this smells like duplicating /dev/kmsg. If
I remember correctly since about Linux 3.5 /dev/kmsg is writable for the
user-space and every single process (modulo MAC/DAC) can log there. The
messages from user-space are preserved accross reboots as a part of the
kmsg/printk buffer anyway.

What is the advantege of pmsg0 over /dev/kmsg?

- Precious little user-space content goes to kmsg (otherwise you can ask why is there a syslogd?), there is a reason for this, user space is notorious for containing Personal Identifiable Information whereas kernel information does not.
- pmsg0 can take a lot of content (with a ramoops backend) and will not disrupt/DOS the kernel logs.
- State, Binary or packetized content can go to /dev/pmsg0 and not interfere with the text content in kmsg
- /dev/pmsg0 write is atomic
- /dev/pmsg0 is write only, there is no access to the live content _unless_ there is a reboot.
- Personal identification which abounds in user space could be placed into /dev/pmsg0, and there is no way except a reboot in order to extract the content, and then /sys/fs/pstore/pmsg-ramoops-0 can be deleted, or heavily MAC and DAC controlled to enforce protection (doing so to kmsg would be unlivable)

Sincerely -- Mark Salyzyn
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/