1. 16 Feb, 2011 1 commit
  2. 15 Feb, 2011 5 commits
    • Ben Hutchings's avatar
      net: RPS: Make hardware-accelerated RFS conditional on NETIF_F_NTUPLE · 69a19ee6
      Ben Hutchings authored
      For testing and debugging purposes it is useful to be able to disable
      hardware acceleration of RFS without disabling RFS altogether.  Since
      this is a similar feature to 'n-tuple' flow steering through the
      ethtool API, test the same feature flag that controls that.
      Signed-off-by: default avatarBen Hutchings <bhutchings@solarflare.com>
      69a19ee6
    • Ben Hutchings's avatar
      sfc: Add TX queues for high-priority traffic · 94b274bf
      Ben Hutchings authored
      Implement the ndo_setup_tc() operation with 2 traffic classes.
      
      Current Solarstorm controllers do not implement TX queue priority, but
      they do allow queues to be 'paced' with an enforced delay between
      packets.  Paced and unpaced queues are scheduled in round-robin within
      two separate hardware bins (paced queues with a large delay may be
      placed into a third bin temporarily, but we won't use that).  If there
      are queues in both bins, the TX scheduler will alternate between them.
      
      If we make high-priority queues unpaced and best-effort queues paced,
      and high-priority queues are mostly empty, a single high-priority queue
      can then instantly take 50% of the packet rate regardless of how many
      of the best-effort queues have descriptors outstanding.
      
      We do not actually want an enforced delay between packets on best-
      effort queues, so we set the pace value to a reserved value that
      actually results in a delay of 0.
      Signed-off-by: default avatarBen Hutchings <bhutchings@solarflare.com>
      94b274bf
    • Ben Hutchings's avatar
      sfc: Distinguish queue lookup from test for queue existence · 525da907
      Ben Hutchings authored
      efx_channel_get_{rx,tx}_queue() currently return NULL if the channel
      isn't used for traffic in that direction.  In most cases this is a
      bug, but some callers rely on it as an existence test.
      
      Add existence test functions efx_channel_has_{rx_queue,tx_queues}()
      and use them as appropriate.
      
      Change efx_channel_get_{rx,tx}_queue() to assert that the requested
      queue exists.
      
      Remove now-redundant initialisation from efx_set_channels().
      Signed-off-by: default avatarBen Hutchings <bhutchings@solarflare.com>
      525da907
    • Ben Hutchings's avatar
      sfc: Move TX queue core queue mapping into tx.c · 60031fcc
      Ben Hutchings authored
      efx_hard_start_xmit() needs to implement a mapping which is the
      inverse of tx_queue::core_txq.  Move the initialisation of
      tx_queue::core_txq next to efx_hard_start_xmit() to make the
      connection more obvious.
      Signed-off-by: default avatarBen Hutchings <bhutchings@solarflare.com>
      60031fcc
    • Ben Hutchings's avatar
      net: Adjust TX queue kobjects if number of queues changes during unregister · 5c56580b
      Ben Hutchings authored
      If the root qdisc for a net device is mqprio, and the driver's
      ndo_setup_tc() operation dynamically adds and remvoes TX queues,
      netif_set_real_num_tx_queues() will be called during device
      unregistration to remove the extra TX queues when the qdisc is
      destroyed.  Currently this causes the corresponding kobjects
      to be leaked, and the device's reference count never drops to 0.
      Signed-off-by: default avatarBen Hutchings <bhutchings@solarflare.com>
      5c56580b
  3. 14 Feb, 2011 1 commit
  4. 09 Feb, 2011 5 commits
  5. 08 Feb, 2011 17 commits
  6. 07 Feb, 2011 11 commits