Skip to content
  1. May 08, 2012
    • Kay Sievers's avatar
      driver-core: extend dev_printk() to pass structured data · c4e00daa
      Kay Sievers authored
      
      
      Extends dev_printk() to attach a dictionary with a device identifier
      and the driver core subsystem name to logged messages, which makes
      dev_prink() reliable machine-readable. In addition to the printed
      plain text message, it creates these properties:
          SUBSYSTEM=     - the driver-core subsytem name
          DEVICE=
            b12:8        - block dev_t
            c127:3       - char dev_t
            n8           - netdev ifindex
            +sound:card0 - subsystem:devname
      
      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>
      c4e00daa
    • 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
  2. May 07, 2012
    • Kay Sievers's avatar
      printk: convert byte-buffer to variable-length record buffer · 7ff9554b
      Kay Sievers authored
      
      
      - Record-based stream instead of the traditional byte stream
        buffer. All records carry a 64 bit timestamp, the syslog facility
        and priority in the record header.
      
      - Records consume almost the same amount, sometimes less memory than
        the traditional byte stream buffer (if printk_time is enabled). The record
        header is 16 bytes long, plus some padding bytes at the end if needed.
        The byte-stream buffer needed 3 chars for the syslog prefix, 15 char for
        the timestamp and a newline.
      
      - Buffer management is based on message sequence numbers. When records
        need to be discarded, the reading heads move on to the next full
        record. Unlike the byte-stream buffer, no old logged lines get
        truncated or partly overwritten by new ones. Sequence numbers also
        allow consumers of the log stream to get notified if any message in
        the stream they are about to read gets discarded during the time
        of reading.
      
      - Better buffered IO support for KERN_CONT continuation lines, when printk()
        is called multiple times for a single line. The use of KERN_CONT is now
        mandatory to use continuation; a few places in the kernel need trivial fixes
        here. The buffering could possibly be extended to per-cpu variables to allow
        better thread-safety for multiple printk() invocations for a single line.
      
      - Full-featured syslog facility value support. Different facilities
        can tag their messages. All userspace-injected messages enforce a
        facility value > 0 now, to be able to reliably distinguish them from
        the kernel-generated messages. Independent subsystems like a
        baseband processor running its own firmware, or a kernel-related
        userspace process can use their own unique facility values. Multiple
        independent log streams can co-exist that way in the same
        buffer. All share the same global sequence number counter to ensure
        proper ordering (and interleaving) and to allow the consumers of the
        log to reliably correlate the events from different facilities.
      
      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>
      7ff9554b
    • Paul Gortmaker's avatar
      powerpc: fix compile fail in hugetlb cmdline parsing · 89528127
      Paul Gortmaker authored
      
      
      Commit 9fb48c74
      
          "params: add 3rd arg to option handler callback signature"
      
      added an extra arg to the function, but didn't catch all the use
      cases needing it, causing this compile fail in mpc85xx_defconfig:
      
       arch/powerpc/mm/hugetlbpage.c:316:4: error: passing argument 7 of
       'parse_args' from incompatible pointer type [-Werror]
      
       include/linux/moduleparam.h:317:12: note: expected
      	 'int (*)(char *, char *, const char *)' but argument is of type
      	 'int (*)(char *, char *)'
      
      This function has no need to printk out the "doing" value, so
      just add the arg as an "unused".
      
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Jim Cromie <jim.cromie@gmail.com>
      Cc: Jason Baron <jbaron@redhat.com>
      Cc: Becky Bruce <beckyb@kernel.crashing.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      89528127
    • Zhi Yong Wu's avatar
    • Greg Kroah-Hartman's avatar
      Revert "dynamic_debug: remove unneeded includes" · fef15d2f
      Greg Kroah-Hartman authored
      
      
      This reverts commit 04db6e5f.
      
      Odds are, we really don't want to revert all of these, and need to be
      more careful in the future to make sure we don't break the build of
      other arches.
      
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Cc: Jim Cromie <jim.cromie@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      fef15d2f
  3. May 05, 2012
  4. May 04, 2012
  5. May 02, 2012
  6. May 01, 2012
  7. Apr 30, 2012
Loading