1. 05 4月, 2011 5 次提交
    • B
      ethtool: Change ETHTOOL_PHYS_ID implementation to allow dropping RTNL · 68f512f2
      Ben Hutchings 提交于
      The ethtool ETHTOOL_PHYS_ID command runs for an arbitrarily long
      period of time, holding the RTNL lock.  This blocks routing updates,
      device enumeration, and various important operations that one might
      want to keep running while hunting for the flashing LED.
      
      We need to drop the RTNL lock during this operation, but currently the
      core implementation is a thin wrapper around a driver operation and
      drivers may well depend upon holding the lock.
      
      Define a new driver operation 'set_phys_id' with an argument that sets
      the ID indicator on/off/inactive/active (the last optional, for any
      driver or firmware that prefers to handle blinking asynchronously).
      When this is defined, the ethtool core drops the lock while waiting
      and only acquires it around calls to this operation.
      
      Deprecate the 'phys_id' operation in favour of this.  It can be
      removed once all in-tree drivers are converted.
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      68f512f2
    • B
      ethtool: Fill out and update comment for struct ethtool_ops · 8717d07b
      Ben Hutchings 提交于
      Briefly document all operations (except get_rx_ntuple), including
      whether they may return an error code and whether they are deprecated.
      Also mention some things that should be handled by the ethtool core
      rather than by drivers.
      
      Briefly document general requirements for callers.
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      8717d07b
    • B
    • T
      net: Allow no-cache copy from user on transmit · c6e1a0d1
      Tom Herbert 提交于
      This patch uses __copy_from_user_nocache on transmit to bypass data
      cache for a performance improvement.  skb_add_data_nocache and
      skb_copy_to_page_nocache can be called by sendmsg functions to use
      this feature, initial support is in tcp_sendmsg.  This functionality is
      configurable per device using ethtool.
      
      Presumably, this feature would only be useful when the driver does
      not touch the data.  The feature is turned on by default if a device
      indicates that it does some form of checksum offload; it is off by
      default for devices that do no checksum offload or indicate no checksum
      is necessary.  For the former case copy-checksum is probably done
      anyway, in the latter case the device is likely loopback in which case
      the no cache copy is probably not beneficial.
      
      This patch was tested using 200 instances of netperf TCP_RR with
      1400 byte request and one byte reply.  Platform is 16 core AMD x86.
      
      No-cache copy disabled:
         672703 tps, 97.13% utilization
         50/90/99% latency:244.31 484.205 1028.41
      
      No-cache copy enabled:
         702113 tps, 96.16% utilization,
         50/90/99% latency 238.56 467.56 956.955
      
      Using 14000 byte request and response sizes demonstrate the
      effects more dramatically:
      
      No-cache copy disabled:
         79571 tps, 34.34 %utlization
         50/90/95% latency 1584.46 2319.59 5001.76
      
      No-cache copy enabled:
         83856 tps, 34.81% utilization
         50/90/95% latency 2508.42 2622.62 2735.88
      
      Note especially the effect on latency tail (95th percentile).
      
      This seems to provide a nice performance improvement and is
      consistent in the tests I ran.  Presumably, this would provide
      the greatest benfits in the presence of an application workload
      stressing the cache and a lot of transmit data happening.
      Signed-off-by: NTom Herbert <therbert@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c6e1a0d1
    • S
      pkt_sched: QFQ - quick fair queue scheduler · 0545a303
      stephen hemminger 提交于
      This is an implementation of the Quick Fair Queue scheduler developed
      by Fabio Checconi. The same algorithm is already implemented in ipfw
      in FreeBSD. Fabio had an earlier version developed on Linux, I just
      cleaned it up.  Thanks to Eric Dumazet for testing this under load.
      Signed-off-by: NStephen Hemminger <shemminger@vyatta.com>
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0545a303
  2. 03 4月, 2011 1 次提交
  3. 02 4月, 2011 3 次提交
    • W
      sctp: fix auth_hmacs field's length of struct sctp_cookie · 028dba0a
      Wei Yongjun 提交于
      auth_hmacs field of struct sctp_cookie is used for store
      Requested HMAC Algorithm Parameter, and each HMAC Identifier
      is 2 bytes, so the length should be:
        SCTP_AUTH_NUM_HMACS * sizeof(__u16) + 2
      Signed-off-by: NWei Yongjun <yjwei@cn.fujitsu.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      028dba0a
    • M
      net: Fix dev dev_ethtool_get_rx_csum() for forced NETIF_F_RXCSUM · 4dd5ffe4
      Michał Mirosław 提交于
      dev_ethtool_get_rx_csum() won't report rx checksumming when it's not
      changeable and driver is converted to hw_features and friends. Fix this.
      
      (dev->hw_features & NETIF_F_RXCSUM) check is dropped - if the
      ethtool_ops->get_rx_csum is set, then driver is not coverted, yet.
      Signed-off-by: NMichał Mirosław <mirq-linux@rere.qmqm.pl>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4dd5ffe4
    • A
      usbnet: use eth%d name for known ethernet devices · c261344d
      Arnd Bergmann 提交于
      The documentation for the USB ethernet devices suggests that
      only some devices are supposed to use usb0 as the network interface
      name instead of eth0. The logic used there, and documented in
      Kconfig for CDC is that eth0 will be used when the mac address
      is a globally assigned one, but usb0 is used for the locally
      managed range that is typically used on point-to-point links.
      
      Unfortunately, this has caused a lot of pain on the smsc95xx
      device that is used on the popular pandaboard without an
      EEPROM to store the MAC address, which causes the driver to
      call random_ether_address().
      
      Obviously, there should be a proper MAC addressed assigned to
      the device, and discussions are ongoing about how to solve
      this, but this patch at least makes sure that the default
      interface naming gets a little saner and matches what the
      user can expect based on the documentation, including for
      new devices.
      
      The approach taken here is to flag whether a device might be a
      point-to-point link with the new FLAG_POINTTOPOINT setting in
      the usbnet driver_info. A driver can set both FLAG_POINTTOPOINT
      and FLAG_ETHER if it is not sure (e.g. cdc_ether), or just one
      of the two.  The usbnet framework only looks at the MAC address
      for device naming if both flags are set, otherwise it trusts the
      flag.
      Signed-off-by: NArnd Bergmann <arnd.bergmann@linaro.org>
      Tested-by: NAndy Green <andy.green@linaro.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c261344d
  4. 01 4月, 2011 1 次提交
  5. 31 3月, 2011 4 次提交
  6. 30 3月, 2011 5 次提交
  7. 29 3月, 2011 5 次提交
  8. 28 3月, 2011 15 次提交
  9. 27 3月, 2011 1 次提交
    • T
      NFS: Fix a hang in the writeback path · 4d65c520
      Trond Myklebust 提交于
      Now that the inode scalability patches have been merged, it is no longer
      safe to call igrab() under the inode->i_lock.
      Now that we no longer call nfs_clear_request() until the nfs_page is
      being freed, we know that we are always holding a reference to the
      nfs_open_context, which again holds a reference to the path, and so
      the inode cannot be freed until the last nfs_page has been removed
      from the radix tree and freed.
      
      We can therefore skip the igrab()/iput() altogether.
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      4d65c520