1. 22 Apr, 2011 1 commit
  2. 15 Apr, 2011 1 commit
    • Allan, Bruce W's avatar
      ethtool: allow custom interval for physical identification · fce55922
      Allan, Bruce W authored
      
      
      When physical identification of an adapter is done by toggling the
      mechanism on and off through software utilizing the set_phys_id operation,
      it is done with a fixed duration for both on and off states.  Some drivers
      may want to set a custom duration for the on/off intervals.  This patch
      changes the API so the return code from the driver's entry point when it
      is called with ETHTOOL_ID_ACTIVE can specify the frequency at which to
      cycle the on/off states, and updates the drivers that have already been
      converted to use the new set_phys_id and use the synchronous method for
      identifying an adapter.
      
      The physical identification frequency set in the updated drivers is based
      on how it was done prior to the introduction of set_phys_id.
      
      Compile tested only.  Also fixes a compiler warning in sfc.
      
      v2: drivers do not return -EINVAL for ETHOOL_ID_ACTIVE
      v3: fold patchset into single patch and cleanup per Ben's feedback
      Signed-off-by: default avatarBruce Allan <bruce.w.allan@intel.com>
      Cc: Ben Hutchings <bhutchings@solarflare.com>
      Cc: Sathya Perla <sathya.perla@emulex.com>
      Cc: Subbu Seetharaman <subbu.seetharaman@emulex.com>
      Cc: Ajit Khaparde <ajit.khaparde@emulex.com>
      Cc: Michael Chan <mchan@broadcom.com>
      Cc: Eilon Greenstein <eilong@broadcom.com>
      Cc: Divy Le Ray <divy@chelsio.com>
      Cc: Don Fry <pcnet32@frontier.com>
      Cc: Jon Mason <jdmason@kudzu.us>
      Cc: Solarflare linux maintainers <linux-net-drivers@solarflare.com>
      Cc: Steve Hodgson <shodgson@solarflare.com>
      Cc: Stephen Hemminger <shemminger@linux-foundation.org>
      Cc: Matt Carlson <mcarlson@broadcom.com>
      Acked-by: default avatarJon Mason <jdmason@kudzu.us>
      Acked-by: default avatarBen Hutchings <bhutchings@solarflare.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fce55922
  3. 13 Apr, 2011 1 commit
    • amit salecha's avatar
      net: ethtool support to configure number of channels · 8b5933c3
      amit salecha authored
      
      
      Ethtool support to configure RX, TX and other channels. combined field
      in struct ethtool_channels to reflect set of channel (RX, TX or other).
      Other channel can be link interrupts, SR-IOV coordination etc.
      
      ETHTOOL_GCHANNELS will report max and current number of RX channels,
      max and current number of TX channels, max and current number of other channel
      or max and current number of combined channel.
      
      Number of channel can be modify upto max number of channel through
      ETHTOOL_SCHANNELS command.
      
      Ben Hutchings:
      o define 'combined' and 'other' types.  Most multiqueue drivers pair up RX and TX
        queues so that most channels combine RX and TX work.
      o Please could you use a kernel-doc comment to describe the structure.
      Signed-off-by: default avatarAmit Kumar Salecha <amit.salecha@qlogic.com>
      Reviewed-by: default avatarBen Hutchings <bhutchings@solarflare.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8b5933c3
  4. 12 Apr, 2011 1 commit
  5. 11 Apr, 2011 1 commit
  6. 05 Apr, 2011 2 commits
    • Ben Hutchings's avatar
      ethtool: Change ETHTOOL_PHYS_ID implementation to allow dropping RTNL · 68f512f2
      Ben Hutchings authored
      
      
      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: default avatarBen Hutchings <bhutchings@solarflare.com>
      68f512f2
    • Tom Herbert's avatar
      net: Allow no-cache copy from user on transmit · c6e1a0d1
      Tom Herbert authored
      
      
      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: default avatarTom Herbert <therbert@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c6e1a0d1
  7. 03 Apr, 2011 1 commit
  8. 28 Mar, 2011 1 commit
    • Stanislaw Gruszka's avatar
      net: fix ethtool->set_flags not intended -EINVAL return value · 673e63c6
      Stanislaw Gruszka authored
      After commit d5dbda23
      
       "ethtool: Add
      support for vlan accleration.", drivers that have NETIF_F_HW_VLAN_TX,
      and/or NETIF_F_HW_VLAN_RX feature, but do not allow enable/disable vlan
      acceleration via ethtool set_flags, always return -EINVAL from that
      function. Fix by returning -EINVAL only if requested features do not
      match current settings and can not be changed by driver.
      
      Change any driver that define ethtool->set_flags to use
      ethtool_invalid_flags() to avoid similar problems in the future
      (also on drivers that do not have the problem).
      
      Tested with modified (to reproduce this bug) myri10ge driver.
      
      Cc: stable@kernel.org # 2.6.37+
      Signed-off-by: default avatarStanislaw Gruszka <sgruszka@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      673e63c6
  9. 22 Mar, 2011 1 commit
  10. 18 Mar, 2011 1 commit
  11. 23 Feb, 2011 2 commits
  12. 17 Feb, 2011 7 commits
  13. 25 Jan, 2011 1 commit
  14. 24 Jan, 2011 1 commit
  15. 10 Dec, 2010 1 commit
  16. 06 Dec, 2010 1 commit
  17. 21 Oct, 2010 1 commit
  18. 11 Oct, 2010 1 commit
  19. 08 Oct, 2010 1 commit
  20. 21 Sep, 2010 2 commits
  21. 17 Sep, 2010 2 commits
  22. 15 Sep, 2010 1 commit
    • Ben Hutchings's avatar
      ethtool: Remove unimplemented flow specification types · e0de7c93
      Ben Hutchings authored
      
      
      struct ethtool_rawip4_spec and struct ethtool_ether_spec are neither
      commented nor used by any driver, so remove them.  Adjust padding in
      the user-visible unions that included these structures.
      
      Fix references to struct ethtool_rawip4_spec in
      ethtool_get_rx_ntuple(), which should use struct ethtool_usrip4_spec.
      
      struct ethtool_usrip4_spec cannot hold IPv6 host addresses and there
      is no separate structure that can, so remove ETH_RX_NFC_IP6 and the
      reference to it in niu.
      Signed-off-by: default avatarBen Hutchings <bhutchings@solarflare.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e0de7c93
  23. 24 Aug, 2010 1 commit
    • stephen hemminger's avatar
      ethtool: allow non-netadmin to query settings · 0fdc100b
      stephen hemminger authored
      
      
      The SNMP daemon uses ethtool to determine the speed of
      network interfaces. This fails on Debian (and probably elsewhere)
      because for security SNMP daemon runs as non-root user (snmp).
      
      Note: A similar patch was rejected previously because of a concern about
      the possibility that on some hardware querying the ethtool settings
      requires access to the PHY and could slow the machine down.  But the
      security risk of requiring SNMP daemon (and related services)
      to run as root far out weighs the risk of denial-of-service.
      Signed-off-by: default avatarStephen Hemminger <shemminger@vyatta.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0fdc100b
  24. 17 Aug, 2010 1 commit
  25. 30 Jun, 2010 2 commits
  26. 29 Jun, 2010 2 commits
  27. 18 May, 2010 1 commit
  28. 08 Apr, 2010 1 commit