Hello all.
 
I am using Sol 9 & 10 for Sparc.
I have a Steams driver that interfaces to a custom board
across the PCI ( or PCI express ) bus.
 
We have observed that we are not getting the throughput
( messages per second ) that we want.
 
Using a V240 machine, we can do 25.7k msgs/sec.
On a V440, we can do 28.2k
On a T2000, we are getting around 28.2k.
 
In general, the newer and faster the machine, the higher
the throughput we want to get.
 
We observe on a T2000 that our streams queues are going into flow
control.
 
Chapter 12 of the Streams Programming Guide talks about perimeters.
There are various streams flags defined in this chapter.
In general, our goal is to have everything as asynchronous as possible
in the put & service routines.
 
Our driver using the following flags in its cb_ops structure:
( D_NEW | D_MP | D_MTOUTEPERIM | D_MTOCEXCL ).
I understand that this set of flags will make the open & close routines
synchronous.
This is fine.
 
My question is - do I need to add the D_MTPUTHSARED, D_MTPERQ, and
_D_MTSVCSHARED
flags to make sure read and write queue put & service routines can run
concurrently ?
 
thanks
 
 
W. Reich 

 
_______________________________________________
opensolaris-code mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code

Reply via email to