Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 14 Jul 2000 12:51:14 +1000
From:      Stephen McKay <mckay@thehub.com.au>
To:        "Rodney W. Grimes" <freebsd@gndrsh.dnsmgr.net>
Cc:        bandix@looksharp.net (Brandon D. Valentine), mckay@thehub.com.au (Stephen McKay), se@FreeBSD.ORG (Stefan Esser), wpaul@FreeBSD.ORG (Bill Paul), freebsd-current@FreeBSD.ORG
Subject:   Re: dc driver and underruns (was: Strangeness with 4.0-S) 
Message-ID:  <200007140251.MAA07785@dungeon.home>
In-Reply-To: <200007131622.JAA12738@gndrsh.dnsmgr.net> from "Rodney W. Grimes" at "Thu, 13 Jul 2000 09:22:22 -0700"
References:  <200007131622.JAA12738@gndrsh.dnsmgr.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday, 13th July 2000, "Rodney W. Grimes" wrote:

>>On Thu, 13 Jul 2000, Stephen McKay wrote:
>> 
>>>Does anyone here actually measure these latencies?  I know for a fact
>>>that nothing I've ever done would or could be affected by extra latencies
>>>that are as small as the ones we are discussing.  Does anybody at all
>>>depend on the start-transmitting-before-DMA-completed feature we are
>>>discussing?
>> 
>> I don't like the idea of removing that feature.  Perhaps it should be a
>> sysctl or ifconfig option, but it should definitely remain available.
>> Those minute latencies are critical to those of us who use MPI for
>> complex parallel calculations.
>
>I have to agree here.  The store and forward adds an approximate
>11uS (by theory under ideal conditions 1500bytes@132MB/s = 11uS,
>practice actually makes this worse as typical PCI does something
>less than 100MB/s or 15uS) to a 120uS packet time on the wire (again,
>ideal, but here given that switches, and infact often cut-through
>switches, are used for these types of things, ideal and practice
>are very close.)
>
>I don't think these folks, nor myself, are wanting^H^H^H^H^H^H^Hilling
>to give up 12.5%.

OK.  It seems that repairing the feature, rather than disabling it is
the most popular option.  Still, I am quite interested in finding anyone
who actually measures these things, and is affected by them.  These very
same people might be able to trace why we get the underruns in the first
place.  I suspect an interaction between the ATA driver and VIA chipsets,
because other than the network, that's all that is operating when I see
the underruns.  And my Celeron with a ZX chipset is immune.

Back to the technical, for a moment.  I have verified that stopping the
transmitter on the 21143 is both sufficient and necessary to enable the
thresholds to be set.  I have code that works on my machine.  I intend
to commit it when I think it looks neat enough.

Getting even more technical, it appears to me that the current driver
instructs the 21143 to poll for transmit packets (ie a small DMA)
every 80us even if there are none to be sent.  I don't know what percentage
of bus time this might be, or even how to calculate it (got some time Rod?)
but it looks unnecessary to me.  I think the transmitter could be turned
off regularly.  At the moment, the driver leaves it on all the time.

And to the non technical: Do the messages go or stay?  I've heard both
sides.  For most people they are just annoying fluff.  For those who
actually care about the latency, it might be informative, and thus
too useful to be hidden behind bootverbose.  Opinions?

Stephen.


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




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