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
