1. 29 May, 2015 3 commits
    • Michal Kazior's avatar
      ath10k: fix inconsistent survey reports · 44b7d483
      Michal Kazior authored
      In some cases some channel survey data was
      reported incorrect.
      
      Channel info events were expected to come in pairs
      without and with COMPLETE flag set respectively
      for each channel visit during scan.
      
      The known deviation from this is rule for last
      scan chan info and first (next) scan chan info
      both have COMPLETE flag set. This was either
      programmed with the intent of providing BSS cycle
      count info or this is an artefact of firmware scan
      state machine. Either way this is useless due to
      short wraparound time, wraparound quirks and no
      overflow notification.
      
      Survey dumps now include only data gathered during
      scan channel visits that can be computed
      correctly.
      
      This should improve hostapd ACS a little bit.
      Reported-by: default avatarSrinivasa Duvvuri <sduvvuri@chromium.org>
      Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      44b7d483
    • Michal Kazior's avatar
      ath10k: handle cycle counter wraparound · 587f7031
      Michal Kazior authored
      When QCA988X cycle counter HW register wraps
      around it resets to 0x7fffffff instead of 0. All
      other cycle counter related registers are divided
      by 2 so they never wraparound themselves. QCA61X4
      has a uniform CC and it wraparounds in a regular
      fashion though.
      
      Worst case wraparound time is approx 24 seconds
      (2**31 / 88MHz). Since scan channel visit times
      are max 5 seconds (offchannel case) it is
      guaranteed there's been at most 1 wraparound and
      it is possible to compute survey active time
      value. It is, however, impossible to determine the
      point at which Rx Clear Count has been divided by
      two so it is not reported upon wraparound.
      
      This fixes some occasional incorrect survey data
      on QCA988X as some channels (depending on how/when
      scan/offchannel requests were requested) would
      have approx 24 sec active time which wasn't
      actually the case.
      
      This should improve hostapd ACS a little bit.
      Reported-by: default avatarSrinivasa Duvvuri <sduvvuri@chromium.org>
      Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      587f7031
    • Michal Kazior's avatar
      ath10k: move cycle_count macro · 0936ea3f
      Michal Kazior authored
      The macro isn't WMI specific. Instead it is
      related to hardware chip so move the macro
      accordingly. While at it document the magic value.
      Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      0936ea3f
  2. 25 May, 2015 22 commits
  3. 23 May, 2015 13 commits
    • David S. Miller's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 36583eb5
      David S. Miller authored
      Conflicts:
      	drivers/net/ethernet/cadence/macb.c
      	drivers/net/phy/phy.c
      	include/linux/skbuff.h
      	net/ipv4/tcp.c
      	net/switchdev/switchdev.c
      
      Switchdev was a case of RTNH_H_{EXTERNAL --> OFFLOAD}
      renaming overlapping with net-next changes of various
      sorts.
      
      phy.c was a case of two changes, one adding a local
      variable to a function whilst the second was removing
      one.
      
      tcp.c overlapped a deadlock fix with the addition of new tcp_info
      statistic values.
      
      macb.c involved the addition of two zyncq device entries.
      
      skbuff.h involved adding back ipv4_daddr to nf_bridge_info
      whilst net-next changes put two other existing members of
      that struct into a union.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      36583eb5
    • David S. Miller's avatar
      Merge branch 'pktgen-new-scripts' · fa7912be
      David S. Miller authored
      Jesper Dangaard Brouer says:
      
      ====================
      pktgen: cleanups and introducing new samples/pktgen scripts
      
      v3:
       - Aborted v2 send due it was not generating diff stat
         (this is a bug in stg-mail, if not in the root directory)
      
      v2: address nitpicks from Cong Wang
       - Remove useless cat's, but keep them for old pgset()
       - Comment on: Due to pgctrl, cannot use exit code $? from grep
       - Use arithmetic compare in pktgen_sample03_burst_single_flow.sh
      
      This patchset is focused on making pktgen easier to use and better
      documented. It contains a number of documentation updates and minor
      changes to pktgen.  The major contribution is introduction of common
      helper function for sample scripts.
      
      Instead of the old pgset() function, three new shell functions for
      configuring the different components of pktgen are introduced:
       pg_ctrl(), pg_thread() and pg_set().
      
      The new functions correspond to pktgens different components.
       * pg_ctrl()   control "pgctrl" (/proc/net/pktgen/pgctrl)
       * pg_thread() control the kernel threads and binding to devices
       * pg_set()    control setup of individual devices
      
      Helpers also provide consistent parameter parsing across the sample
      scripts.
      
      Usage example:
       ./pktgen_sample01_simple.sh -i eth41 -m 00:12:C0:02:AC:5A -d 192.168.41.2
      
      Usage: ./pktgen_sample01_simple.sh [-vx] -i ethX
        -i : ($DEV)       output interface/device (required)
        -s : ($PKT_SIZE)  packet size
        -d : ($DEST_IP)   destination IP
        -m : ($DST_MAC)   destination MAC-addr
        -t : ($THREADS)   threads to start
        -c : ($SKB_CLONE) SKB clones send before alloc new SKB
        -b : ($BURST)     HW level bursting of SKBs
        -v : ($VERBOSE)   verbose
        -x : ($DEBUG)     debug
      
      These scripts are borrowed from:
       https://github.com/netoptimizer/network-testing/tree/master/pktgen
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fa7912be
    • Jesper Dangaard Brouer's avatar
      pktgen: add benchmark script pktgen_bench_xmit_mode_netif_receive.sh · 05a14d5e
      Jesper Dangaard Brouer authored
      This script pktgen_bench_xmit_mode_netif_receive.sh is a benchmark
      script, which can be used for benchmarking part of the network stack.
      This can be used for performance improving or catching regression in
      that area.
      
      The script is developed for benchmarking ingress qdisc path, original
      idea by Alexei Starovoitov.  This script don't really need any
      hardware.  This is achieved via the recently introduced stack inject
      feature "xmit_mode netif_receive". See commit 62f64aed ("pktgen:
      introduce xmit_mode '<start_xmit|netif_receive>'").
      Signed-off-by: default avatarJesper Dangaard Brouer <brouer@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      05a14d5e
    • Jesper Dangaard Brouer's avatar
      pktgen: add sample script pktgen_sample03_burst_single_flow.sh · 1d73ba16
      Jesper Dangaard Brouer authored
      Add the pktgen samples script pktgen_sample03_burst_single_flow.sh
      that demonstrates how to acheive maximum performance.
      
      If correctly tuned[1] single CPU 10Gbit/s wirespeed small pkts is
      possible[2] which is 14.88Mpps.  The trick is to take advantage of the
      "burst" feature introduced in commit 38b2cf29 ("net: pktgen:
      packet bursting via skb->xmit_more").
      
      [1] http://netoptimizer.blogspot.dk/2014/06/pktgen-for-network-overload-testing.html
      [2] http://netoptimizer.blogspot.dk/2014/10/unlocked-10gbps-tx-wirespeed-smallest.htmlSigned-off-by: default avatarJesper Dangaard Brouer <brouer@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1d73ba16
    • Jesper Dangaard Brouer's avatar
      pktgen: add sample script pktgen_sample02_multiqueue.sh · 282fb589
      Jesper Dangaard Brouer authored
      Add the pktgen samples script pktgen_sample02_multiqueue.sh that
      demonstrates generating packets on multiqueue NICs.
      
      Specifically notice the options "-t" that specifies how many
      kernel threads to activate.  Also notice the flag QUEUE_MAP_CPU,
      which cause the SKB TX queue to be mapped to the CPU running the
      kernel thread.  For best scalability people are also encourage to
      map NIC IRQ /proc/irq/*/smp_affinity to CPU number.
      
      Usage example with "-t" 4 threads and help:
       ./pktgen_sample02_multiqueue.sh -i eth4 -m 00:1B:21:3C:9D:F8 -t 4
      
      Usage: ./pktgen_sample02_multiqueue.sh [-vx] -i ethX
        -i : ($DEV)       output interface/device (required)
        -s : ($PKT_SIZE)  packet size
        -d : ($DEST_IP)   destination IP
        -m : ($DST_MAC)   destination MAC-addr
        -t : ($THREADS)   threads to start
        -c : ($SKB_CLONE) SKB clones send before alloc new SKB
        -b : ($BURST)     HW level bursting of SKBs
        -v : ($VERBOSE)   verbose
        -x : ($DEBUG)     debug
      
      Removing pktgen.conf-2-1 and pktgen.conf-2-2 as these examples
      should be covered now.
      Signed-off-by: default avatarJesper Dangaard Brouer <brouer@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      282fb589
    • Jesper Dangaard Brouer's avatar
      pktgen: add sample script pktgen_sample01_simple.sh · 6f094797
      Jesper Dangaard Brouer authored
      Add the first basic pktgen samples script pktgen_sample01_simple.sh,
      which demonstrates the a simple use of the helper functions.
      Removing pktgen.conf-1-1 as that example should be covered now.
      
      The naming scheme pktgen_sampleNN, where NN is a number, should encourage
      reading the samples in a specific order.
      
      Script cause pktgen sending with a single thread and single interface,
      and introduce flow variation via random UDP source port.
      
      Usage example and help:
       ./pktgen_sample01_simple.sh -i eth4 -m 00:1B:21:3C:9D:F8 -d 192.168.8.2
      
      Usage: ./pktgen_sample01_simple.sh [-vx] -i ethX
        -i : ($DEV)       output interface/device (required)
        -s : ($PKT_SIZE)  packet size
        -d : ($DEST_IP)   destination IP
        -m : ($DST_MAC)   destination MAC-addr
        -c : ($SKB_CLONE) SKB clones send before alloc new SKB
        -v : ($VERBOSE)   verbose
        -x : ($DEBUG)     debug
      Signed-off-by: default avatarJesper Dangaard Brouer <brouer@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6f094797
    • Jesper Dangaard Brouer's avatar
      pktgen: new pktgen helper functions for samples scripts · b64b0d1e
      Jesper Dangaard Brouer authored
      Preparing for removing existing samples/pktgen/ scripts, and
      replacing these with easier to use samples.
      
      This commit provides two helper shell files, that can
      be "included" by shell source'ing. Namely "functions.sh"
      and "parameters.sh".
      
      The parameters.sh file support easy and consistant parameter
      parsing across the sample scripts.  Usage example is printed on
      errors.
      
      The functions.sh file provides, three new shell functions for
      configuring the different components of pktgen: pg_ctrl(),
      pg_thread() and pg_set().  A slightly improved version of the old
      pgset() function is also provided for backwards compat.
      
      The new functions correspond to pktgens different components.
       * pg_ctrl()   control "pgctrl" (/proc/net/pktgen/pgctrl)
       * pg_thread() control the kernel threads and binding to devices
       * pg_set()    control setup of individual devices
      
      These changes are borrowed from:
       https://github.com/netoptimizer/network-testing/tree/master/pktgenSigned-off-by: default avatarJesper Dangaard Brouer <brouer@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b64b0d1e
    • Jesper Dangaard Brouer's avatar
      pktgen: make /proc/net/pktgen/pgctrl report fail on invalid input · 40207264
      Jesper Dangaard Brouer authored
      Giving /proc/net/pktgen/pgctrl an invalid command just returns shell
      success and prints a warning in dmesg.  This is not very useful for
      shell scripting, as it can only detect the error by parsing dmesg.
      
      Instead return -EINVAL when the command is unknown, as this provides
      userspace shell scripting a way of detecting this.
      
      Also bump version tag to 2.75, because (1) reading /proc/net/pktgen/pgctrl
      output this version number which would allow to detect this small
      semantic change, and (2) because the pktgen version tag have not been
      updated since 2010.
      Signed-off-by: default avatarJesper Dangaard Brouer <brouer@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      40207264
    • Jesper Dangaard Brouer's avatar
      pktgen: document ability to add same device to several threads · 2a1ddf27
      Jesper Dangaard Brouer authored
      The pktgen.txt documentation still claimed that adding same device to
      multiple threads were not supported, but it have been since 2008 via
      commit e6fce5b9 ("pktgen: multiqueue etc.").
      
      Document this and describe the naming scheme dev@X, as the procfile name
      still need to be unique.
      
      Fixes: e6fce5b9 ("pktgen: multiqueue etc.")
      Signed-off-by: default avatarJesper Dangaard Brouer <brouer@redhat.com>
      Acked-by: default avatarAlexei Starovoitov <ast@plumgrid.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2a1ddf27
    • Jesper Dangaard Brouer's avatar
      pktgen: doc were missing several config options · 91db4b3c
      Jesper Dangaard Brouer authored
      The pktgen.txt documentation over available config options were not complete.
      Making the list complete by adding the following.
      
      Pgcontrol commands:
       reset
      
      Device commands:
       burst
       queue_map_min
       queue_map_max
       skb_priority
       tos
       traffic_class
       node
       spi
       dst6_max
       dst6_min
       vlan_cfi
       vlan_id
       vlan_p
       svlan_cfi
       svlan_id
       svlan_p
      Signed-off-by: default avatarJesper Dangaard Brouer <brouer@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      91db4b3c
    • Jesper Dangaard Brouer's avatar
      pktgen: adjust spacing in proc file interface output · d079abd1
      Jesper Dangaard Brouer authored
      Too many spaces were introduced in commit 63adc6fb ("pktgen: cleanup
      checkpatch warnings"), thus misaligning "src_min:" to other columns.
      
      Fixes: 63adc6fb ("pktgen: cleanup checkpatch warnings")
      Signed-off-by: default avatarJesper Dangaard Brouer <brouer@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d079abd1
    • Jesper Dangaard Brouer's avatar
      pktgen: remove obsolete "max_before_softirq" from pktgen doc · d012827e
      Jesper Dangaard Brouer authored
      And cleanup some whitespaces in pktgen.txt.
      Signed-off-by: default avatarJesper Dangaard Brouer <brouer@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d012827e
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · cf539cbd
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Radeon has two displayport fixes, one for a regression.
      
        i915 regression flicker fix needed so 4.0 can get fixed.
      
        A bunch of msm fixes and a bunch of exynos fixes, these two are
        probably a bit larger than I'd like, but most of them seems pretty
        good"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (29 commits)
        drm/radeon: fix error flag checking in native aux path
        drm/radeon: retry dcpd fetch
        drm/msm/mdp5: fix incorrect parameter for msm_framebuffer_iova()
        drm/exynos: dp: Lower level of EDID read success message
        drm/exynos: cleanup exynos_drm_plane
        drm/exynos: 'win' is always unsigned
        drm/exynos: mixer: don't dump registers under spinlock
        drm/exynos: Consolidate return statements in fimd_bind()
        drm/exynos: Constify exynos_drm_crtc_ops
        drm/exynos: Fix build breakage on !DRM_EXYNOS_FIMD
        drm/exynos: mixer: Constify platform_device_id
        drm/exynos: mixer: cleanup pixelformat handling
        drm/exynos: mixer: also allow NV21 for the video processor
        drm/exynos: mixer: remove buffer count handling in vp_video_buffer()
        drm/exynos: plane: honor buffer offset for dma_addr
        drm/exynos: fb: use drm_format_num_planes to get buffer count
        drm/i915: fix screen flickering
        drm/msm: fix locking inconsistencies in gpu->destroy()
        drm/msm/dsi: Simplify the code to get the number of read byte
        drm/msm: Attach assigned encoder to eDP and DSI connectors
        ...
      cf539cbd
  4. 22 May, 2015 2 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 0b6280c6
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Don't leak ipvs->sysctl_tbl, from Tommi Rentala.
      
       2) Fix neighbour table entry leak in rocker driver, from Ying Xue.
      
       3) Do not emit bonding notifications for unregistered interfaces, from
          Nicolas Dichtel.
      
       4) Set ipv6 flow label properly when in TIME_WAIT state, from Florent
          Fourcot.
      
       5) Fix regression in ipv6 multicast filter test, from Henning Rogge.
      
       6) do_replace() in various footables netfilter modules is missing a
          check for 0 counters in the datastructure provided by the user.  Fix
          from Dave Jones, and found with trinity.
      
       7) Fix RCU bug in packet scheduler classifier module unloads, from
          Daniel Borkmann.
      
       8) Avoid deadlock in tcp_get_info() by using u64_sync.  From Eric
          Dumzaet.
      
       9) Input packet processing can race with inetdev_destroy() teardown,
          fix potential OOPS in ip_error() by explicitly testing whether the
          inetdev is still attached.  From Eric W Biederman.
      
      10) MLDv2 parser in bridge multicast code breaks too early while
          parsing.  Fix from Thadeu Lima de Souza Cascardo.
      
      11) Asking for settings on non-zero PHYID doesn't work because we do not
          import the command structure from the user and use the PHYID
          provided there.  Fix from Arun Parameswaran.
      
      12) Fix UDP checksums with IPV6 RAW sockets, from Vlad Yasevich.
      
      13) Missing NF_TABLES depends for TPROXY etc can cause build failures,
          fix from Florian Westphal.
      
      14) Fix netfilter conntrack to handle RFC5961 challenge ACKs properly,
          from Jesper Dangaard Brouer.
      
      15) If netlink autobind retry fails, we have to reset the sockets portid
          back to zero.  From Herbert Xu.
      
      16) VXLAN netns exit code unregisters using wrong device, from John W
          Linville.
      
      17) Add some USB device IDs to ath3k and btusb bluetooth drivers, from
          Dmitry Tunin and Wen-chien Jesse Sung.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (44 commits)
        bridge: fix lockdep splat
        net: core: 'ethtool' issue with querying phy settings
        bridge: fix parsing of MLDv2 reports
        ARM: zynq: DT: Use the zynq binding with macb
        net: macb: Disable half duplex gigabit on Zynq
        net: macb: Document zynq gem dt binding
        ipv4: fill in table id when replacing a route
        cdc_ncm: Fix tx_bytes statistics
        ipv4: Avoid crashing in ip_error
        tcp: fix a potential deadlock in tcp_get_info()
        net: sched: fix call_rcu() race on classifier module unloads
        net: phy: Make sure phy_start() always re-enables the phy interrupts
        ipv6: fix ECMP route replacement
        ipv6: do not delete previously existing ECMP routes if add fails
        Revert "netfilter: bridge: query conntrack about skb dnat"
        netfilter: ensure number of counters is >0 in do_replace()
        netfilter: nfnetlink_{log,queue}: Register pernet in first place
        tcp: don't over-send F-RTO probes
        tcp: only undo on partial ACKs in CA_Loss
        net/ipv6/udp: Fix ipv6 multicast socket filter regression
        ...
      0b6280c6
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · 1c8df7bd
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "Three small fixes that have been picked up the last few weeks.
        Specifically:
      
         - Fix a memory corruption issue in NVMe with malignant user
           constructed request.  From Christoph.
      
         - Kill (now) unused blk_queue_bio(), dm was changed to not need this
           anymore.  From Mike Snitzer.
      
         - Always use blk_schedule_flush_plug() from the io_schedule() path
           when flushing a plug, fixing a !TASK_RUNNING warning with md.  From
           Shaohua"
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        sched: always use blk_schedule_flush_plug in io_schedule_out
        nvme: fix kernel memory corruption with short INQUIRY buffers
        block: remove export for blk_queue_bio
      1c8df7bd