08 Oct, 2016

3 commits

  • COMPACT_PARTIAL has historically meant that compaction returned after
    doing some work without fully compacting a zone. It however didn't
    distinguish if compaction terminated because it succeeded in creating
    the requested high-order page. This has changed recently and now we
    only return COMPACT_PARTIAL when compaction thinks it succeeded, or the
    high-order watermark check in compaction_suitable() passes and no
    compaction needs to be done.

    So at this point we can make the return value clearer by renaming it to
    COMPACT_SUCCESS. The next patch will remove some redundant tests for
    success where compaction just returned COMPACT_SUCCESS.

    Link: http://lkml.kernel.org/r/20160810091226.6709-4-vbabka@suse.cz
    Signed-off-by: Vlastimil Babka
    Tested-by: Lorenzo Stoakes
    Acked-by: Michal Hocko
    Cc: Mel Gorman
    Cc: Joonsoo Kim
    Cc: David Rientjes
    Cc: Rik van Riel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vlastimil Babka
     
  • Pull trivial updates from Jiri Kosina:
    "The usual rocket science from the trivial tree"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial:
    tracing/syscalls: fix multiline in error message text
    lib/Kconfig.debug: fix DEBUG_SECTION_MISMATCH description
    doc: vfs: fix fadvise() sycall name
    x86/entry: spell EBX register correctly in documentation
    securityfs: fix securityfs_create_dir comment
    irq: Fix typo in tracepoint.xml

    Linus Torvalds
     
  • Pull HID updates from Jiri Kosina:

    - Integrated Sensor Hub support (Cherrytrail+) from Srinivas Pandruvada

    - Big cleanup of Wacom driver; namely it's now using devres, and the
    standardized LED API so that libinput doesn't need to have root
    access any more, with substantial amount of other cleanups
    piggy-backing on top. All this from Benjamin Tissoires

    - Report descriptor parsing would now ignore and out-of-range System
    controls in case of the application actually being System Control.
    This fixes quite some issues with several devices, and allows us to
    remove a few ->report_fixup callbacks. From Benjamin Tissoires

    - ... a lot of other assorted small fixes and device ID additions

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (76 commits)
    HID: add missing \n to end of dev_warn messages
    HID: alps: fix multitouch cursor issue
    HID: hid-logitech: Documentation updates/corrections
    HID: hid-logitech: Improve Wingman Formula Force GP support
    HID: hid-logitech: Rewrite of descriptor for all DF wheels
    HID: hid-logitech: Compute combined pedals value
    HID: hid-logitech: Add combined pedal support Logitech wheels
    HID: hid-logitech: Introduce control for combined pedals feature
    HID: sony: Update copyright and add Dualshock 4 rate control note
    HID: sony: Defer the initial USB Sixaxis output report
    HID: sony: Relax duplicate checking for USB-only devices
    Revert "HID: microsoft: fix invalid rdesc for 3k kbd"
    HID: alps: fix error return code in alps_input_configured()
    HID: alps: fix stick device not working after resume
    HID: support for keyboard - Corsair STRAFE
    HID: alps: Fix memory leak
    HID: uclogic: Add support for UC-Logic TWHA60 v3
    HID: uclogic: Override constant descriptors
    HID: uclogic: Support UGTizer GP0610 partially
    HID: uclogic: Add support for several more tablets
    ...

    Linus Torvalds
     

07 Oct, 2016

1 commit

  • Pull f2fs updates from Jaegeuk Kim:
    "In this round, we've investigated how f2fs deals with errors given by
    our fault injection facility. With this, we could fix several corner
    cases. And, in order to improve the performance, we set inline_dentry
    by default and enhance the exisiting discard issue flow. In addition,
    we added f2fs_migrate_page for better memory management.

    Enhancements:
    - set inline_dentry by default
    - improve discard issue flow
    - add more fault injection cases in f2fs
    - allow block preallocation for encrypted files
    - introduce migrate_page callback function
    - avoid truncating the next direct node block at every checkpoint

    Bug fixes:
    - set page flag correctly between write_begin and write_end
    - missing error handling cases detected by fault injection
    - preallocate blocks regarding to 4KB alignement correctly
    - dentry and filename handling of encryption
    - lost xattrs of directories"

    * tag 'for-f2fs-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (69 commits)
    f2fs: introduce update_ckpt_flags to clean up
    f2fs: don't submit irrelevant page
    f2fs: fix to commit bio cache after flushing node pages
    f2fs: introduce get_checkpoint_version for cleanup
    f2fs: remove dead variable
    f2fs: remove redundant io plug
    f2fs: support checkpoint error injection
    f2fs: fix to recover old fault injection config in ->remount_fs
    f2fs: do fault injection initialization in default_options
    f2fs: remove redundant value definition
    f2fs: support configuring fault injection per superblock
    f2fs: adjust display format of segment bit
    f2fs: remove dirty inode pages in error path
    f2fs: do not unnecessarily null-terminate encrypted symlink data
    f2fs: handle errors during recover_orphan_inodes
    f2fs: avoid gc in cp_error case
    f2fs: should put_page for summary page
    f2fs: assign return value in f2fs_gc
    f2fs: add customized migrate_page callback
    f2fs: introduce cp_lock to protect updating of ckpt_flags
    ...

    Linus Torvalds
     

06 Oct, 2016

1 commit

  • Pull networking updates from David Miller:

    1) BBR TCP congestion control, from Neal Cardwell, Yuchung Cheng and
    co. at Google. https://lwn.net/Articles/701165/

    2) Do TCP Small Queues for retransmits, from Eric Dumazet.

    3) Support collect_md mode for all IPV4 and IPV6 tunnels, from Alexei
    Starovoitov.

    4) Allow cls_flower to classify packets in ip tunnels, from Amir Vadai.

    5) Support DSA tagging in older mv88e6xxx switches, from Andrew Lunn.

    6) Support GMAC protocol in iwlwifi mwm, from Ayala Beker.

    7) Support ndo_poll_controller in mlx5, from Calvin Owens.

    8) Move VRF processing to an output hook and allow l3mdev to be
    loopback, from David Ahern.

    9) Support SOCK_DESTROY for UDP sockets. Also from David Ahern.

    10) Congestion control in RXRPC, from David Howells.

    11) Support geneve RX offload in ixgbe, from Emil Tantilov.

    12) When hitting pressure for new incoming TCP data SKBs, perform a
    partial rathern than a full purge of the OFO queue (which could be
    huge). From Eric Dumazet.

    13) Convert XFRM state and policy lookups to RCU, from Florian Westphal.

    14) Support RX network flow classification to igb, from Gangfeng Huang.

    15) Hardware offloading of eBPF in nfp driver, from Jakub Kicinski.

    16) New skbmod packet action, from Jamal Hadi Salim.

    17) Remove some inefficiencies in snmp proc output, from Jia He.

    18) Add FIB notifications to properly propagate route changes to
    hardware which is doing forwarding offloading. From Jiri Pirko.

    19) New dsa driver for qca8xxx chips, from John Crispin.

    20) Implement RFC7559 ipv6 router solicitation backoff, from Maciej
    Żenczykowski.

    21) Add L3 mode to ipvlan, from Mahesh Bandewar.

    22) Support 802.1ad in mlx4, from Moshe Shemesh.

    23) Support hardware LRO in mediatek driver, from Nelson Chang.

    24) Add TC offloading to mlx5, from Or Gerlitz.

    25) Convert various drivers to ethtool ksettings interfaces, from
    Philippe Reynes.

    26) TX max rate limiting for cxgb4, from Rahul Lakkireddy.

    27) NAPI support for ath10k, from Rajkumar Manoharan.

    28) Support XDP in mlx5, from Rana Shahout and Saeed Mahameed.

    29) UDP replicast support in TIPC, from Richard Alpe.

    30) Per-queue statistics for qed driver, from Sudarsana Reddy Kalluru.

    31) Support BQL in thunderx driver, from Sunil Goutham.

    32) TSO support in alx driver, from Tobias Regnery.

    33) Add stream parser engine and use it in kcm.

    34) Support async DHCP replies in ipconfig module, from Uwe
    Kleine-König.

    35) DSA port fast aging for mv88e6xxx driver, from Vivien Didelot.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1715 commits)
    mlxsw: switchx2: Fix misuse of hard_header_len
    mlxsw: spectrum: Fix misuse of hard_header_len
    net/faraday: Stop NCSI device on shutdown
    net/ncsi: Introduce ncsi_stop_dev()
    net/ncsi: Rework the channel monitoring
    net/ncsi: Allow to extend NCSI request properties
    net/ncsi: Rework request index allocation
    net/ncsi: Don't probe on the reserved channel ID (0x1f)
    net/ncsi: Introduce NCSI_RESERVED_CHANNEL
    net/ncsi: Avoid unused-value build warning from ia64-linux-gcc
    net: Add netdev all_adj_list refcnt propagation to fix panic
    net: phy: Add Edge-rate driver for Microsemi PHYs.
    vmxnet3: Wake queue from reset work
    i40e: avoid NULL pointer dereference and recursive errors on early PCI error
    qed: Add RoCE ll2 & GSI support
    qed: Add support for memory registeration verbs
    qed: Add support for QP verbs
    qed: PD,PKEY and CQ verb support
    qed: Add support for RoCE hw init
    qede: Add qedr framework
    ...

    Linus Torvalds
     

04 Oct, 2016

2 commits

  • Pull CPU hotplug updates from Thomas Gleixner:
    "Yet another batch of cpu hotplug core updates and conversions:

    - Provide core infrastructure for multi instance drivers so the
    drivers do not have to keep custom lists.

    - Convert custom lists to the new infrastructure. The block-mq custom
    list conversion comes through the block tree and makes the diffstat
    tip over to more lines removed than added.

    - Handle unbalanced hotplug enable/disable calls more gracefully.

    - Remove the obsolete CPU_STARTING/DYING notifier support.

    - Convert another batch of notifier users.

    The relayfs changes which conflicted with the conversion have been
    shipped to me by Andrew.

    The remaining lot is targeted for 4.10 so that we finally can remove
    the rest of the notifiers"

    * 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (46 commits)
    cpufreq: Fix up conversion to hotplug state machine
    blk/mq: Reserve hotplug states for block multiqueue
    x86/apic/uv: Convert to hotplug state machine
    s390/mm/pfault: Convert to hotplug state machine
    mips/loongson/smp: Convert to hotplug state machine
    mips/octeon/smp: Convert to hotplug state machine
    fault-injection/cpu: Convert to hotplug state machine
    padata: Convert to hotplug state machine
    cpufreq: Convert to hotplug state machine
    ACPI/processor: Convert to hotplug state machine
    virtio scsi: Convert to hotplug state machine
    oprofile/timer: Convert to hotplug state machine
    block/softirq: Convert to hotplug state machine
    lib/irq_poll: Convert to hotplug state machine
    x86/microcode: Convert to hotplug state machine
    sh/SH-X3 SMP: Convert to hotplug state machine
    ia64/mca: Convert to hotplug state machine
    ARM/OMAP/wakeupgen: Convert to hotplug state machine
    ARM/shmobile: Convert to hotplug state machine
    arm64/FP/SIMD: Convert to hotplug state machine
    ...

    Linus Torvalds
     
  • Pull RAS updates from Ingo Molnar:
    "The main changes were:

    - Lots of enhancements for AMD SMCA (Scalable MCA
    features/extensions) systems: extract, decode and print more
    hardware error information and add matching support on the
    injection/testing side as well. (Yazn Ghannam)

    - Various MCE handling improvements on modern Intel Xeons. (Tony
    Luck)

    - Plus misc fixes and enhancements"

    * 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (21 commits)
    x86/RAS/mce_amd_inj: Remove debugfs dir recursively on exit
    x86/RAS/mce_amd_inj: Fix signed wrap around when decrementing index 'i'
    x86/RAS/mce_amd_inj: Fix some W= warnings
    x86/MCE/AMD, EDAC: Handle reserved bank 4 on Fam17h properly
    x86/mce/AMD: Extract the error address on SMCA systems
    x86/mce, EDAC/mce_amd: Print MCA_SYND and MCA_IPID during MCE on SMCA systems
    x86/mce/AMD: Save MCA_IPID in MCE struct on SMCA systems
    x86/mce/AMD: Ensure the deferred error interrupt is of type APIC on SMCA systems
    x86/mce/AMD: Update sysfs bank names for SMCA systems
    x86/mce/AMD, EDAC/mce_amd: Define and use tables for known SMCA IP types
    EDAC/mce_amd: Use SMCA prefix for error descriptions arrays
    EDAC/mce_amd: Add missing SMCA error descriptions
    x86/mce/AMD: Read MSRs on the CPU allocating the threshold blocks
    x86/RAS: Add syndrome support to mce_amd_inj
    EDAC/mce_amd: Print syndrome register value on SMCA systems
    x86/mce: Add support for new MCA_SYND register
    x86/mce/AMD: Use msr_ops.misc() in allocate_threshold_blocks()
    x86/mce: Drop X86_FEATURE_MCE_RECOVERY and the related model string test
    x86/mce: Improve memcpy_mcsafe()
    x86/mce: Add PCI quirks to identify Xeons with machine check recovery
    ...

    Linus Torvalds
     

30 Sep, 2016

3 commits

  • Keep that call timeouts as ktimes rather than jiffies so that they can be
    expressed as functions of RTT.

    Signed-off-by: David Howells

    David Howells
     
  • Actually display in the tx_data trace the retransmission note added in a
    previous patch.

    Signed-off-by: David Howells

    David Howells
     
  • In rxrpc_send_data_packet() make the loss-injection path return through the
    same code as the transmission path so that the RTT determination is
    initiated and any future timer shuffling will be done, despite the packet
    having been binned.

    Whilst we're at it:

    (1) Add to the tx_data tracepoint an indication of whether or not we're
    retransmitting a data packet.

    (2) When we're deciding whether or not to request an ACK, rather than
    checking if we're in fast-retransmit mode check instead if we're
    retransmitting.

    (3) Don't invoke the lose_skb tracepoint when losing a Tx packet as we're
    not altering the sk_buff refcount nor are we just seeing it after
    getting it off the Tx list.

    (4) The rxrpc_skb_tx_lost note is then no longer used so remove it.

    (5) rxrpc_lose_skb() no longer needs to deal with rxrpc_skb_tx_lost.

    Signed-off-by: David Howells

    David Howells
     

29 Sep, 2016

1 commit

  • This patch fix a spelling typo found in DocBook/tracepoint.xml.
    It is because the file was created from comments in source,
    so I have to fix the typo in include/trace/events/irq.h

    Signed-off-by: Masanari Iida
    Acked-by: Steven Rostedt
    Signed-off-by: Jiri Kosina

    Masanari Iida
     

25 Sep, 2016

1 commit

  • Implement RxRPC slow-start, which is similar to RFC 5681 for TCP. A
    tracepoint is added to log the state of the congestion management algorithm
    and the decisions it makes.

    Notes:

    (1) Since we send fixed-size DATA packets (apart from the final packet in
    each phase), counters and calculations are in terms of packets rather
    than bytes.

    (2) The ACK packet carries the equivalent of TCP SACK.

    (3) The FLIGHT_SIZE calculation in RFC 5681 doesn't seem particularly
    suited to SACK of a small number of packets. It seems that, almost
    inevitably, by the time three 'duplicate' ACKs have been seen, we have
    narrowed the loss down to one or two missing packets, and the
    FLIGHT_SIZE calculation ends up as 2.

    (4) In rxrpc_resend(), if there was no data that apparently needed
    retransmission, we transmit a PING ACK to ask the peer to tell us what
    its Rx window state is.

    Signed-off-by: David Howells

    David Howells
     

23 Sep, 2016

5 commits


22 Sep, 2016

1 commit

  • Add a function to track the average RTT for a peer. Sources of RTT data
    will be added in subsequent patches.

    The RTT data will be useful in the future for determining resend timeouts
    and for handling the slow-start part of the Rx protocol.

    Also add a pair of tracepoints, one to log transmissions to elicit a
    response for RTT purposes and one to log responses that contribute RTT
    data.

    Signed-off-by: David Howells

    David Howells
     

17 Sep, 2016

9 commits


13 Sep, 2016

2 commits

  • The MCA_IPID register uniquely identifies a bank's type and instance
    on Scalable MCA systems. We should save the value of this register
    in struct mce along with the other relevant error information. This
    ensures that we can decode errors without relying on system software to
    correlate the bank to the type.

    Signed-off-by: Yazen Ghannam
    Signed-off-by: Borislav Petkov
    Link: http://lkml.kernel.org/r/1472680624-34221-1-git-send-email-Yazen.Ghannam@amd.com
    Signed-off-by: Thomas Gleixner

    Yazen Ghannam
     
  • Syndrome information is no longer contained in MCA_STATUS for SMCA
    systems but in a new register - MCA_SYND.

    Add a synd field to struct mce to hold MCA_SYND register value. Add it
    to the end of struct mce to maintain compatibility with old versions of
    mcelog. Also, add it to the respective tracepoint.

    Signed-off-by: Yazen Ghannam
    Signed-off-by: Borislav Petkov
    Link: http://lkml.kernel.org/r/1467633035-32080-1-git-send-email-Yazen.Ghannam@amd.com
    Signed-off-by: Thomas Gleixner

    Yazen Ghannam
     

08 Sep, 2016

2 commits


07 Sep, 2016

2 commits

  • Add a tracepoint for working out where local aborts happen. Each
    tracepoint call is labelled with a 3-letter code so that they can be
    distinguished - and the DATA sequence number is added too where available.

    rxrpc_kernel_abort_call() also takes a 3-letter code so that AFS can
    indicate the circumstances when it aborts a call.

    Signed-off-by: David Howells

    David Howells
     
  • Improve the call tracking tracepoint by showing more differentiation
    between some of the put and get events, including:

    (1) Getting and putting refs for the socket call user ID tree.

    (2) Getting and putting refs for queueing and failing to queue the call
    processor work item.

    Note that these aren't necessarily used in this patch, but will be taken
    advantage of in future patches.

    An enum is added for the event subtype numbers rather than coding them
    directly as decimal numbers and a table of 3-letter strings is provided
    rather than a sequence of ?: operators.

    Signed-off-by: David Howells

    David Howells
     

03 Sep, 2016

1 commit

  • This patch adds the ability for a given state to have multiple
    instances. Until now all states have a single instance and the startup /
    teardown callback use global variables.
    A few drivers need to perform a the same callbacks on multiple
    "instances". Currently we have three drivers in tree which all have a
    global list which they iterate over. With multi instance they support
    don't need their private list and the functionality has been moved into
    core code. Plus we hold the hotplug lock in core so no cpus comes/goes
    while instances are registered and we do rollback in error case :)

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Sebastian Andrzej Siewior
    Cc: Mark Rutland
    Cc: Peter Zijlstra
    Cc: Will Deacon
    Cc: rt@linutronix.de
    Link: http://lkml.kernel.org/r/1471024183-12666-3-git-send-email-bigeasy@linutronix.de
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     

30 Aug, 2016

1 commit


25 Aug, 2016

1 commit

  • Trace info related to bio cache operation is out of format, clean up it.

    Before:
    -28308 [002] .... 4781.052703: f2fs_submit_write_bio: dev = (251,1), WRITEWRITE_SYNC ^H, DATA, sector = 271424, size = 126976
    -28308 [002] .... 4781.052820: f2fs_submit_page_mbio: dev = (251,1), ino = 103, page_index = 0x1f, oldaddr = 0xffffffff, newaddr = 0x84a7 rw = WRITEWRITE_SYNCi ^H, type = DATA
    kworker/u8:2-29988 [001] .... 5549.293877: f2fs_submit_page_mbio: dev = (251,1), ino = 91, page_index = 0xd, oldaddr = 0xffffffff, newaddr = 0x782f rw = WRITE0x0i ^H type = DATA

    After:
    kworker/u8:2-8678 [000] .... 7945.124459: f2fs_submit_write_bio: dev = (251,1), rw = WRITE_SYNC, DATA, sector = 74080, size = 53248
    kworker/u8:2-8678 [000] .... 7945.124551: f2fs_submit_page_mbio: dev = (251,1), ino = 11, page_index = 0xec, oldaddr = 0xffffffff, newaddr = 0x243a, rw = WRITE, type = DATA

    Signed-off-by: Chao Yu
    Signed-off-by: Jaegeuk Kim

    Chao Yu
     

23 Aug, 2016

1 commit


17 Aug, 2016

1 commit

  • This layer is responsible for
    - Enumerating over PCI bus
    - Inform FW about host readiness
    - Provide HW interface to transport layer for control and messages
    - Interrupt handling and routing

    Original-author: Daniel Drubin
    Reviewed-and-tested-by: Ooi, Joyce
    Tested-by: Grant Likely
    Tested-by: Rann Bar-On
    Tested-by: Atri Bhattacharya
    Signed-off-by: Srinivas Pandruvada
    Signed-off-by: Jiri Kosina

    Srinivas Pandruvada
     

10 Aug, 2016

1 commit

  • Pull tracing fix from Steven Rostedt:
    "Fix tick_stop tracepoint symbols for user export.

    Luiz Capitulino noticed that the tick_stop tracepoint wasn't being
    parsed properly by the tracing user space tools.

    This was due to the TRACE_DEFINE_ENUM() being set to a define, when it
    should have been set to the enum itself. The define was of the MASK
    that used the BIT to shift. The BIT was the enum and by adding that,
    everything gets converted nicely. The MASK is still kept just in case
    it gets converted to an enum in the future"

    * tag 'trace-v4.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
    tracing: Fix tick_stop tracepoint symbols for user export

    Linus Torvalds
     

09 Aug, 2016

1 commit

  • The symbols used in the tick_stop tracepoint were not being converted
    properly into integers in the trace_stop format file. Instead we had this:

    print fmt: "success=%d dependency=%s", REC->success,
    __print_symbolic(REC->dependency, { 0, "NONE" },
    { (1 << TICK_DEP_BIT_POSIX_TIMER), "POSIX_TIMER" },
    { (1 << TICK_DEP_BIT_PERF_EVENTS), "PERF_EVENTS" },
    { (1 << TICK_DEP_BIT_SCHED), "SCHED" },
    { (1 << TICK_DEP_BIT_CLOCK_UNSTABLE), "CLOCK_UNSTABLE" })

    User space tools have no idea how to parse "TICK_DEP_BIT_SCHED" or the other
    symbols used to do the bit shifting. The reason is that the conversion was
    done with using the TICK_DEP_MASK_* symbols which are just macros that
    convert to the BIT shift itself (with the exception of NONE, which was
    converted properly, because it doesn't use bits, and is defined as zero).

    The TICK_DEP_BIT_* needs to be denoted by TRACE_DEFINE_ENUM() in order to
    have this properly converted for user space tools to parse this event.

    Cc: stable@vger.kernel.org
    Cc: Frederic Weisbecker
    Fixes: e6e6cc22e067 ("nohz: Use enum code for tick stop failure tracing message")
    Reported-by: Luiz Capitulino
    Tested-by: Luiz Capitulino
    Signed-off-by: Steven Rostedt

    Steven Rostedt (Red Hat)