Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 24 Dec 2006 00:31:28 -0500
From:      Scott Long <scottl@samsco.org>
To:        Bruce Evans <bde@zeta.org.au>
Cc:        cvs-src@FreeBSD.org, src-committers@FreeBSD.org, Robert Watson <rwatson@FreeBSD.org>, cvs-all@FreeBSD.org, John Polstra <jdp@polstra.com>
Subject:   Re: cvs commit: src/sys/dev/bge if_bge.c
Message-ID:  <458E10B0.5030506@samsco.org>
In-Reply-To: <20061224120307.P24444@delplex.bde.org>
References:  <XFMail.20061223102713.jdp@polstra.com> <20061223213014.U35809@fledge.watson.org> <20061224120307.P24444@delplex.bde.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Bruce Evans wrote:
> On Sat, 23 Dec 2006, Robert Watson wrote:
> 
>> On Sat, 23 Dec 2006, John Polstra wrote:
>>
>>>> That said, dropping and regrabbing the driver lock in the rxeof 
>>>> routine of any driver is bad.  It may be safe to do, but it incurs 
>>>> horrible performance penalties.  It essentially allows the 
>>>> time-critical, high priority RX path to be constantly preempted by 
>>>> the lower priority if_start or if_ioctl paths.  Even without this 
>>>> preemption and priority inversion, you're doing an excessive number 
>>>> of expensive lock ops in the fast path.
> 
> It's not very time-critical or high priority for bge or any other device
> that has a reasonably large rx ring.  With a ring size of 512 and an rx
> interrupt occuring not too near the end (say at half way), you have 256
> packet times to finish processing the interrupt.  For normal 1518 byte
> packets at 1Gbps, 256 packet times is about 3 mS.  bge's rx ring size
> is actually larger than 512 for most hardware.
> 

Speed testing full size packets doesn't tax the hardware or the OS, nor
does it represent real world scenarios.  Testing minimum sized packets
isn't terribly real-world either, but it represents the worst-case for
the hardware and the OS and thus is a good standard for extrapolating
performance potential.  And, 1Gb isn't terribly interesting these days
either, 10Gb is.

Scott



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