Skip to content
Snippets Groups Projects
  1. Jul 27, 2011
    • Neil Horman's avatar
      net: add IFF_SKB_TX_SHARED flag to priv_flags · d8873315
      Neil Horman authored
      
      Pktgen attempts to transmit shared skbs to net devices, which can't be used by
      some drivers as they keep state information in skbs.  This patch adds a flag
      marking drivers as being able to handle shared skbs in their tx path.  Drivers
      are defaulted to being unable to do so, but calling ether_setup enables this
      flag, as 90% of the drivers calling ether_setup touch real hardware and can
      handle shared skbs.  A subsequent patch will audit drivers to ensure that the
      flag is set properly
      
      Signed-off-by: default avatarNeil Horman <nhorman@tuxdriver.com>
      Reported-by: default avatarJiri Pirko <jpirko@redhat.com>
      CC: Robert Olsson <robert.olsson@its.uu.se>
      CC: Eric Dumazet <eric.dumazet@gmail.com>
      CC: Alexey Dobriyan <adobriyan@gmail.com>
      CC: David S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d8873315
  2. Jul 26, 2011
  3. Jul 25, 2011
  4. Jul 22, 2011
    • stephen hemminger's avatar
      net: allow netif_carrier to be called safely from IRQ · 1821f7cd
      stephen hemminger authored
      
      As reported by Ben Greer and Froncois Romieu. The code path in
      the netif_carrier code leads it to try and disable
      a late workqueue to reenable it immediately
      netif_carrier_on
      -> linkwatch_fire_event
         -> linkwatch_schedule_work
            -> cancel_delayed_work
               -> del_timer_sync
      
      If __cancel_delayed_work is used instead then there is no
      problem of waiting for running linkwatch_event.
      
      There is a race between linkwatch_event running re-scheduling
      but it is harmless to schedule an extra scan of the linkwatch queue.
      
      Signed-off-by: default avatarStephen Hemminger <shemminger@vyatta.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1821f7cd
  5. Jul 21, 2011
  6. Jul 18, 2011
  7. Jul 16, 2011
  8. Jul 14, 2011
  9. Jul 13, 2011
  10. Jul 11, 2011
  11. Jul 09, 2011
  12. Jul 07, 2011
    • Shirley Ma's avatar
      skbuff: skb supports zero-copy buffers · a6686f2f
      Shirley Ma authored
      
      This patch adds userspace buffers support in skb shared info. A new
      struct skb_ubuf_info is needed to maintain the userspace buffers
      argument and index, a callback is used to notify userspace to release
      the buffers once lower device has done DMA (Last reference to that skb
      has gone).
      
      If there is any userspace apps to reference these userspace buffers,
      then these userspaces buffers will be copied into kernel. This way we
      can prevent userspace apps from holding these userspace buffers too long.
      
      Use destructor_arg to point to the userspace buffer info; a new tx flags
      SKBTX_DEV_ZEROCOPY is added for zero-copy buffer check.
      
      Signed-off-by: default avatarShirley Ma <xma@...ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a6686f2f
  13. Jul 05, 2011
  14. Jul 03, 2011
  15. Jul 01, 2011
    • David S. Miller's avatar
      ipv6: Don't put artificial limit on routing table size. · 957c665f
      David S. Miller authored
      
      IPV6, unlike IPV4, doesn't have a routing cache.
      
      Routing table entries, as well as clones made in response
      to route lookup requests, all live in the same table.  And
      all of these things are together collected in the destination
      cache table for ipv6.
      
      This means that routing table entries count against the garbage
      collection limits, even though such entries cannot ever be reclaimed
      and are added explicitly by the administrator (rather than being
      created in response to lookups).
      
      Therefore it makes no sense to count ipv6 routing table entries
      against the GC limits.
      
      Add a DST_NOCOUNT destination cache entry flag, and skip the counting
      if it is set.  Use this flag bit in ipv6 when adding routing table
      entries.
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      957c665f
    • Thomas Graf's avatar
      rtnl: provide link dump consistency info · 4e985ada
      Thomas Graf authored
      
      This patch adds a change sequence counter to each net namespace
      which is bumped whenever a netdevice is added or removed from
      the list. If such a change occurred while a link dump took place,
      the dump will have the NLM_F_DUMP_INTR flag set in the first
      message which has been interrupted and in all subsequent messages
      of the same dump.
      
      Note that links may still be modified or renamed while a dump is
      taking place but we can guarantee for userspace to receive a
      complete list of links and not miss any.
      
      Testing:
      I have added 500 VLAN netdevices to make sure the dump is split
      over multiple messages. Then while continuously dumping links in
      one process I also continuously deleted and re-added a dummy
      netdevice in another process. Multiple dumps per seconds have
      had the NLM_F_DUMP_INTR flag set.
      
      I guess we can wait for Johannes patch to hit net-next via the
      wireless tree.  I just wanted to give this some testing right away.
      
      Signed-off-by: default avatarThomas Graf <tgraf@infradead.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4e985ada
  16. Jun 21, 2011
  17. Jun 20, 2011
  18. Jun 13, 2011
  19. Jun 12, 2011
    • Al Viro's avatar
      Delay struct net freeing while there's a sysfs instance refering to it · a685e089
      Al Viro authored
      
      	* new refcount in struct net, controlling actual freeing of the memory
      	* new method in kobj_ns_type_operations (->drop_ns())
      	* ->current_ns() semantics change - it's supposed to be followed by
      corresponding ->drop_ns().  For struct net in case of CONFIG_NET_NS it bumps
      the new refcount; net_drop_ns() decrements it and calls net_free() if the
      last reference has been dropped.  Method renamed to ->grab_current_ns().
      	* old net_free() callers call net_drop_ns() instead.
      	* sysfs_exit_ns() is gone, along with a large part of callchain
      leading to it; now that the references stored in ->ns[...] stay valid we
      do not need to hunt them down and replace them with NULL.  That fixes
      problems in sysfs_lookup() and sysfs_readdir(), along with getting rid
      of sb->s_instances abuse.
      
      	Note that struct net *shutdown* logics has not changed - net_cleanup()
      is called exactly when it used to be called.  The only thing postponed by
      having a sysfs instance refering to that struct net is actual freeing of
      memory occupied by struct net.
      
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      a685e089
  20. Jun 11, 2011
  21. Jun 09, 2011
  22. Jun 08, 2011
    • Alexander Duyck's avatar
      v2 ethtool: remove support for ETHTOOL_GRXNTUPLE · bff55273
      Alexander Duyck authored
      
      This change is meant to remove all support for displaying an ntuple as
      strings via ETHTOOL_GRXNTUPLE.  The reason for this change is due to the
      fact that multiple issues have been found including:
       - Multiple buffer overruns for strings being displayed.
       - Incorrect filters displayed, cleared filters with ring of -2 are displayed
       - Setting get_rx_ntuple displays no rules if defined.
       - Endianess wrong on displayed values.
       - Hard limit of 1024 filters makes display functionality extremely limited
      
      The only driver that had supported this interface was ixgbe.  Since it no
      longer uses the interface and due to the issues mentioned above I am
      submitting this patch to remove it.
      
      v2:
      Updated based on comments from Ben Hutchings
       - Left ETH_SS_NTUPLE_FILTERS in code but commented on it being deprecated
       - Removed ethtool_rx_ntuple_list and ethtool_rx_ntuple_flow_spec_container
       - Left ETHTOOL_GRXNTUPLE but commented it as deprecated
      
      Also cleaned up set_rx_ntuple since there is no flow spec container to
      maintain we can drop all the code for the alloc and free of it and just
      return ops->set_rx_ntuple().
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
      Acked-by: default avatarBen Hutchings <bhutchings@solarflare.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bff55273
  23. Jun 07, 2011
    • Heiko Carstens's avatar
      net: cpu offline cause napi stall · 264524d5
      Heiko Carstens authored
      
      Frank Blaschka reported :
      <quote>
        During heavy network load we turn off/on cpus.
        Sometimes this causes a stall on the network device.
        Digging into the dump I found out following:
      
        napi is scheduled but does not run. From the I/O buffers
        and the napi state I see napi/rx_softirq processing has stopped
        because the budget was reached. napi stays in the
        softnet_data poll_list and the rx_softirq was raised again.
      
        I assume at this time the cpu offline comes in,
        the rx softirq is raised/moved to another cpu but napi stays in the
        poll_list of the softnet_data of the now offline cpu.
      
        Reviewing dev_cpu_callback (net/core/dev.c) I did not find the
        poll_list is transfered to the new cpu.
      </quote>
      
      This patch is a straightforward implementation of Frank suggestion :
      
      Transfert poll_list and trigger NET_RX_SOFTIRQ on new cpu.
      
      Reported-by: default avatarFrank Blaschka <blaschka@linux.vnet.ibm.com>
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Tested-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      264524d5
Loading