1. 06 4月, 2016 2 次提交
  2. 05 4月, 2016 14 次提交
  3. 30 3月, 2016 11 次提交
  4. 18 3月, 2016 1 次提交
    • J
      mm: introduce page reference manipulation functions · fe896d18
      Joonsoo Kim 提交于
      The success of CMA allocation largely depends on the success of
      migration and key factor of it is page reference count.  Until now, page
      reference is manipulated by direct calling atomic functions so we cannot
      follow up who and where manipulate it.  Then, it is hard to find actual
      reason of CMA allocation failure.  CMA allocation should be guaranteed
      to succeed so finding offending place is really important.
      
      In this patch, call sites where page reference is manipulated are
      converted to introduced wrapper function.  This is preparation step to
      add tracepoint to each page reference manipulation function.  With this
      facility, we can easily find reason of CMA allocation failure.  There is
      no functional change in this patch.
      
      In addition, this patch also converts reference read sites.  It will
      help a second step that renames page._count to something else and
      prevents later attempt to direct access to it (Suggested by Andrew).
      Signed-off-by: NJoonsoo Kim <iamjoonsoo.kim@lge.com>
      Acked-by: NMichal Nazarewicz <mina86@mina86.com>
      Acked-by: NVlastimil Babka <vbabka@suse.cz>
      Cc: Minchan Kim <minchan@kernel.org>
      Cc: Mel Gorman <mgorman@techsingularity.net>
      Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
      Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      fe896d18
  5. 04 3月, 2016 2 次提交
    • C
      e1000e: Adds hardware supported cross timestamp on e1000e nic · 01d7ada5
      Christopher S. Hall 提交于
      Modern Intel systems supports cross timestamping of the network device
      clock and Always Running Timer (ART) in hardware.  This allows the
      device time and system time to be precisely correlated. The timestamp
      pair is returned through e1000e_phc_get_syncdevicetime() used by
      get_system_device_crosststamp().  The hardware cross-timestamp result
      is made available to applications through the PTP_SYS_OFFSET_PRECISE
      ioctl which calls e1000e_phc_getcrosststamp().
      
      Cc: Prarit Bhargava <prarit@redhat.com>
      Cc: Richard Cochran <richardcochran@gmail.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Andy Lutomirski <luto@amacapital.net>
      Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
      Cc: kevin.b.stanton@intel.com
      Cc: kevin.j.clarke@intel.com
      Cc: hpa@zytor.com
      Cc: jeffrey.t.kirsher@intel.com
      Cc: netdev@vger.kernel.org
      Acked-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: NChristopher S. Hall <christopher.s.hall@intel.com>
      [jstultz: Reworked to use new interface, commit message tweaks]
      Signed-off-by: NJohn Stultz <john.stultz@linaro.org>
      01d7ada5
    • J
      net: relax setup_tc ndo op handle restriction · 5eb4dce3
      John Fastabend 提交于
      I added this check in setup_tc to multiple drivers,
      
       if (handle != TC_H_ROOT || tc->type != TC_SETUP_MQPRIO)
      
      Unfortunately restricting to TC_H_ROOT like this breaks the old
      instantiation of mqprio to setup a hardware qdisc. This patch
      relaxes the test to only check the type to make it equivalent
      to the check before I broke it. With this the old instantiation
      continues to work.
      
      A good smoke test is to setup mqprio with,
      
      # tc qdisc add dev eth4 root mqprio num_tc 8 \
        map 0 1 2 3 4 5 6 7 \
        queues 0@0 1@1 2@2 3@3 4@4 5@5 6@6 7@7
      
      Fixes: e4c6734e ("net: rework ndo tc op to consume additional qdisc handle paramete")
      Reported-by: NSingh Krishneil <krishneil.k.singh@intel.com>
      Reported-by: NJake Keller <jacob.e.keller@intel.com>
      CC: Murali Karicheri <m-karicheri2@ti.com>
      CC: Shradha Shah <sshah@solarflare.com>
      CC: Or Gerlitz <ogerlitz@mellanox.com>
      CC: Ariel Elior <ariel.elior@qlogic.com>
      CC: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
      CC: Bruce Allan <bruce.w.allan@intel.com>
      CC: Jesse Brandeburg <jesse.brandeburg@intel.com>
      CC: Don Skidmore <donald.c.skidmore@intel.com>
      Signed-off-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5eb4dce3
  6. 02 3月, 2016 1 次提交
  7. 01 3月, 2016 1 次提交
  8. 25 2月, 2016 8 次提交
    • S
      igb: call ndo_stop() instead of dev_close() when running offline selftest · 46eafa59
      Stefan Assmann 提交于
      Calling dev_close() causes IFF_UP to be cleared which will remove the
      interfaces routes and some addresses. That's probably not what the user
      intended when running the offline selftest. Besides this does not happen
      if the interface is brought down before the test, so the current
      behaviour is inconsistent.
      Instead call the net_device_ops ndo_stop function directly and avoid
      touching IFF_UP at all.
      Signed-off-by: NStefan Assmann <sassmann@kpanic.de>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      46eafa59
    • C
      igb: Fix VLAN tag stripping on Intel i350 · 030f9f52
      Corinna Vinschen 提交于
      Problem: When switching off VLAN offloading on an i350, the VLAN
      interface gets unusable.  For testing, set up a VLAN on an i350
      and some remote machine, e.g.:
      
        $ ip link add link eth0 name eth0.42 type vlan id 42
        $ ip addr add 192.168.42.1/24 dev eth0.42
        $ ip link set dev eth0.42 up
      
      Offloading is switched on by default:
      
        $ ethtool -k eth0 | grep vlan-offload
        rx-vlan-offload: on
        tx-vlan-offload: on
      
        $ ping -c 3 -I eth0.42 192.168.42.2
        [...works as usual...]
      
      Now switch off VLAN offloading and try again:
      
        $ ethtool -K eth0 rxvlan off
        Actual changes:
        rx-vlan-offload: off
        tx-vlan-offload: off [requested on]
        $ ping -c 3 -I eth0.42 192.168.42.2
        PING 192.168.42.2 (192.168.42.2) from 192.168.42.1 eth0.42: 56(84) bytes of da
      ta.
      
        --- 192.168.42.2 ping statistics ---
        3 packets transmitted, 0 received, 100% packet loss, time 1999ms
      
      I can only reproduce it on an i350, the above works fine on a 82580.
      
      While inspecting the igb source, I came across the code in igb_set_vmolr
      which sets the E1000_VMOLR_STRVLAN/E1000_DVMOLR_STRVLAN flags once and
      for all, and in all of the igb code there's no other place where the
      STRVLAN is set or cleared.  Thus, VLAN stripping is enabled in igb
      unconditionally, independently of the offloading setting.
      
      I compared that to the latest Intel igb-5.3.3.5 driver from
      http://sourceforge.net/projects/e1000/ which in fact sets and clears the
      STRVLAN flag independently from igb_set_vmolr in its own function
      igb_set_vf_vlan_strip, depending on the vlan settings.
      
      So I included the STRVLAN handling from the igb-5.3.3.5 driver into our
      current igb driver and tested the above scenario again.  This time ping
      still works after switching off VLAN offloading.
      
      Tested on i350, with and without addtional VFs, as well as on 82580
      successfully.
      Signed-off-by: NCorinna Vinschen <vinschen@redhat.com>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      030f9f52
    • J
      igbvf: remove "link is Up" message when registering mcast address · cc54a59a
      Jon Maxwell 提交于
      A similar issue was addressed a few years ago in the following thread:
      
      http://www.spinics.net/lists/netdev/msg245877.html
      
      At that time there were concerns that removing this statement may cause other
      side effects. However the submitter addressed those concerns. But the dialogue
      went cold. We have a new case where a customers application is registering and
      un-registering multicast addresses every few seconds. This is leading to many
      "Link is Up" messages in the logs as a result of the
      "netif_carrier_off(netdev)" statement called by igbvf_msix_other(). Also on
      some kernels it is interfering with the bonding driver causing it to failover
      and subsequently affecting connectivity.
      
      The Sourgeforge driver does not make this call and is therefore not affected.
      If there were any side effects I would expect that driver to also be affected.
      I have tested re-loading the igbvf driver and downing the adapter with the PF
      entity on the host where the VM has this patch. When I bring it back up again
      connectivity is restored as expected. Therefore I request that this patch gets
      submitted.
      Signed-off-by: NJon Maxwell <jmaxwell37@gmail.com>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      cc54a59a
    • A
      igbvf: Add support for generic Tx checksums · ea6ce602
      Alexander Duyck 提交于
      This patch adds support for generic Tx checksums to the igbvf driver.  It
      turns out this is actually pretty easy after going over the datasheet as we
      were doing a number of steps we didn't need to.
      
      In order to perform a Tx checksum for an L4 header we need to fill in the
      following fields in the Tx descriptor:
        MACLEN (maximum of 127), retrieved from:
      		skb_network_offset()
        IPLEN  (maximum of 511), retrieved from:
      		skb_checksum_start_offset() - skb_network_offset()
        TUCMD.L4T indicates offset and if checksum or crc32c, based on:
      		skb->csum_offset
      
      The added advantage to doing this is that we can support inner checksum
      offloads for tunnels and MPLS while still being able to transparently
      insert VLAN tags.
      
      I also took the opportunity to clean-up many of the feature flag
      configuration bits to make them a bit more consistent between drivers.  In
      the case of the VF drivers this meant adding support for SCTP CRCs, and
      inner checksum offloads for MPLS and various tunnel types.
      Signed-off-by: NAlexander Duyck <aduyck@mirantis.com>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      ea6ce602
    • A
      igb: Add support for generic Tx checksums · 6e033700
      Alexander Duyck 提交于
      This patch adds support for generic Tx checksums to the igb driver.  It
      turns out this is actually pretty easy after going over the datasheet as we
      were doing a number of steps we didn't need to.
      
      In order to perform a Tx checksum for an L4 header we need to fill in the
      following fields in the Tx descriptor:
        MACLEN (maximum of 127), retrieved from:
      		skb_network_offset()
        IPLEN  (maximum of 511), retrieved from:
      		skb_checksum_start_offset() - skb_network_offset()
        TUCMD.L4T indicates offset and if checksum or crc32c, based on:
      		skb->csum_offset
      
      The added advantage to doing this is that we can support inner checksum
      offloads for tunnels and MPLS while still being able to transparently
      insert VLAN tags.
      
      I also took the opportunity to clean-up many of the feature flag
      configuration bits to make them a bit more consistent between drivers.
      Signed-off-by: NAlexander Duyck <aduyck@mirantis.com>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      6e033700
    • T
      igb: rename igb define to be more generic · c883de9f
      Todd Fujinaka 提交于
      E1000_MRQC_ENABLE_RSS_4Q enables 4 and 8 queues depending on the part
      so rename to be generic.
      
      Similarly, E1000_MRQC_ENABLE_VMDQ_RSS_2Q has no numeric meaning so
      rename to be more generic.
      Signed-off-by: NTodd Fujinaka <todd.fujinaka@intel.com>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      c883de9f
    • R
      igb: add conditions for I210 to generate periodic clock output · 569f3b3d
      Roland Hii 提交于
      In general case the maximum supported half cycle time of the synchronized
      output clock is 70msec. Slower half cycle time than 70msec can be
      programmed also as long as the output clock is synchronized to whole
      seconds, useful specifically for generating a 1Hz clock.
      
      Permitted values for the clock half cycle time are: 125,000,000 decimal,
      250,000,000 decimal and 500,000,000 decimal (equals to 125msec, 250msec
      and 500msec respectively).
      
      Before this patch, only the half cycle time of less than or equal to 70msec
      uses the I210 clock output function. This patch adds additional conditions
      when half cycle time is equal to 125msec or 250msec or 500msec to use
      clock output function.
      
      Under other conditions, interrupt driven target time output events method
      is still used to generate the desired clock output.
      Signed-off-by: NRoland Hii <roland.king.guan.hii@intel.com>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      569f3b3d
    • T
      igb: enable WoL for OEM devices regardless of EEPROM setting · 5e350b92
      Todd Fujinaka 提交于
      Override EEPROM settings for specific OEM devices.
      Signed-off-by: NTodd Fujinaka <todd.fujinaka@intel.com>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      5e350b92