• Kay Sievers's avatar
    kmsg: export printk records to the /dev/kmsg interface · e11fea92
    Kay Sievers authored
    Support for multiple concurrent readers of /dev/kmsg, with read(),
    seek(), poll() support. Output of message sequence numbers, to allow
    userspace log consumers to reliably reconnect and reconstruct their
    state at any given time. After open("/dev/kmsg"), read() always
    returns *all* buffered records. If only future messages should be
    read, SEEK_END can be used. In case records get overwritten while
    /dev/kmsg is held open, or records get faster overwritten than they
    are read, the next read() will return -EPIPE and the current reading
    position gets updated to the next available record. The passed
    sequence numbers allow the log consumer to calculate the amount of
    lost messages.
    
      [root@mop ~]# cat /dev/kmsg
      5,0,0;Linux version 3.4.0-rc1+ (kay@mop) (gcc version 4.7.0 20120315 ...
      6,159,423091;ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
      7,160,424069;pci_root PNP0A03:00: host bridge window [io  0x0000-0x0cf7] (ignored)
       SUBSYSTEM=acpi
       DEVICE=+acpi:PNP0A03:00
      6,339,5140900;NET: Registered protocol family 10
      30,340,5690716;udevd[80]: starting version 181
      6,341,6081421;FDC 0 is a S82078B
      6,345,6154686;microcode: CPU0 sig=0x623, pf=0x0, revision=0x0
      7,346,6156968;sr 1:0:0:0: Attached scsi CD-ROM sr0
       SUBSYSTEM=scsi
       DEVICE=+scsi:1:0:0:0
      6,347,6289375;microcode: CPU1 sig=0x623, pf=0x0, revision=0x0
    
    Cc: Karel Zak <kzak@redhat.com>
    Tested-by: default avatarWilliam Douglas <william.douglas@intel.com>
    Signed-off-by: default avatarKay Sievers <kay@vrfy.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    e11fea92
mem.c 19 KB