--- Dave Grothe <[EMAIL PROTECTED]> wrote:
> >So these options are global for all streams drivers/modules/multiplexors?
> 
> The option applies on a per-driver basis.  If you driver is loadable and 
> has no Config file you can call a registration routine in LiS from your 
> driver's module init function to declare your locking style.
> 
> int lis_register_module_qlock_option(modID_t id, int qlock_option);


Ok, that's good to hear... I have to admit, no disrespect to you skills, but
this is going to be a rough row to hoe.  In Solaris there is a whole notion
of "perimeter queues" which are used in putnext() if the upstream (or
downstream) module is locked on the opposite side and you cannot run the
modules put routine.  For example, my driver wants to send a message upstream
and calls putnext(), but the upstream module is running it's write side
thread.  In this case the read side put routine cannot run if you are set up
for qpair synchronization.  What do you do?  In Solaris, they put the message
on a perimeter queue and return from putnext().  Does LiS block until the
read side put routine can run, or does it do something similar?

I say a rough row to hoe because I know that it took Solaris a few tries to
work all of this out correctly, and they had (several) people working on it
full time....

If it's too long winded, I guess I can read the code, but if you are willing
and have the time it would be nice to see a medium level description of how
you are making these changes.


Thanks for the gdb macros, I'll give them a try and let the list know if I
come up with something that may be useful to someone else.

thanks-
dan

_______________________________________________
Linux-streams mailing list
[EMAIL PROTECTED]
http://gsyc.escet.urjc.es/mailman/listinfo/linux-streams

Reply via email to