Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 1 Jun 2011 20:00:25 +0000 (UTC)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/net if_ethersubr.c
Message-ID:  <201106012000.p51K0Y4X058331@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
rwatson     2011-06-01 20:00:25 UTC

  FreeBSD src repository

  Modified files:
    sys/net              if_ethersubr.c 
  Log:
  SVN rev 222583 on 2011-06-01 20:00:25Z by rwatson
  
  Add an optional netisr dispatch point at ether_input(), but set the
  default dispatch method to NETISR_DISPATCH_DIRECT in order to force
  direct dispatch.  This adds a fairly negligble overhead without
  changing default behavior, but in the future will allow deferred or
  hybrid dispatch to other worker threads before link layer processing
  has taken place.
  
  For example, this could allow redistribution using RSS hashes
  without ethernet header cache line hits, if the NIC was unable to
  adequately implement load balancing to too small a number of input
  queues -- perhaps due to hard queueset counts of 1, 3, or 8, but in
  a modern system with 16-128 threads.  This can happen on highly
  threaded systems, where you want want an ithread per core,
  redistributing work to other queues, but also on virtualised systems
  where hardware hashing is (or is not) available, but only a single
  queue has been directed to one VCPU on a VM.
  
  Note: this adds a previously non-present assertion about the
  equivalence of the ifnet from which the packet is received, and the
  ifnet stamped in the mbuf header.  I believe this assertion to
  generally be true, but we'll find out soon -- if it's not, we might
  have to add additional overhead in some cases to add an m_tag with
  the originating ifnet pointer stored in it.
  
  Reviewed by:    bz
  MFC after:      3 weeks
  Sponsored by:   Juniper Networks, Inc.
  
  Revision  Changes    Path
  1.283     +41 -1     src/sys/net/if_ethersubr.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201106012000.p51K0Y4X058331>