tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: poll(): IN/OUT vs {RD,WR}NORM



>> Where do we attach 3 priority levels to data?
> [I]n the context of poll itself, it's undefined.  But it's easy to
> think that the TCP urgent data would be something usable in this
> context.  But as you note, the urgent data is a somewhat broken thing
> that noone ever really figured out how it was meant to be used or
> anything about it at all.

TCP's urgent pointer is well defined.  It is not, however, an
out-of-band data stream, nor, despite Berkeley's attempts, can it
really be twisted and bent into one, unless you are on a network which
is high bandwidth, low latency, and low loss (as compared to the
"out-of-band" data rate).  Even then, the receiving process has to
handle data promptly.  Which, probably not coincidentally, describes
Berkeley's network and most of their network programs at the time.

However, the urgent pointer is close to useless in today's network, in
that there are few-to-no use cases that it is actually useful for.

> It's not really even oob.

No, and it never has been, despite Berkeley's hallucinations.

> But poll isn't really getting into any details about this.  Just that
> if you have some sort of [data stream], where you can assign multiple
> priorities to the data, then poll can make use of it.

For a few priorities, yes.  It's a poor design in that it doesn't
provide any good way to handle more than two or maybe three different
priorities.

> I have no idea if any such device or file ever have had such a
> distinction.

Possibly nobody except System V (or possibly its direct ancestors) ever
did.  My impression is that it's a STREAMS thing, but that's a fuzzy
impression, mostly coming from manpage notes ("The distinction between
some of the fields in the events and revents bitmasks is really not
useful without STREAMS.").

/~\ The ASCII				  Mouse
\ / Ribbon Campaign
 X  Against HTML		mouse%rodents-montreal.org@localhost
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B


Home | Main Index | Thread Index | Old Index