Skip to content
  1. May 15, 2018
    • Vivien Didelot's avatar
      net: dsa: mv88e6xxx: add a stats setup function · 447b1bb8
      Vivien Didelot authored
      
      
      Now that the Global 1 specific setup function only setup the statistics
      unit, kill it in favor of a mv88e6xxx_stats_setup function.
      
      Signed-off-by: default avatarVivien Didelot <vivien.didelot@savoirfairelinux.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      447b1bb8
    • Vivien Didelot's avatar
      net: dsa: mv88e6xxx: add IEEE and IP mapping ops · 93e18d61
      Vivien Didelot authored
      
      
      All Marvell switch families except 88E6390 have direct registers in
      Global 1 for IEEE and IP priorities override mapping. The 88E6390 uses
      indirect tables instead.
      
      Add .ieee_pri_map and .ip_pri_map ops to distinct that and call them
      from a mv88e6xxx_pri_setup helper. Only non-6390 are concerned ATM.
      
      Signed-off-by: default avatarVivien Didelot <vivien.didelot@savoirfairelinux.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      93e18d61
    • Vivien Didelot's avatar
      net: dsa: mv88e6xxx: use helper for 6390 histogram · 408d2deb
      Vivien Didelot authored
      
      
      The Marvell 88E6390 model has its histogram mode bits moved in the
      Global 1 Control 2 register. Use the previously introduced
      mv88e6xxx_g1_ctl2_mask helper to set them.
      
      At the same time complete the documentation of the said register.
      
      Signed-off-by: default avatarVivien Didelot <vivien.didelot@savoirfairelinux.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      408d2deb
    • David S. Miller's avatar
      Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue · 23548dab
      David S. Miller authored
      
      
      Jeff Kirsher says:
      
      ====================
      40GbE Intel Wired LAN Driver Updates 2018-05-14
      
      This series contains updates to virtchnl, i40e and i40evf.
      
      Bruce cleans up whitespace and unnecessary parentheses in virtchnl.
      
      Jake does a number of stat cleanups in the i40e driver, including
      cleanup of code indentation, whitespace issues, remove duplicate stats,
      fix grammar in code comment and general spring cleaning of the
      statistics code.
      
      Patryk fixes an issue where we recalculate vectors left and vectors
      wanted but do not take into account the reduced number of queue pairs
      per VSI.
      
      Harshitha adds tx_busy stat to ethtool stats to track the number of
      times we return NETDEV_TX_BUSY to the stack during transmit.
      
      Paweł fixes a potential system crash when unloading the VF driver after
      a hardware reset.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      23548dab
    • David S. Miller's avatar
      Merge branch 'kernel-add-support-to-collect-hardware-logs-in-crash-recovery-kernel' · 42b956fd
      David S. Miller authored
      
      
      Rahul Lakkireddy says:
      
      ====================
      kernel: add support to collect hardware logs in crash recovery kernel
      
      On production servers running variety of workloads over time, kernel
      panic can happen sporadically after days or even months. It is
      important to collect as much debug logs as possible to root cause
      and fix the problem, that may not be easy to reproduce. Snapshot of
      underlying hardware/firmware state (like register dump, firmware
      logs, adapter memory, etc.), at the time of kernel panic will be very
      helpful while debugging the culprit device driver.
      
      This series of patches add new generic framework that enable device
      drivers to collect device specific snapshot of the hardware/firmware
      state of the underlying device in the crash recovery kernel. In crash
      recovery kernel, the collected logs are added as elf notes to
      /proc/vmcore, which is copied by user space scripts for post-analysis.
      
      The sequence of actions done by device drivers to append their device
      specific hardware/firmware logs to /proc/vmcore are as follows:
      
      1. During probe (before hardware is initialized), device drivers
      register to the vmcore module (via vmcore_add_device_dump()), with
      callback function, along with buffer size and log name needed for
      firmware/hardware log collection.
      
      2. vmcore module allocates the buffer with requested size. It adds
      an elf note and invokes the device driver's registered callback
      function.
      
      3. Device driver collects all hardware/firmware logs into the buffer
      and returns control back to vmcore module.
      
      The device specific hardware/firmware logs can be seen as elf notes
      with note type 0x700, as shown below:
      
      Displaying notes found at file offset 0x00001000 with length 0x040032c0:
        Owner                 Data size	Description
        LINUX                0x02000fec	Unknown note type: (0x00000700)
        LINUX                0x02000fec	Unknown note type: (0x00000700)
        CORE                 0x00000150	NT_PRSTATUS (prstatus structure)
        CORE                 0x00000150	NT_PRSTATUS (prstatus structure)
        CORE                 0x00000150	NT_PRSTATUS (prstatus structure)
        CORE                 0x00000150	NT_PRSTATUS (prstatus structure)
        CORE                 0x00000150	NT_PRSTATUS (prstatus structure)
        CORE                 0x00000150	NT_PRSTATUS (prstatus structure)
        CORE                 0x00000150	NT_PRSTATUS (prstatus structure)
        CORE                 0x00000150	NT_PRSTATUS (prstatus structure)
        VMCOREINFO           0x00000785	Unknown note type: (0x00000000)
      
      Patch 1 adds API to vmcore module to allow drivers to register callback
      to collect the device specific hardware/firmware logs.  The logs will
      be added to /proc/vmcore as elf notes.
      
      Patch 2 updates read and mmap logic to append device specific hardware/
      firmware logs as elf notes.
      
      Patch 3 shows a cxgb4 driver example using the API to collect
      hardware/firmware logs in crash recovery kernel, before hardware is
      initialized.
      
      Thanks,
      Rahul
      
      ---
      v8:
      - Added missing linux/types.h header include.
      - Removed __vmcore_add_device_dump().
      
      v7:
      - Removed "CHELSIO" vendor identifier in Elf Note name. Instead,
        writing "LINUX".
      - Moved vmcoredd_header to new file include/uapi/linux/vmcore.h
      - Reworked vmcoredd_header to include Elf Note as part of the header
        itself.
      - Removed vmcoredd_get_note_size().
      - Renamed vmcoredd_write_note() to vmcoredd_write_header().
      - Replaced all "unsigned long" with "unsigned int" for device dump
        size since max size of Elf Word is u32.
      
      v6:
      - Reworked device dump elf note name to contain vendor identifier.
      - Added vmcoredd_header that precedes actual dump in the Elf Note.
      - Device dump's name is moved inside vmcoredd_header.
      - Added "CHELSIO" string as vendor identifier in the Elf Note name
        for cxgb4 device dumps.
      
      v5:
      - Removed enabling CONFIG_PROC_VMCORE_DEVICE_DUMP by default and
        updated help message.
      
      v4:
      - Made __vmcore_add_device_dump() static.
      - Moved compile check to define vmcore_add_device_dump() to
        crash_dump.h to fix compilation when vmcore.c is not compiled in.
      - Convert ---help--- to help in Kconfig as indicated by checkpatch.
      - Rebased to tip.
      
      v3:
      - Dropped sysfs crashdd module.
      - Exported dumps as elf notes. Suggested by Eric Biederman
        <ebiederm@xmission.com>.  Added as patch 2 in this version.
      - Added CONFIG_PROC_VMCORE_DEVICE_DUMP to allow configuring device
        dump support.
      - Moved logic related to adding dumps from crashdd to vmcore module.
      - Rename all crashdd* to vmcoredd*.
      - Updated comments.
      
      v2:
      - Added ABI Documentation for crashdd.
      - Directly use octal permission instead of macro.
      
      Changes since rfc v2:
      - Moved exporting crashdd from procfs to sysfs. Suggested by
        Stephen Hemminger <stephen@networkplumber.org>
      - Moved code from fs/proc/crashdd.c to fs/crashdd/ directory.
      - Replaced all proc API with sysfs API and updated comments.
      - Calling driver callback before creating the binary file under
        crashdd sysfs.
      - Changed binary dump file permission from S_IRUSR to S_IRUGO.
      - Changed module name from CRASH_DRIVER_DUMP to CRASH_DEVICE_DUMP.
      
      rfc v2:
      - Collecting logs in 2nd kernel instead of during kernel panic.
        Suggested by Eric Biederman <ebiederm@xmission.com>.
      - Added new crashdd module that exports /proc/crashdd/ containing
        driver's registered hardware/firmware logs in patch 1.
      - Replaced the API to allow drivers to register their hardware/firmware
        log collect routine in crash recovery kernel in patch 1.
      - Updated patch 2 to use the new API in patch 1.
      ====================
      
      Acked-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      42b956fd
    • Rahul Lakkireddy's avatar
      cxgb4: collect hardware dump in second kernel · 1dde532d
      Rahul Lakkireddy authored
      
      
      Register callback to collect hardware/firmware dumps in second kernel
      before hardware/firmware is initialized. The dumps for each device
      will be available as elf notes in /proc/vmcore in second kernel.
      
      Signed-off-by: default avatarRahul Lakkireddy <rahul.lakkireddy@chelsio.com>
      Signed-off-by: default avatarGanesh Goudar <ganeshgr@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1dde532d
    • Rahul Lakkireddy's avatar
      vmcore: append device dumps to vmcore as elf notes · 7efe48df
      Rahul Lakkireddy authored
      
      
      Update read and mmap logic to append device dumps as additional notes
      before the other elf notes. We add device dumps before other elf notes
      because the other elf notes may not fill the elf notes buffer
      completely and we will end up with zero-filled data between the elf
      notes and the device dumps. Tools will then try to decode this
      zero-filled data as valid notes and we don't want that. Hence, adding
      device dumps before the other elf notes ensure that zero-filled data
      can be avoided. This also ensures that the device dumps and the
      other elf notes can be properly mmaped at page aligned address.
      
      Incorporate device dump size into the total vmcore size. Also update
      offsets for other program headers after the device dumps are added.
      
      Suggested-by: default avatarEric Biederman <ebiederm@xmission.com&gt;.>
      Signed-off-by: default avatarRahul Lakkireddy <rahul.lakkireddy@chelsio.com>
      Signed-off-by: default avatarGanesh Goudar <ganeshgr@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7efe48df
    • Rahul Lakkireddy's avatar
      vmcore: add API to collect hardware dump in second kernel · 2724273e
      Rahul Lakkireddy authored
      
      
      The sequence of actions done by device drivers to append their device
      specific hardware/firmware logs to /proc/vmcore are as follows:
      
      1. During probe (before hardware is initialized), device drivers
      register to the vmcore module (via vmcore_add_device_dump()), with
      callback function, along with buffer size and log name needed for
      firmware/hardware log collection.
      
      2. vmcore module allocates the buffer with requested size. It adds
      an Elf note and invokes the device driver's registered callback
      function.
      
      3. Device driver collects all hardware/firmware logs into the buffer
      and returns control back to vmcore module.
      
      Ensure that the device dump buffer size is always aligned to page size
      so that it can be mmaped.
      
      Also, rename alloc_elfnotes_buf() to vmcore_alloc_buf() to make it more
      generic and reserve NT_VMCOREDD note type to indicate vmcore device
      dump.
      
      Suggested-by: default avatarEric Biederman <ebiederm@xmission.com&gt;.>
      Signed-off-by: default avatarRahul Lakkireddy <rahul.lakkireddy@chelsio.com>
      Signed-off-by: default avatarGanesh Goudar <ganeshgr@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2724273e
  2. May 14, 2018
  3. May 12, 2018