On Apr 28, 2010, at 7:08 AM, Richard L. Hamilton wrote:

> AFAIK, the BSDs implement pipe() as a special case of socketpair(),
> and thus pipes are subject to RLIMIT_SBSIZE (SB == socket buffer, I presume).
> 
 ... ... ...
> 
> I have a shared object somewhere that I can LD_PRELOAD to
> make pipe() for the affected process call socketpair().  As I recall, I'd
> run a shell with that preset and used it for awhile, and nothing seemed
> to break.  But that's not a robust test.

I believe that some shells use ioctl(fd, I_PEEK, ...) when input is
coming from a STREAMS based pipe to avoid lots of costly single-byte
reads.

 - Don

> 
> If anyone wants it, I  could post the source for that, presumably as
> an attachment, since the forums mangle directly posted source.
> 
> I'd also played around with pushing bufmod onto a (for Solaris) regular
> STREAMS based pipe, but I never found a way to tell whether it made any
> difference in the behavior.  I don't know without digging around if I kept
> any examples of that.
> 
> Unless someone can demonstrate a performance problem with the existing
> pipe implementation, I suspect that trying to make ulimit -p settable
> on Solaris is a waste of time...

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

Reply via email to