1. 19 Jun, 2014 5 commits
    • Arnaldo Carvalho de Melo's avatar
      perf trace: Remove needless reassignments · 77413534
      Arnaldo Carvalho de Melo authored
      The thread->priv value is already obtained a few lines earlier from the
      thread__trace() call. Leftovers from before thread__trace().
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/n/tip-96laa634vzfwlwxurevo40wp@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      77413534
    • Arnaldo Carvalho de Melo's avatar
      perf evlist: Add suggestion of how to set perf_event_paranoid sysctl · 5229e366
      Arnaldo Carvalho de Melo authored
      Minor hint to speed up problem resolution and get 'trace' working for
      non root users.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/n/tip-abdqi8km4fj9osrn70q2zj9v@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      5229e366
    • Arnaldo Carvalho de Melo's avatar
      perf trace: Fix up fd -> pathname resolution · cdcd1e6b
      Arnaldo Carvalho de Melo authored
      There was a brown paper bag bug in the patch that introduced a reference
      implementation on using 'perf probe' made wannabe tracepoints that broke fd ->
      pathname resolution, fix it:
      
        [root@zoo ~]# perf probe 'vfs_getname=getname_flags:65 pathname=result->name:string'
        Added new event:
          probe:vfs_getname    (on getname_flags:65 with pathname=result->name:string)
      
        You can now use it in all perf tools, such as:
      
      	perf record -e probe:vfs_getname -aR sleep 1
      
        [root@zoo ~]
      
      Before:
      
        [acme@zoo linux]$ trace touch -e open,fstat /tmp/b
           1.159 ( 0.007 ms): open(filename: 0x7fd73f2fe088, flags: CLOEXEC                         ) = 3
           1.163 ( 0.002 ms): fstat(fd: 3, statbuf: 0x7fff1b25e610                                  ) = 0
           1.192 ( 0.009 ms): open(filename: 0x7fd73f4fedb8, flags: CLOEXEC                         ) = 3
           1.201 ( 0.002 ms): fstat(fd: 3, statbuf: 0x7fff1b25e660                                  ) = 0
           1.501 ( 0.013 ms): open(filename: 0x7fd73f0a1610, flags: CLOEXEC                         ) = 3
           1.505 ( 0.002 ms): fstat(fd: 3, statbuf: 0x7fd73f2ddb60                                  ) = 0
           1.581 ( 0.011 ms): open(filename: 0x7fff1b2603da, flags: CREAT|NOCTTY|NONBLOCK|WRONLY, mode: 438) = 3
        [acme@zoo linux]$
      
      After:
      
        [acme@zoo linux]$ trace touch -e open,fstat,dup2,mmap,close /tmp/b
           1.105 ( 0.004 ms): mmap(len: 4096, prot: READ|WRITE, flags: PRIVATE|ANONYMOUS, fd: -1    ) = 0x2fbf000
           1.136 ( 0.008 ms): open(filename: 0x7f8902dbc088, flags: CLOEXEC                         ) = 3
           1.140 ( 0.002 ms): fstat(fd: 3</etc/ld.so.cache>, statbuf: 0x7fff19889ef0                ) = 0
           1.146 ( 0.004 ms): mmap(len: 86079, prot: READ, flags: PRIVATE, fd: 3</etc/ld.so.cache>  ) = 0x2fa9000
           1.149 ( 0.001 ms): close(fd: 3</etc/ld.so.cache>                                         ) = 0
           1.170 ( 0.010 ms): open(filename: 0x7f8902fbcdb8, flags: CLOEXEC                         ) = 3
           1.178 ( 0.002 ms): fstat(fd: 3</lib64/libc.so.6>, statbuf: 0x7fff19889f40                ) = 0
           1.188 ( 0.006 ms): mmap(len: 3924576, prot: EXEC|READ, flags: PRIVATE|DENYWRITE, fd: 3</lib64/libc.so.6>) = 0x29e2000
           1.207 ( 0.007 ms): mmap(addr: 0x7f8902d96000, len: 24576, prot: READ|WRITE, flags: PRIVATE|DENYWRITE|FIXED, fd: 3</lib64/libc.so.6>, off: 1785856) = 0x2d96000
           1.217 ( 0.004 ms): mmap(addr: 0x7f8902d9c000, len: 16992, prot: READ|WRITE, flags: PRIVATE|ANONYMOUS|FIXED, fd: -1) = 0x2d9c000
           1.228 ( 0.002 ms): close(fd: 3</lib64/libc.so.6>                                         ) = 0
           1.243 ( 0.003 ms): mmap(len: 4096, prot: READ|WRITE, flags: PRIVATE|ANONYMOUS, fd: -1    ) = 0x2fa8000
           1.250 ( 0.003 ms): mmap(len: 8192, prot: READ|WRITE, flags: PRIVATE|ANONYMOUS, fd: -1    ) = 0x2fa6000
           1.452 ( 0.010 ms): open(filename: 0x7f8902b5f610, flags: CLOEXEC                         ) = 3
           1.455 ( 0.002 ms): fstat(fd: 3</usr/lib/locale/locale-archive>, statbuf: 0x7f8902d9bb60  ) = 0
           1.461 ( 0.004 ms): mmap(len: 106070960, prot: READ, flags: PRIVATE, fd: 3</usr/lib/locale/locale-archive>) = 0xfc4b9000
           1.469 ( 0.002 ms): close(fd: 3</usr/lib/locale/locale-archive>                           ) = 0
           1.528 ( 0.010 ms): open(filename: 0x7fff1988c3da, flags: CREAT|NOCTTY|NONBLOCK|WRONLY, mode: 438) = 3
           1.532 ( 0.002 ms): dup2(oldfd: 3</tmp/b>                                                 ) = 0
           1.535 ( 0.001 ms): close(fd: 3</tmp/b>                                                   ) = 0
           1.544 ( 0.001 ms): close(                                                                ) = 0
           1.555 ( 0.001 ms): close(fd: 1                                                           ) = 0
           1.558 ( 0.001 ms): close(fd: 2                                                           ) = 0
        [acme@zoo linux]$
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/n/tip-vcm22xpjxc3j4hbyuzjzf7ik@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      cdcd1e6b
    • Vince Weaver's avatar
      sh, perf: Use common PMU interrupt disabled code · a10d60c0
      Vince Weaver authored
      Transition to using the new generic PERF_PMU_CAP_NO_INTERRUPT method for
      failing a sampling event when no PMU interrupt is available.
      Signed-off-by: default avatarVince Weaver <vincent.weaver@maine.edu>
      Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
      Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: linux-sh@vger.kernel.org
      Link: http://lkml.kernel.org/r/alpine.DEB.2.10.1406150205300.16738@vincent-weaver-1.umelst.maine.eduSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      a10d60c0
    • Vince Weaver's avatar
      s390, perf: Use common PMU interrupt disabled code · 97b1198f
      Vince Weaver authored
      Transition to using the new generic PERF_PMU_CAP_NO_INTERRUPT method for
      failing a sampling event when no PMU interrupt is available.
      Signed-off-by: default avatarVince Weaver <vincent.weaver@maine.edu>
      Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
      Cc: Thomas Huth <thuth@linux.vnet.ibm.com>
      Cc: linux390@de.ibm.com
      Cc: linux-s390@vger.kernel.org
      Link: http://lkml.kernel.org/r/alpine.DEB.2.10.1406150204290.16738@vincent-weaver-1.umelst.maine.eduSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      97b1198f
  2. 18 Jun, 2014 3 commits
  3. 14 Jun, 2014 2 commits
  4. 13 Jun, 2014 11 commits
    • Ingo Molnar's avatar
      Merge tag 'perf-core-for-mingo' of... · 4ba96195
      Ingo Molnar authored
      Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf into perf/core
      
      Pull perf/core improvements and fixes from Jiri Olsa:
      
        * Honor user freq/interval properly in record command (Namhyung Kim)
      
        * Speedup DWARF unwind (Jiri Olsa)
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      4ba96195
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · ed9ea4ed
      Linus Torvalds authored
      Pull SCSI target updates from Nicholas Bellinger:
       "The highlights this round include:
      
         - Add support for T10 PI pass-through between vhost-scsi +
           virtio-scsi (MST + Paolo + MKP + nab)
         - Add support for T10 PI in qla2xxx target mode (Quinn + MKP + hch +
           nab, merged through scsi.git)
         - Add support for percpu-ida pre-allocation in qla2xxx target code
           (Quinn + nab)
         - A number of iser-target fixes related to hardening the network
           portal shutdown path (Sagi + Slava)
         - Fix response length residual handling for a number of control CDBs
           (Roland + Christophe V.)
         - Various iscsi RFC conformance fixes in the CHAP authentication path
           (Tejas and Calsoft folks + nab)
         - Return TASK_SET_FULL status for tcm_fc(FCoE) DataIn + Response
           failures (Vasu + Jun + nab)
         - Fix long-standing ABORT_TASK + session reset hang (nab)
         - Convert iser-initiator + iser-target to include T10 bytes into EDTL
           (Sagi + Or + MKP + Mike Christie)
         - Fix NULL pointer dereference regression related to XCOPY introduced
           in v3.15 + CC'ed to v3.12.y (nab)"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (34 commits)
        target: Fix NULL pointer dereference for XCOPY in target_put_sess_cmd
        vhost-scsi: Include prot_bytes into expected data transfer length
        TARGET/sbc,loopback: Adjust command data length in case pi exists on the wire
        libiscsi, iser: Adjust data_length to include protection information
        scsi_cmnd: Introduce scsi_transfer_length helper
        target: Report correct response length for some commands
        target/sbc: Check that the LBA and number of blocks are correct in VERIFY
        target/sbc: Remove sbc_check_valid_sectors()
        Target/iscsi: Fix sendtargets response pdu for iser transport
        Target/iser: Fix a wrong dereference in case discovery session is over iser
        iscsi-target: Fix ABORT_TASK + connection reset iscsi_queue_req memory leak
        target: Use complete_all for se_cmd->t_transport_stop_comp
        target: Set CMD_T_ACTIVE bit for Task Management Requests
        target: cleanup some boolean tests
        target/spc: Simplify INQUIRY EVPD=0x80
        tcm_fc: Generate TASK_SET_FULL status for response failures
        tcm_fc: Generate TASK_SET_FULL status for DataIN failures
        iscsi-target: Reject mutual authentication with reflected CHAP_C
        iscsi-target: Remove no-op from iscsit_tpg_del_portal_group
        iscsi-target: Fix CHAP_A parameter list handling
        ...
      ed9ea4ed
    • Linus Torvalds's avatar
      Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · c1fdb2d3
      Linus Torvalds authored
      Pull kbuild misc updates from Michal Marek:
       "This is the non-critical part of kbuild for v3.16-rc1:
         - make deb-pkg can do s390x and arm64
         - new patterns in scripts/tags.sh
         - scripts/tags.sh skips userspace tools' sources (which sometimes
           have copies of kernel structures) and symlinks
         - improvements to the objdiff tool
         - two new coccinelle patches
         - other minor fixes"
      
      * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
        scripts: objdiff: support directories for the augument of record command
        scripts: objdiff: fix a comment
        scripts: objdiff: change the extension of disassembly from .o to .dis
        scripts: objdiff: improve path flexibility for record command
        scripts: objdiff: remove unnecessary code
        scripts: objdiff: direct error messages to stderr
        scripts: objdiff: get the path to .tmp_objdiff more simply
        deb-pkg: Add automatic support for s390x architecture
        coccicheck: Add unneeded return variable test
        kbuild: Fix a typo in documentation
        kbuild: trivial - use tabs for code indent where possible
        kbuild: trivial - remove trailing empty lines
        coccinelle: Check for missing NULL terminators in of_device_id tables
        scripts/tags.sh: ignore symlink'ed source files
        scripts/tags.sh: add regular expression replacement pattern for memcg
        builddeb: add arm64 in the supported architectures
        builddeb: use $OBJCOPY variable instead of objcopy
        scripts/tags.sh: ignore code of user space tools
        scripts/tags.sh: add pattern for DEFINE_HASHTABLE
        .gitignore: ignore Module.symvers in all directories
      c1fdb2d3
    • Linus Torvalds's avatar
      Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · 1700ff82
      Linus Torvalds authored
      Pull kbuild updates from Michal Marek:
       "Kbuild changes for v3.16-rc1:
      
         - cross-compilation fix so that cc-option is testing the right
           compiler
         - Fix for make defconfig all
         - Using relative paths to the object and source directory where
           possible, plus fixes for the fallout of the change
         - several cleanups in the Makefiles and scripts
      
        The powerpc fix is from today, because it was only discovered
        recently.  The rest has been in linux-next for some time"
      
      * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
        powerpc: Avoid circular dependency with zImage.%
        kbuild: create include/config directory in scripts/kconfig/Makefile
        kbuild: do not create include/linux directory
        Makefile: Fix unrecognized cross-compiler command line options
        kbuild: do not add "selinux" to subdir- twice
        um: Fix for relative objtree when generating x86 headers
        kbuild: Use relative path when building in a subdir of the source tree
        kbuild: Use relative path when building in the source tree
        kbuild: Use relative path for $(objtree)
        firmware: Use $(quote) in the Makefile
        firmware: Simplify directory creation
        kbuild: trivial - fix comment block indent
        kbuild: trivial - remove trailing spaces
        kbuild: support simultaneous "make %config" and "make all"
        kbuild: move extra gcc checks to scripts/Makefile.extrawarn
      1700ff82
    • Linus Torvalds's avatar
      Merge tag 'trace-3.16-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 8841c8b3
      Linus Torvalds authored
      Pull tracing cleanups and bugfixes from Steven Rostedt:
       "One bug fix that goes back to 3.10.  Accessing a non existent buffer
        if "possible cpus" is greater than actual CPUs (including offline
        CPUs).
      
        Namhyung Kim did some reviews of the patches I sent this merge window
        and found a memory leak and had a few clean ups"
      
      * tag 'trace-3.16-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing: Fix check of ftrace_trace_arrays list_empty() check
        tracing: Fix leak of per cpu max data in instances
        tracing: Cleanup saved_cmdlines_size changes
        ring-buffer: Check if buffer exists before polling
      8841c8b3
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · b7c8c194
      Linus Torvalds authored
      Pull more powerpc updates from Ben Herrenschmidt:
       "Here are the remaining bits I was mentioning earlier.  Mostly bug
        fixes and new selftests from Michael (yay !).  He also removed the WSP
        platform and A2 core support which were dead before release, so less
        clutter.
      
        One little "feature" I snuck in is the doorbell IPI support for
        non-virtualized P8 which speeds up IPIs significantly between threads
        of a core"
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (34 commits)
        powerpc/book3s: Fix some ABIv2 issues in machine check code
        powerpc/book3s: Fix guest MC delivery mechanism to avoid soft lockups in guest.
        powerpc/book3s: Increment the mce counter during machine_check_early call.
        powerpc/book3s: Add stack overflow check in machine check handler.
        powerpc/book3s: Fix machine check handling for unhandled errors
        powerpc/eeh: Dump PE location code
        powerpc/powernv: Enable POWER8 doorbell IPIs
        powerpc/cpuidle: Only clear LPCR decrementer wakeup bit on fast sleep entry
        powerpc/powernv: Fix killed EEH event
        powerpc: fix typo 'CONFIG_PMAC'
        powerpc: fix typo 'CONFIG_PPC_CPU'
        powerpc/powernv: Don't escalate non-existing frozen PE
        powerpc/eeh: Report frozen parent PE prior to child PE
        powerpc/eeh: Clear frozen state for child PE
        powerpc/powernv: Reduce panic timeout from 180s to 10s
        powerpc/xmon: avoid format string leaking to printk
        selftests/powerpc: Add tests of PMU EBBs
        selftests/powerpc: Add support for skipping tests
        selftests/powerpc: Put the test in a separate process group
        selftests/powerpc: Fix instruction loop for ABIv2 (LE)
        ...
      b7c8c194
    • Linus Torvalds's avatar
      Merge tag 'blackfin-for-linus' of... · 88bbfb4a
      Linus Torvalds authored
      Merge tag 'blackfin-for-linus' of http://git.kernel.org/pub/scm/linux/kernel/git/realmz6/blackfin-linux
      
      Pull blackfin updates from Steven Miao.
      
      * tag 'blackfin-for-linus' of http://git.kernel.org/pub/scm/linux/kernel/git/realmz6/blackfin-linux:
        blackfin: defconfigs: add MTD_SPI_NOR (new dependency for M25P80)
        Revert "blackfin: dma: current count mmr is read only"
        bf533: fix build error: add linux/gpio.h
      88bbfb4a
    • Linus Torvalds's avatar
      Merge branch 'x86-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 71998d1b
      Linus Torvalds authored
      Pull x86 irq fixes from Ingo Molnar:
       "Two changes: a cpu-hotplug/irq race fix, plus a HyperV related fix"
      
      * 'x86-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/irq: Fix fixup_irqs() error handling
        x86, irq, pic: Probe for legacy PIC and set legacy_pic appropriately
      71998d1b
    • Linus Torvalds's avatar
      Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b2e09f63
      Linus Torvalds authored
      Pull more scheduler updates from Ingo Molnar:
       "Second round of scheduler changes:
         - try-to-wakeup and IPI reduction speedups, from Andy Lutomirski
         - continued power scheduling cleanups and refactorings, from Nicolas
           Pitre
         - misc fixes and enhancements"
      
      * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/deadline: Delete extraneous extern for to_ratio()
        sched/idle: Optimize try-to-wake-up IPI
        sched/idle: Simplify wake_up_idle_cpu()
        sched/idle: Clear polling before descheduling the idle thread
        sched, trace: Add a tracepoint for IPI-less remote wakeups
        cpuidle: Set polling in poll_idle
        sched: Remove redundant assignment to "rt_rq" in update_curr_rt(...)
        sched: Rename capacity related flags
        sched: Final power vs. capacity cleanups
        sched: Remove remaining dubious usage of "power"
        sched: Let 'struct sched_group_power' care about CPU capacity
        sched/fair: Disambiguate existing/remaining "capacity" usage
        sched/fair: Change "has_capacity" to "has_free_capacity"
        sched/fair: Remove "power" from 'struct numa_stats'
        sched: Fix signedness bug in yield_to()
        sched/fair: Use time_after() in record_wakee()
        sched/balancing: Reduce the rate of needless idle load balancing
        sched/fair: Fix unlocked reads of some cfs_b->quota/period
      b2e09f63
    • Linus Torvalds's avatar
      Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3737a127
      Linus Torvalds authored
      Pull more perf updates from Ingo Molnar:
       "A second round of perf updates:
      
         - wide reaching kprobes sanitization and robustization, with the hope
           of fixing all 'probe this function crashes the kernel' bugs, by
           Masami Hiramatsu.
      
         - uprobes updates from Oleg Nesterov: tmpfs support, corner case
           fixes and robustization work.
      
         - perf tooling updates and fixes from Jiri Olsa, Namhyung Ki, Arnaldo
           et al:
              * Add support to accumulate hist periods (Namhyung Kim)
              * various fixes, refactorings and enhancements"
      
      * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (101 commits)
        perf: Differentiate exec() and non-exec() comm events
        perf: Fix perf_event_comm() vs. exec() assumption
        uprobes/x86: Rename arch_uprobe->def to ->defparam, minor comment updates
        perf/documentation: Add description for conditional branch filter
        perf/x86: Add conditional branch filtering support
        perf/tool: Add conditional branch filter 'cond' to perf record
        perf: Add new conditional branch filter 'PERF_SAMPLE_BRANCH_COND'
        uprobes: Teach copy_insn() to support tmpfs
        uprobes: Shift ->readpage check from __copy_insn() to uprobe_register()
        perf/x86: Use common PMU interrupt disabled code
        perf/ARM: Use common PMU interrupt disabled code
        perf: Disable sampled events if no PMU interrupt
        perf: Fix use after free in perf_remove_from_context()
        perf tools: Fix 'make help' message error
        perf record: Fix poll return value propagation
        perf tools: Move elide bool into perf_hpp_fmt struct
        perf tools: Remove elide setup for SORT_MODE__MEMORY mode
        perf tools: Fix "==" into "=" in ui_browser__warning assignment
        perf tools: Allow overriding sysfs and proc finding with env var
        perf tools: Consider header files outside perf directory in tags target
        ...
      3737a127
    • Linus Torvalds's avatar
      Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c29deef3
      Linus Torvalds authored
      Pull more locking changes from Ingo Molnar:
       "This is the second round of locking tree updates for v3.16, offering
        large system scalability improvements:
      
       - optimistic spinning for rwsems, from Davidlohr Bueso.
      
       - 'qrwlocks' core code and x86 enablement, from Waiman Long and PeterZ"
      
      * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, locking/rwlocks: Enable qrwlocks on x86
        locking/rwlocks: Introduce 'qrwlocks' - fair, queued rwlocks
        locking/mutexes: Documentation update/rewrite
        locking/rwsem: Fix checkpatch.pl warnings
        locking/rwsem: Fix warnings for CONFIG_RWSEM_GENERIC_SPINLOCK
        locking/rwsem: Support optimistic spinning
      c29deef3
  5. 12 Jun, 2014 19 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next · f9da455b
      Linus Torvalds authored
      Pull networking updates from David Miller:
      
       1) Seccomp BPF filters can now be JIT'd, from Alexei Starovoitov.
      
       2) Multiqueue support in xen-netback and xen-netfront, from Andrew J
          Benniston.
      
       3) Allow tweaking of aggregation settings in cdc_ncm driver, from Bjørn
          Mork.
      
       4) BPF now has a "random" opcode, from Chema Gonzalez.
      
       5) Add more BPF documentation and improve test framework, from Daniel
          Borkmann.
      
       6) Support TCP fastopen over ipv6, from Daniel Lee.
      
       7) Add software TSO helper functions and use them to support software
          TSO in mvneta and mv643xx_eth drivers.  From Ezequiel Garcia.
      
       8) Support software TSO in fec driver too, from Nimrod Andy.
      
       9) Add Broadcom SYSTEMPORT driver, from Florian Fainelli.
      
      10) Handle broadcasts more gracefully over macvlan when there are large
          numbers of interfaces configured, from Herbert Xu.
      
      11) Allow more control over fwmark used for non-socket based responses,
          from Lorenzo Colitti.
      
      12) Do TCP congestion window limiting based upon measurements, from Neal
          Cardwell.
      
      13) Support busy polling in SCTP, from Neal Horman.
      
      14) Allow RSS key to be configured via ethtool, from Venkata Duvvuru.
      
      15) Bridge promisc mode handling improvements from Vlad Yasevich.
      
      16) Don't use inetpeer entries to implement ID generation any more, it
          performs poorly, from Eric Dumazet.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1522 commits)
        rtnetlink: fix userspace API breakage for iproute2 < v3.9.0
        tcp: fixing TLP's FIN recovery
        net: fec: Add software TSO support
        net: fec: Add Scatter/gather support
        net: fec: Increase buffer descriptor entry number
        net: fec: Factorize feature setting
        net: fec: Enable IP header hardware checksum
        net: fec: Factorize the .xmit transmit function
        bridge: fix compile error when compiling without IPv6 support
        bridge: fix smatch warning / potential null pointer dereference
        via-rhine: fix full-duplex with autoneg disable
        bnx2x: Enlarge the dorq threshold for VFs
        bnx2x: Check for UNDI in uncommon branch
        bnx2x: Fix 1G-baseT link
        bnx2x: Fix link for KR with swapped polarity lane
        sctp: Fix sk_ack_backlog wrap-around problem
        net/core: Add VF link state control policy
        net/fsl: xgmac_mdio is dependent on OF_MDIO
        net/fsl: Make xgmac_mdio read error message useful
        net_sched: drr: warn when qdisc is not work conserving
        ...
      f9da455b
    • Linus Torvalds's avatar
      Merge tag 'dm-3.16-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm · 0e04c641
      Linus Torvalds authored
      Pull device mapper updates from Mike Snitzer:
       "This pull request is later than I'd have liked because I was waiting
        for some performance data to help finally justify sending the
        long-standing dm-crypt cpu scalability improvements upstream.
      
        Unfortunately we came up short, so those dm-crypt changes will
        continue to wait, but it seems we're not far off.
      
         . Add dm_accept_partial_bio interface to DM core to allow DM targets
           to only process a portion of a bio, the remainder being sent in the
           next bio.  This enables the old dm snapshot-origin target to only
           split write bios on chunk boundaries, read bios are now sent to the
           origin device unchanged.
      
         . Add DM core support for disabling WRITE SAME if the underlying SCSI
           layer disables it due to command failure.
      
         . Reduce lock contention in DM's bio-prison.
      
         . A few small cleanups and fixes to dm-thin and dm-era"
      
      * tag 'dm-3.16-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm thin: update discard_granularity to reflect the thin-pool blocksize
        dm bio prison: implement per bucket locking in the dm_bio_prison hash table
        dm: remove symbol export for dm_set_device_limits
        dm: disable WRITE SAME if it fails
        dm era: check for a non-NULL metadata object before closing it
        dm thin: return ENOSPC instead of EIO when error_if_no_space enabled
        dm thin: cleanup noflush_work to use a proper completion
        dm snapshot: do not split read bios sent to snapshot-origin target
        dm snapshot: allocate a per-target structure for snapshot-origin target
        dm: introduce dm_accept_partial_bio
        dm: change sector_count member in clone_info from sector_t to unsigned
      0e04c641
    • Linus Torvalds's avatar
      Merge tag 'pci-v3.16-changes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 7550cfab
      Linus Torvalds authored
      Pull more PCI updates from Bjorn Helgaas:
       "Here are some more things I'd like to see in v3.16-rc1:
      
         - DMA alias iterator, part of some work to fix IOMMU issues
         - MVEBU, Tegra, DesignWare changes that I forgot to include before
         - Some whitespace code cleanup
      
        Details:
      
        IOMMU
          - Add DMA alias iterator (Alex Williamson)
          - Add DMA alias quirks for ASMedia, ITE, Tundra bridges (Alex Williamson)
          - Add DMA alias quirks for Marvell, Ricoh devices (Alex Williamson)
          - Add DMA alias quirk for HighPoint devices (Jérôme Carretero)
      
        MSI
          - Fix leak in free_msi_irqs() (Alexei Starovoitov)
      
        Marvell MVEBU
          - Remove unnecessary use of 'conf_lock' spinlock (Andrew Murray)
          - Avoid setting an undefined window size (Jason Gunthorpe)
          - Allow several windows with the same target/attribute (Thomas Petazzoni)
          - Split PCIe BARs into multiple MBus windows when needed (Thomas Petazzoni)
          - Fix off-by-one in the computed size of the mbus windows (Willy Tarreau)
      
        NVIDIA Tegra
          - Use new OF interrupt mapping when possible (Lucas Stach)
      
        Synopsys DesignWare
          - Remove unnecessary use of 'conf_lock' spinlock (Andrew Murray)
          - Use new OF interrupt mapping when possible (Lucas Stach)
          - Split Exynos and i.MX bindings (Lucas Stach)
          - Fix comment for setting number of lanes (Mohit Kumar)
          - Fix iATU programming for cfg1, io and mem viewport (Mohit Kumar)
      
        Miscellaneous
          - EXPORT_SYMBOL cleanup (Ryan Desfosses)
          - Whitespace cleanup (Ryan Desfosses)
          - Merge multi-line quoted strings (Ryan Desfosses)"
      
      * tag 'pci-v3.16-changes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (21 commits)
        PCI: Add function 1 DMA alias quirk for HighPoint RocketRaid 642L
        PCI/MSI: Fix memory leak in free_msi_irqs()
        PCI: Merge multi-line quoted strings
        PCI: Whitespace cleanup
        PCI: Move EXPORT_SYMBOL so it immediately follows function/variable
        PCI: Add bridge DMA alias quirk for ITE bridge
        PCI: designware: Split Exynos and i.MX bindings
        PCI: Add bridge DMA alias quirk for ASMedia and Tundra bridges
        PCI: Add support for PCIe-to-PCI bridge DMA alias quirks
        PCI: Add function 1 DMA alias quirk for Marvell devices
        PCI: Add function 0 DMA alias quirk for Ricoh devices
        PCI: Add support for DMA alias quirks
        PCI: Convert pci_dev_flags definitions to bit shifts
        PCI: Add DMA alias iterator
        PCI: mvebu: Use '%pa' for printing 'phys_addr_t' type
        PCI: mvebu: Remove unnecessary use of 'conf_lock' spinlock
        PCI: designware: Remove unnecessary use of 'conf_lock' spinlock
        PCI: designware: Use new OF interrupt mapping when possible
        PCI: designware: Fix iATU programming for cfg1, io and mem viewport
        PCI: designware: Fix comment for setting number of lanes
        ...
      7550cfab
    • Linus Torvalds's avatar
      Merge tag 'pm+acpi-3.16-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 19c1940f
      Linus Torvalds authored
      Pull more ACPI and power management updates from Rafael Wysocki:
       "These are fixups on top of the previous PM+ACPI pull request,
        regression fixes (ACPI hotplug, cpufreq ppc-corenet), other bug fixes
        (ACPI reset, cpufreq), new PM trace points for system suspend
        profiling and a copyright notice update.
      
        Specifics:
      
         - I didn't remember correctly that the Hans de Goede's ACPI video
           patches actually didn't flip the video.use_native_backlight
           default, although we had discussed that and decided to do that.
           Since I said we would do that in the previous PM+ACPI pull request,
           make that change for real now.
      
         - ACPI bus check notifications for PCI host bridges don't cause the
           bus below the host bridge to be checked for changes as they should
           because of a mistake in the ACPI-based PCI hotplug (ACPIPHP)
           subsystem that forgets to add hotplug contexts to PCI host bridge
           ACPI device objects.  Create hotplug contexts for PCI host bridges
           too as appropriate.
      
         - Revert recent cpufreq commit related to the big.LITTLE cpufreq
           driver that breaks arm64 builds.
      
         - Fix for a regression in the ppc-corenet cpufreq driver introduced
           during the 3.15 cycle and causing the driver to use the remainder
           from do_div instead of the quotient.  From Ed Swarthout.
      
         - Resets triggered by panic activate a BUG_ON() in vmalloc.c on
           systems where the ACPI reset register is located in memory address
           space.  Fix from Randy Wright.
      
         - Fix for a problem with cpufreq governors that decisions made by
           them may be suboptimal due to the fact that deferrable timers are
           used by them for CPU load sampling.  From Srivatsa S Bhat.
      
         - Fix for a problem with the Tegra cpufreq driver where the CPU
           frequency is temporarily switched to a "stable" level that is
           different from both the initial and target frequencies during
           transitions which causes udelay() to expire earlier than it should
           sometimes.  From Viresh Kumar.
      
         - New trace points and rework of some existing trace points for
           system suspend/resume profiling from Todd Brandt.
      
         - Assorted cpufreq fixes and cleanups from Stratos Karafotis and
           Viresh Kumar.
      
         - Copyright notice update for suspend-and-cpuhotplug.txt from
           Srivatsa S Bhat"
      
      * tag 'pm+acpi-3.16-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI / hotplug / PCI: Add hotplug contexts to PCI host bridges
        PM / sleep: trace events for device PM callbacks
        cpufreq: cpufreq-cpu0: remove dependency on THERMAL and REGULATOR
        cpufreq: tegra: update comment for clarity
        cpufreq: intel_pstate: Remove duplicate CPU ID check
        cpufreq: Mark CPU0 driver with CPUFREQ_NEED_INITIAL_FREQ_CHECK flag
        PM / Documentation: Update copyright in suspend-and-cpuhotplug.txt
        cpufreq: governor: remove copy_prev_load from 'struct cpu_dbs_common_info'
        cpufreq: governor: Be friendly towards latency-sensitive bursty workloads
        PM / sleep: trace events for suspend/resume
        cpufreq: ppc-corenet-cpu-freq: do_div use quotient
        Revert "cpufreq: Enable big.LITTLE cpufreq driver on arm64"
        cpufreq: Tegra: implement intermediate frequency callbacks
        cpufreq: add support for intermediate (stable) frequencies
        ACPI / video: Change the default for video.use_native_backlight to 1
        ACPI: Fix bug when ACPI reset register is implemented in system memory
      19c1940f
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds · 7c574cf6
      Linus Torvalds authored
      Pull LED updates from Bryan Wu:
       "I just found merge window is open and I'm quite busy and almost forget
        to send out this pull request.  Thanks Russell and Alexandre ping me
        about this.
      
        So basically we got some clean up and leds-pwm fixing patches from
        Russell"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds:
        leds: Remove duplicated OOM message for individual driver
        drivers/leds: Replace __get_cpu_var use through this_cpu_ptr
        leds: lp55xx: add DT bindings for LP55231
        leds: 88pm860x: Fix missing refcount decrement for parent of_node
        leds: 88pm860x: Use of_get_child_by_name
        leds: leds-pwm: add DT support for LEDs wired to supply
        leds: leds-pwm: implement PWM inversion
        leds: leds-pwm: convert OF parsing code to use led_pwm_add()
        leds: leds-pwm: provide a common function to setup a single led-pwm device
        leds: pca9685: Remove leds-pca9685 driver
        dell-led: add mic mute led interface
      7c574cf6
    • Linus Torvalds's avatar
      Merge tag 'backlight-for-linus-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight · af76004c
      Linus Torvalds authored
      Pull backlight fixes from Lee Jones:
       "This merely contains some very basic build/run-time bug fixes"
      
      * tag 'backlight-for-linus-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:
        backlight: gpio-backlight: Fix warning when the GPIO is on a I2C chip
        video/backlight: s6e63m0: Fix string type mismatch
        video/backlight: LP8788 needs PWM
        video/backlight: LP855X needs PWM
        video/pxa: LCD_CORGI needs BACKLIGHT_CLASS_DEVICE
        video/backlight: LM3630A needs PWM
      af76004c
    • Nicholas Bellinger's avatar
      target: Fix NULL pointer dereference for XCOPY in target_put_sess_cmd · 0ed6e189
      Nicholas Bellinger authored
      This patch fixes a NULL pointer dereference regression bug that was
      introduced with:
      
      commit 1e1110c4
      Author: Mikulas Patocka <mpatocka@redhat.com>
      Date:   Sat May 17 06:49:22 2014 -0400
      
          target: fix memory leak on XCOPY
      
      Now that target_put_sess_cmd() -> kref_put_spinlock_irqsave() is
      called with a valid se_cmd->cmd_kref, a NULL pointer dereference
      is triggered because the XCOPY passthrough commands don't have
      an associated se_session pointer.
      
      To address this bug, go ahead and checking for a NULL se_sess pointer
      within target_put_sess_cmd(), and call se_cmd->se_tfo->release_cmd()
      to release the XCOPY's xcopy_pt_cmd memory.
      Reported-by: default avatarThomas Glanzmann <thomas@glanzmann.de>
      Cc: Thomas Glanzmann <thomas@glanzmann.de>
      Cc: Mikulas Patocka <mpatocka@redhat.com>
      Cc: stable@vger.kernel.org # 3.12+
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      0ed6e189
    • Linus Torvalds's avatar
      Merge tag 'mfd-for-linus-3.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd · bae14e7a
      Linus Torvalds authored
      Pull more MFD updates from Lee Jones:
       "I missed collecting these patches due to a branch/tag naming
        ambiguity.  Completely my own fault, as I mindlessly named a branch
        and tag identically.  Sorry for the fuss.
      
        This pull-request contains some misplaced patches from Tony Lindgren
        that should have been part of the initial one"
      
      * tag 'mfd-for-linus-3.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd:
        mfd: twl4030-power: Add a configuration to turn off oscillator during off-idle
        mfd: twl4030-power: Add support for board specific configuration
        mfd: twl4030-power: Add recommended idle configuration
        mfd: twl4030-power: Add generic reset configuration
        mfd: twl4030-power: Fix some defines for SW_EVENTS
        mfd: twl4030-power: Fix hang on reboot if sleep configuration was loaded earlier
      bae14e7a
    • Linus Torvalds's avatar
      Merge tag 'mmc-v3.16-2' of git://git.linaro.org/people/ulf.hansson/mmc · 171c0621
      Linus Torvalds authored
      Pull MMC fixes from Ulf Hansson:
       "Here are some mmc fixes for 3.16.
      
         - fix some various compiler warnings
         - make atmel-mci compile again
         - fix regression for sdhci-msm"
      
      * tag 'mmc-v3.16-2' of git://git.linaro.org/people/ulf.hansson/mmc:
        mmc: simplify SDHCI Kconfig dependencies
        mmc: omap: don't select TPS65010
        mmc: mvsdio: avoid compiler warning
        mmc: atmel-mci: incude asm/cacheclush.h
        mmc: sdhci-msm: Fix fallout from sdhci refactoring
        mmc: usdhi6rol0: fix compiler warnings
      171c0621
    • Linus Torvalds's avatar
      Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux · 682b7c1c
      Linus Torvalds authored
      Pull drm updates from Dave Airlie:
       "This is the main drm merge window pull request, changes all over the
        place, mostly normal levels of churn.
      
        Highlights:
      
        Core drm:
           More cleanups, fix race on connector/encoder naming, docs updates,
           object locking rework in prep for atomic modeset
      
        i915:
           mipi DSI support, valleyview power fixes, cursor size fixes,
           execlist refactoring, vblank improvements, userptr support, OOM
           handling improvements
      
        radeon:
           GPUVM tuning and large page size support, gart fixes, deep color
           HDMI support, HDMI audio cleanups
      
        nouveau:
           - displayport rework should fix lots of issues
           - initial gk20a support
           - gk110b support
           - gk208 fixes
      
        exynos:
           probe order fixes, HDMI changes, IPP consolidation
      
        msm:
           debugfs updates, misc fixes
      
        ast:
           ast2400 support, sync with UMS driver
      
        tegra:
           cleanups, hdmi + hw cursor for Tegra 124.
      
        panel:
           fixes existing panels add some new ones.
      
        ipuv3:
           moved from staging to drivers/gpu"
      
      * 'drm-next' of git://people.freedesktop.org/~airlied/linux: (761 commits)
        drm/nouveau/disp/dp: fix tmds passthrough on dp connector
        drm/nouveau/dp: probe dpcd to determine connectedness
        drm/nv50-: trigger update after all connectors disabled
        drm/nv50-: prepare for attaching a SOR to multiple heads
        drm/gf119-/disp: fix debug output on update failure
        drm/nouveau/disp/dp: make use of postcursor when its available
        drm/g94-/disp/dp: take max pullup value across all lanes
        drm/nouveau/bios/dp: parse lane postcursor data
        drm/nouveau/dp: fix support for dpms
        drm/nouveau: register a drm_dp_aux channel for each dp connector
        drm/g94-/disp: add method to power-off dp lanes
        drm/nouveau/disp/dp: maintain link in response to hpd signal
        drm/g94-/disp: bash and wait for something after changing lane power regs
        drm/nouveau/disp/dp: split link config/power into two steps
        drm/nv50/disp: train PIOR-attached DP from second supervisor
        drm/nouveau/disp/dp: make use of existing output data for link training
        drm/gf119/disp: start removing direct vbios parsing from supervisor
        drm/nv50/disp: start removing direct vbios parsing from supervisor
        drm/nouveau/disp/dp: maintain receiver caps in response to hpd signal
        drm/nouveau/disp/dp: create subclass for dp outputs
        ...
      682b7c1c
    • Michal Schmidt's avatar
      rtnetlink: fix userspace API breakage for iproute2 < v3.9.0 · e5eca6d4
      Michal Schmidt authored
      When running RHEL6 userspace on a current upstream kernel, "ip link"
      fails to show VF information.
      
      The reason is a kernel<->userspace API change introduced by commit
      88c5b5ce ("rtnetlink: Call nlmsg_parse() with correct header length"),
      after which the kernel does not see iproute2's IFLA_EXT_MASK attribute
      in the netlink request.
      
      iproute2 adjusted for the API change in its commit 63338dca4513
      ("libnetlink: Use ifinfomsg instead of rtgenmsg in rtnl_wilddump_req_filter").
      
      The problem has been noticed before:
      http://marc.info/?l=linux-netdev&m=136692296022182&w=2
      (Subject: Re: getting VF link info seems to be broken in 3.9-rc8)
      
      We can do better than tell those with old userspace to upgrade. We can
      recognize the old iproute2 in the kernel by checking the netlink message
      length. Even when including the IFLA_EXT_MASK attribute, its netlink
      message is shorter than struct ifinfomsg.
      
      With this patch "ip link" shows VF information in both old and new
      iproute2 versions.
      Signed-off-by: default avatarMichal Schmidt <mschmidt@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e5eca6d4
    • Per Hurtig's avatar
      tcp: fixing TLP's FIN recovery · bef1909e
      Per Hurtig authored
      Fix to a problem observed when losing a FIN segment that does not
      contain data.  In such situations, TLP is unable to recover from
      *any* tail loss and instead adds at least PTO ms to the
      retransmission process, i.e., RTO = RTO + PTO.
      Signed-off-by: default avatarPer Hurtig <per.hurtig@kau.se>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Acked-by: default avatarNandita Dukkipati <nanditad@google.com>
      Acked-by: default avatarNeal Cardwell <ncardwell@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bef1909e
    • David S. Miller's avatar
      Merge branch 'fec' · fba0e1a3
      David S. Miller authored
      Fugang Duan says:
      
      ====================
      net: fec: Enable Software TSO to improve the tx performance
      
      Add SG and software TSO support for FEC.
      This feature allows to improve outbound throughput performance.
      Tested on imx6dl sabresd board, running iperf tcp tests shows:
              * 82% improvement comparing with NO SG & TSO patch
      
      $ ethtool -K eth0 sg on
      $ ethtool -K eth0 tso on
      [  3] local 10.192.242.108 port 35388 connected with 10.192.242.167 port 5001
      [ ID] Interval       Transfer     Bandwidth
      [  3]  0.0- 3.0 sec   181 MBytes   506 Mbits/sec
      * cpu loading is 30%
      
      $ ethtool -K eth0 sg off
      $ ethtool -K eth0 tso off
      [  3] local 10.192.242.108 port 52618 connected with 10.192.242.167 port 5001
      [ ID] Interval       Transfer     Bandwidth
      [  3]  0.0- 3.0 sec  99.5 MBytes   278 Mbits/sec
      
      FEC HW support IP header and TCP/UDP hw checksum, support multi buffer descriptor transfer
      one frame, but don't support HW TSO. And imx6q/dl SOC FEC Gbps speed has HW bus Bandwidth
      limitation (400Mbps ~ 700Mbps), imx6sx SOC FEC Gbps speed has no HW bandwidth limitation.
      
      The patch set just enable TSO feature, which is done following the mv643xx_eth driver.
      
      Test result analyze:
      imx6dl sabresd board: there have 82% improvement, since imx6dl FEC HW has bandwidth limitation,
                            the performance with SW TSO is a milestone.
      
      Addition test:
      imx6sx sdb board:
      upstream still don't support imx6sx due to some patches being upstream... they use same FEC IP.
      Use the SW TSO patches test imx6sx sdb board in internal kernel tree:
      No SW TSO patch: tx bandwidth 840Mbps, cpu loading is 100%.
      SW TSO patch:    tx bandwidth 942Mbps, cpu loading is 65%.
      It means the patch set have great improvement for imx6sx FEC performance.
      
      V2:
      * From Frank Li's suggestion:
      	Change the API "fec_enet_txdesc_entry_free" name to "fec_enet_get_free_txdesc_num".
      * Summary David Laight and Eric Dumazet's thoughts:
      	RX BD entry number change to 256.
      * From ezequiel's suggestion:
      	Follow the latest TSO fixes from his solution to rework the queue stop/wake-up.
      	Avoid unmapping the TSO header buffers.
      * From Eric Dumazet's suggestion:
      	Avoid more bytes copy, just copying the unaligned part of the payload into first
      	descriptor. The suggestion will bring more complex for the driver, and imx6dl FEC
      	DMA need 16 bytes alignment, but cpu loading is not problem that cpu loading is
      	30%, the current performance is so better. Later chip like imx6sx Gigbit FEC DMA
      	support byte alignment, so there don't exist memory copy. So, the V2 version drop
      	the suggestion.
      	Anyway, thanks for Eric's response and suggestion.
      
      V3:
      * From David Laight's feedback:
      	Decide to drop RX BD entry number change for the SW TSO patch set.
      	I will generate one separate patch to increase RX BDs entry for interrupt coalescing feature which
      	will be supported in my later patch set.
      
      V4:
      * From David Laight's feedback:
      	Remove the conditional in .fec_enet_get_bd_index().
      
      V5:
      * Patch #4 update:
        From David Laight's feedback:
      	"expect fec_enet_get_free_txdesc_num() to return one less than it does currently."
      	Change the function:
      	Return space available, 0..size-1.  it always leave one free entry. Which is same as linux circ_buf.
      
      Thanks for Eric and ezequiel's help and idea.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fba0e1a3
    • Nimrod Andy's avatar
      net: fec: Add software TSO support · 79f33912
      Nimrod Andy authored
      Add software TSO support for FEC.
      This feature allows to improve outbound throughput performance.
      
      Tested on imx6dl sabresd board, running iperf tcp tests shows:
      - 16.2% improvement comparing with FEC SG patch
      - 82% improvement comparing with NO SG & TSO patch
      
      $ ethtool -K eth0 tso on
      $ iperf -c 10.192.242.167 -t 3 &
      [  3] local 10.192.242.108 port 35388 connected with 10.192.242.167 port 5001
      [ ID] Interval       Transfer     Bandwidth
      [  3]  0.0- 3.0 sec   181 MBytes   506 Mbits/sec
      
      During the testing, CPU loading is 30%.
      Since imx6dl FEC Bandwidth is limited to SOC system bus bandwidth, the
      performance with SW TSO is a milestone.
      
      CC: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
      CC: Eric Dumazet <eric.dumazet@gmail.com>
      CC: David Laight <David.Laight@ACULAB.COM>
      CC: Li Frank <B20596@freescale.com>
      Signed-off-by: default avatarFugang Duan <B38611@freescale.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      79f33912
    • Nimrod Andy's avatar
      net: fec: Add Scatter/gather support · 6e909283
      Nimrod Andy authored
      Add Scatter/gather support for FEC.
      This feature allows to improve outbound throughput performance.
      
      Tested on imx6dl sabresd board:
      Running iperf tests shows a 55.4% improvement.
      
      $ ethtool -K eth0 sg off
      $ iperf -c 10.192.242.167 -t 3 &
      [  3] local 10.192.242.108 port 52618 connected with 10.192.242.167 port 5001
      [ ID] Interval       Transfer     Bandwidth
      [  3]  0.0- 3.0 sec  99.5 MBytes   278 Mbits/sec
      
      $ ethtool -K eth0 sg on
      $ iperf -c 10.192.242.167 -t 3 &
      [  3] local 10.192.242.108 port 52617 connected with 10.192.242.167 port 5001
      [ ID] Interval       Transfer     Bandwidth
      [  3]  0.0- 3.0 sec   154 MBytes   432 Mbits/sec
      
      CC: Li Frank <B20596@freescale.com>
      Signed-off-by: default avatarFugang Duan <B38611@freescale.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6e909283
    • Nimrod Andy's avatar
      net: fec: Increase buffer descriptor entry number · 55d0218a
      Nimrod Andy authored
      In order to support SG, software TSO, let's increase BD entry number.
      
      CC: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
      CC: Eric Dumazet <eric.dumazet@gmail.com>
      CC: David Laight <David.Laight@ACULAB.COM>
      Signed-off-by: default avatarFugang Duan <B38611@freescale.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      55d0218a
    • Nimrod Andy's avatar
      net: fec: Factorize feature setting · 09d1e541
      Nimrod Andy authored
      In order to enhance the code readable, let's factorize the
      feature list.
      Signed-off-by: default avatarFugang Duan <B38611@freescale.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      09d1e541
    • Nimrod Andy's avatar
      net: fec: Enable IP header hardware checksum · 96c50caa
      Nimrod Andy authored
      IP header checksum is calcalated by network layer in default.
      To support software TSO, it is better to use HW calculate the
      IP header checksum.
      
      FEC hw checksum feature request the checksum field in frame
      is zero, otherwise the calculative CRC is not correct.
      
      For segmentated TCP packet, HW calculate the IP header checksum again,
      it doesn't bring any impact. For SW TSO, HW calculated checksum bring
      better performance.
      Signed-off-by: default avatarFugang Duan <B38611@freescale.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      96c50caa
    • Nimrod Andy's avatar
      net: fec: Factorize the .xmit transmit function · 61a4427b
      Nimrod Andy authored
      Make the code more readable and easy to support other features like
      SG, TSO, moving the common transmit function to one api.
      
      And the patch also factorize the getting BD index to it own function.
      
      CC: David Laight <David.Laight@ACULAB.COM>
      Signed-off-by: default avatarFugang Duan <B38611@freescale.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      61a4427b