1. 21 11月, 2017 2 次提交
  2. 19 11月, 2017 1 次提交
  3. 18 11月, 2017 5 次提交
  4. 17 11月, 2017 5 次提交
  5. 16 11月, 2017 8 次提交
  6. 15 11月, 2017 3 次提交
    • L
      block, bfq: move debug blkio stats behind CONFIG_DEBUG_BLK_CGROUP · a33801e8
      Luca Miccio 提交于
      BFQ currently creates, and updates, its own instance of the whole
      set of blkio statistics that cfq creates. Yet, from the comments
      of Tejun Heo in [1], it turned out that most of these statistics
      are meant/useful only for debugging. This commit makes BFQ create
      the latter, debugging statistics only if the option
      CONFIG_DEBUG_BLK_CGROUP is set.
      
      By doing so, this commit also enables BFQ to enjoy a high perfomance
      boost. The reason is that, if CONFIG_DEBUG_BLK_CGROUP is not set, then
      BFQ has to update far fewer statistics, and, in particular, not the
      heaviest to update.  To give an idea of the benefits, if
      CONFIG_DEBUG_BLK_CGROUP is not set, then, on an Intel i7-4850HQ, and
      with 8 threads doing random I/O in parallel on null_blk (configured
      with 0 latency), the throughput of BFQ grows from 310 to 400 KIOPS
      (+30%). We have measured similar or even much higher boosts with other
      CPUs: e.g., +45% with an ARM CortexTM-A53 Octa-core. Our results have
      been obtained and can be reproduced very easily with the script in [1].
      
      [1] https://www.spinics.net/lists/linux-block/msg18943.htmlSuggested-by: NTejun Heo <tj@kernel.org>
      Suggested-by: NUlf Hansson <ulf.hansson@linaro.org>
      Tested-by: NLee Tibbert <lee.tibbert@gmail.com>
      Tested-by: NOleksandr Natalenko <oleksandr@natalenko.name>
      Signed-off-by: NLuca Miccio <lucmiccio@gmail.com>
      Signed-off-by: NPaolo Valente <paolo.valente@linaro.org>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      a33801e8
    • P
      block, bfq: update blkio stats outside the scheduler lock · 24bfd19b
      Paolo Valente 提交于
      bfq invokes various blkg_*stats_* functions to update the statistics
      contained in the special files blkio.bfq.* in the blkio controller
      groups, i.e., the I/O accounting related to the proportional-share
      policy provided by bfq. The execution of these functions takes a
      considerable percentage, about 40%, of the total per-request execution
      time of bfq (i.e., of the sum of the execution time of all the bfq
      functions that have to be executed to process an I/O request from its
      creation to its destruction).  This reduces the request-processing
      rate sustainable by bfq noticeably, even on a multicore CPU. In fact,
      the bfq functions that invoke blkg_*stats_* functions cannot be
      executed in parallel with the rest of the code of bfq, because both
      are executed under the same same per-device scheduler lock.
      
      To reduce this slowdown, this commit moves, wherever possible, the
      invocation of these functions (more precisely, of the bfq functions
      that invoke blkg_*stats_* functions) outside the critical sections
      protected by the scheduler lock.
      
      With this change, and with all blkio.bfq.* statistics enabled, the
      throughput grows, e.g., from 250 to 310 KIOPS (+25%) on an Intel
      i7-4850HQ, in case of 8 threads doing random I/O in parallel on
      null_blk, with the latter configured with 0 latency. We obtained the
      same or higher throughput boosts, up to +30%, with other processors
      (some figures are reported in the documentation). For our tests, we
      used the script [1], with which our results can be easily reproduced.
      
      NOTE. This commit still protects the invocation of blkg_*stats_*
      functions with the request_queue lock, because the group these
      functions are invoked on may otherwise disappear before or while these
      functions are executed.  Fortunately, tests without even this lock
      show, by difference, that the serialization caused by this lock has a
      little impact (at most ~5% of throughput reduction).
      
      [1] https://github.com/Algodev-github/IOSpeedTested-by: NLee Tibbert <lee.tibbert@gmail.com>
      Tested-by: NOleksandr Natalenko <oleksandr@natalenko.name>
      Signed-off-by: NPaolo Valente <paolo.valente@linaro.org>
      Signed-off-by: NLuca Miccio <lucmiccio@gmail.com>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      24bfd19b
    • P
      doc, block, bfq: update max IOPS sustainable with BFQ · 68017e5d
      Paolo Valente 提交于
      We have investigated more deeply the performance of BFQ, in terms of
      number of IOPS that can be processed by the CPU when BFQ is used as
      I/O scheduler. In more detail, using the script [1], we have measured
      the number of IOPS reached on top of a null block device configured
      with zero latency, as a function of the workload (sequential read,
      sequential write, random read, random write) and of the system (we
      considered desktops, laptops and embedded systems).
      
      Basing on the resulting figures, with this commit we update the
      current, conservative IOPS range reported in BFQ documentation. In
      particular, the documentation now reports, for each of three different
      systems, the lowest number of IOPS obtained for that system with the
      above test (namely, the value obtained with the workload leading to
      the lowest IOPS).
      
      [1] https://github.com/Algodev-github/IOSpeedReviewed-by: NLee Tibbert <lee.tibbert@gmail.com>
      Signed-off-by: NPaolo Valente <paolo.valente@linaro.org>
      Signed-off-by: NLuca Miccio <lucmiccio@gmail.com>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      68017e5d
  7. 14 11月, 2017 4 次提交
  8. 13 11月, 2017 3 次提交
  9. 11 11月, 2017 8 次提交
    • N
      bindings: net: stmmac: correctify note about LPI interrupt · 3ec26c79
      Niklas Cassel 提交于
      There are two different combined signal for various interrupt events:
      In EQOS-CORE and EQOS-MTL configurations, mci_intr_o is the interrupt
      signal.
      In EQOS-DMA, EQOS-AHB and EQOS-AXI configurations, these interrupt events
      are combined with the events in the DMA on the sbd_intr_o signal.
      
      Depending on configuration, the device tree irq "macirq" will refer to
      either mci_intr_o or sbd_intr_o.
      
      The databook states:
      "The MAC generates the LPI interrupt when the Tx or Rx side enters or exits
      the LPI state. The interrupt mci_intr_o (sbd_intr_o in certain
      configurations) is asserted when the LPI interrupt status is set.
      
      When the MAC exits the Rx LPI state, then in addition to the mci_intr_o
      (sbd_intr_o in certain configurations), the sideband signal lpi_intr_o is
      asserted.
      
      If you do not want to gate-off the application clock during the Rx LPI
      state, you can leave the lpi_intr_o signal unconnected and use the
      mci_intr_o (sbd_intr_o in certain configurations) signal to detect Rx LPI
      exit."
      
      Since the "macirq" is always raised when Tx or Rx enters/exits the LPI
      state, "eth_lpi" must therefore refer to lpi_intr_o, which is only raised
      when Rx exits the LPI state. Update the DT binding description to reflect
      reality.
      Signed-off-by: NNiklas Cassel <niklas.cassel@axis.com>
      Acked-by: NAlexandre TORGUE <alexandre.torgue@st.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3ec26c79
    • Y
      tcp: retire FACK loss detection · 713bafea
      Yuchung Cheng 提交于
      FACK loss detection has been disabled by default and the
      successor RACK subsumed FACK and can handle reordering better.
      This patch removes FACK to simplify TCP loss recovery.
      Signed-off-by: NYuchung Cheng <ycheng@google.com>
      Reviewed-by: NEric Dumazet <edumazet@google.com>
      Reviewed-by: NNeal Cardwell <ncardwell@google.com>
      Reviewed-by: NSoheil Hassas Yeganeh <soheil@google.com>
      Reviewed-by: NPriyaranjan Jha <priyarjha@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      713bafea
    • M
      net: ipv6: sysctl to specify IPv6 ND traffic class · 2210d6b2
      Maciej Żenczykowski 提交于
      Add a per-device sysctl to specify the default traffic class to use for
      kernel originated IPv6 Neighbour Discovery packets.
      
      Currently this includes:
      
        - Router Solicitation (ICMPv6 type 133)
          ndisc_send_rs() -> ndisc_send_skb() -> ip6_nd_hdr()
      
        - Neighbour Solicitation (ICMPv6 type 135)
          ndisc_send_ns() -> ndisc_send_skb() -> ip6_nd_hdr()
      
        - Neighbour Advertisement (ICMPv6 type 136)
          ndisc_send_na() -> ndisc_send_skb() -> ip6_nd_hdr()
      
        - Redirect (ICMPv6 type 137)
          ndisc_send_redirect() -> ndisc_send_skb() -> ip6_nd_hdr()
      
      and if the kernel ever gets around to generating RA's,
      it would presumably also include:
      
        - Router Advertisement (ICMPv6 type 134)
          (radvd daemon could pick up on the kernel setting and use it)
      
      Interface drivers may examine the Traffic Class value and translate
      the DiffServ Code Point into a link-layer appropriate traffic
      prioritization scheme.  An example of mapping IETF DSCP values to
      IEEE 802.11 User Priority values can be found here:
      
          https://tools.ietf.org/html/draft-ietf-tsvwg-ieee-802-11
      
      The expected primary use case is to properly prioritize ND over wifi.
      
      Testing:
        jzem22:~# cat /proc/sys/net/ipv6/conf/eth0/ndisc_tclass
        0
        jzem22:~# echo -1 > /proc/sys/net/ipv6/conf/eth0/ndisc_tclass
        -bash: echo: write error: Invalid argument
        jzem22:~# echo 256 > /proc/sys/net/ipv6/conf/eth0/ndisc_tclass
        -bash: echo: write error: Invalid argument
        jzem22:~# echo 0 > /proc/sys/net/ipv6/conf/eth0/ndisc_tclass
        jzem22:~# echo 255 > /proc/sys/net/ipv6/conf/eth0/ndisc_tclass
        jzem22:~# cat /proc/sys/net/ipv6/conf/eth0/ndisc_tclass
        255
        jzem22:~# echo 34 > /proc/sys/net/ipv6/conf/eth0/ndisc_tclass
        jzem22:~# cat /proc/sys/net/ipv6/conf/eth0/ndisc_tclass
        34
      
        jzem22:~# echo $[0xDC] > /proc/sys/net/ipv6/conf/eth0/ndisc_tclass
        jzem22:~# tcpdump -v -i eth0 icmp6 and src host jzem22.pgc and dst host fe80::1
        tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
        IP6 (class 0xdc, hlim 255, next-header ICMPv6 (58) payload length: 24)
        jzem22.pgc > fe80::1: [icmp6 sum ok] ICMP6, neighbor advertisement,
        length 24, tgt is jzem22.pgc, Flags [solicited]
      
      (based on original change written by Erik Kline, with minor changes)
      
      v2: fix 'suspicious rcu_dereference_check() usage'
          by explicitly grabbing the rcu_read_lock.
      
      Cc: Lorenzo Colitti <lorenzo@google.com>
      Signed-off-by: NErik Kline <ek@google.com>
      Signed-off-by: NMaciej Żenczykowski <maze@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2210d6b2
    • C
      block: remove __bio_kmap_atomic · d004a5e7
      Christoph Hellwig 提交于
      This helper doesn't buy us much over calling kmap_atomic directly.
      In fact in the only caller it does a bit of useless work as the
      caller already has the bvec at hand, and said caller would even
      buggy for a multi-segment bio due to the use of this helper.
      
      So just remove it.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      d004a5e7
    • J
      block: kill bio_kmap/kunmap_irq() · 83f5f7ed
      Jens Axboe 提交于
      There are no users of it anymore.
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      83f5f7ed
    • O
      ASoC: add mclk-fs to audio graph card binding · b8b0d10c
      Olivier Moysan 提交于
      Add mclk-fs support to audio graph card
      as initially supported in simple card.
      Signed-off-by: NOlivier Moysan <olivier.moysan@st.com>
      Acked-by: NKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      b8b0d10c
    • A
      Input: add support for the Samsung S6SY761 touchscreen · 0145a714
      Andi Shyti 提交于
      The S6SY761 touchscreen is a capicitive multi-touch controller
      for mobile use. It's connected with i2c at the address 0x48.
      
      This commit provides a basic version of the driver which can
      handle only initialization, touch events and power states.
      
      The controller is controlled by a firmware which, in the version
      I currently have, doesn't provide all the possible
      functionalities mentioned in the datasheet.
      Signed-off-by: NAndi Shyti <andi.shyti@samsung.com>
      Acked-by: NRob Herring <robh@kernel.org>
      Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
      0145a714
    • A
      Input: add support for HiDeep touchscreen · 842ff286
      Anthony Kim 提交于
      The HiDeep touchscreen device is a capacitive multi-touch controller
      mainly for multi-touch supported devices use. It use I2C interface for
      communication to IC and provide axis X, Y, Z locations for ten finger
      touch through input event interface to userspace.
      
      It support the Crimson and the Lime two type IC. They are different
      the number of channel supported and FW size. But the working protocol
      is same.
      Signed-off-by: NAnthony Kim <anthony.kim@hideep.com>
      Acked-by: NRob Herring <robh+dt@kernel.org>
      Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
      842ff286
  10. 10 11月, 2017 1 次提交