Re: STREAMS: interface versus implementation

Albert D. Cahalan (acahalan@cs.uml.edu)
Wed, 16 Sep 1998 01:48:40 -0400 (EDT)


Alan Cox writes:

>> The functions that look like they need some kernel help are:
>>
>> getpmsg putpmsg isastream fattach fdetach (latter three map to ioctls)
>
> Fine, so put them in the library
>
>> open("/dev/foo") for foo = tcp, udp, maybe arp, icmp, ip, eth
>
> Thats a user space problem. You can intercept open() for this
>
>> ioctl(fd, I_xyz, data) for various I_xyz ioctls. (Many of these just
>> need to do nothing and return 0 instead of failing with -ENOSYS.)
>
> Just overload the ioctl symbol

That stinks. While nobody expects STREAMS to be really fast,
they shouldn't add severe overhead to libc. That includes the
non-STREAMS part of an application that uses STREAMS.

Your suggestions have a time cost in userspace. The kernel already
handles devices and ioctls, so a few more is no overhead.

He didn't suggest a rewrite of the TCP/IP stack, so relax.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/