Subject: Re: signal(SIGSEGV, SIG_IGN) -> 100% CPU
To: Andrew Brown <atatat@atatdot.net>
From: Eduardo E. Horvath <eeh@one-o.com>
List: tech-kern
Date: 06/14/1999 09:28:10
On Mon, 14 Jun 1999, Andrew Brown wrote:
> >> If `fixing it' means calling socketpair() from userspace and doing any
> >> necessary frobbing there, it actually means *reducing* kernel size (...and
> >> relegating pipe(2) to COMPAT_14).
> >
> >pipe(2) is defined to be one-way. socketpair(2) creates a two-way pipe.
> >
> >I didn't find any obvious way in the manual page to suppress one of the ways.
> >Hm. The libc wrapper could partially shutdown(2) the ends, I guess....
>
> would that even matter? if you get back a two-way pipe, it can still
> be used as a one-way pipe.
>
> for that matter...i still don't see the harm in making the kernel
> copyout() the pipe fds. how would that not solve the problem (besides
> losing a little history)?
[Hmm.... Looks like this is getting to be a long CC: list]
It would matter if we ever decide to support an emulation with a different
integer size. Luckily the only interesting emulations at the moment are
ILP32 and LP64 where the sizeof(int) == 4, but if we ever decide to
support ILP64 (such as HAL's implementation of 64-bit Solaris), since the
copyin()/copyout() is handled in the body of the syscall we would need to
re-implement the entire syscall inside the emulation wrapper.
=========================================================================
Eduardo Horvath eeh@one-o.com
"I need to find a pithy new quote." -- me