Hello,
I am just trying to see if I got the concept right regarding RX/TX descriptors.
I am having some problems with a highly loaded server ( 4 oracle DBs on top ).
It's a Solaris 10 138888-08, and i know these are the OpenSolaris forums but
bare with me, because i don't think it makes a difference in this specific case.
So, after some basic debugging found out that every time a connection would be
established, the first 80 packets would just " hang" and appear all at the 81st
packet ( ex: in ping ) and from there it would work just fine.
In the e1000g man page I found this:
NumRxDescriptors
Number of available receive descriptors. Multiple receive descriptors
increase receive performance, but decrease available memory.
80–4096 Allowed values.
1024 Default.
And also in the e1000g_sw.h
(http://fxr.watson.org/fxr/source/common/io/e1000g/e1000g_sw.h?v=OPENSOLARIS ),
I found this :
#define MIN_NUM_TX_DESCRIPTOR 80
#define MIN_NUM_RX_DESCRIPTOR 80
Also, on
http://icfamon.dl.ac.uk/papers/DataTAG-WP2/reports/task1/20021205-goutelle.pdf
, talking about a similar problem but on Linux, at page : Typical queue
lengths(2) he says : The tx_ring and rx_ring are driver
dependent (e.g. the e1000 driver set these lengths to 80 packets) ;
Now help me understand if I got this right. A hardware interrupt to read the
ring buffer, will only occur if at least 80 TX/RX descriptors are ready ?
If yes, why on same types of server but with less network load the "initial
hang" doesn't occur ?
If i got this all wrong please tell me. I am just putting head to head some
bits and pieces of informations I got from around.
--
This message posted from opensolaris.org
_______________________________________________
networking-discuss mailing list
[email protected]