1. 05 4月, 2016 22 次提交
  2. 30 3月, 2016 11 次提交
  3. 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
  4. 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
  5. 02 3月, 2016 1 次提交
  6. 01 3月, 2016 1 次提交
  7. 25 2月, 2016 2 次提交
    • 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