On Wed, 3 Jan 2007, Brian Utterback wrote:

So, I am open to discussion on this. Is this a reasonable approach to context switching between a producer and consumer, or should the scheduler do this better? Perhaps instead of blocking, the process should just lose the rest of its time slice? (I don't know if that is feasible) Any thoughts on the subject?

The deadlock: Such apps are terminally buggy, surely? An app refusing to read data indefinitely based on conditions of possible future data should expect an indefinite lack of progress (no?).

Flow-control: I guess what's needed is to:

  a) find a good dynamic buffer-sizing function
  b) implement it so that both async and sync STREAMS avail of it.

For added goodness, abstract the dynamic-buffer-sizing function interface such that TCP, TCP-fusion and STREAMS (etc) can use these functions.

The trick is to find a good 'a' (See latest and greatest TCP window algorithms, e.g. BIC and CUBIC).

Note: I don't think you can get what you want without having either time or else a magic tunable as an input, as the problem is intrinsically about rates. You need either to measure the actual rate or have the sysadmin set some value that indicates "tune for this rate" (even if the tunable is a value in some other dimension).

regards,
--
Paul Jakma,
Network Approachability, KISS.           Sun Microsystems, Dublin, Ireland.
http://opensolaris.org/os/project/quagga tel: EMEA x19190 / +353 1 819 9190

_______________________________________________
networking-discuss mailing list
[email protected]

Reply via email to