cvs commit: src/sys/kern uipc_debug.c uipc_sockbuf.c
uipc_socket.c uipc_syscalls.c src/sys/netinet sctputil.c
src/sys/sys socketvar.h
Alfred Perlstein
alfred at freebsd.org
Thu May 3 17:30:08 UTC 2007
* Robert Watson <rwatson at FreeBSD.org> [070503 10:08] wrote:
>
> >
> >Now process B is in an uninterruptable wait until the remote side drains
> >the pipe.
> >
> >The same problem might happen (even easier to reproduce) when there are
> >multiple readers.
> >
> >Of course this all depends on me missing something.
> >
> >Can you explain?
>
> You are entirely right -- I'm not sure how I missed the SB_NOINTR flag
> semantics in sb_lock(), but apparently I did. I'm talking to Attilio right
> now about adding an interruptible version of the sleeping exclusive lock
> acquire and will follow up on this shortly. Thanks for pointing this out!
OK, please do your usual awesome benchmarking though so that this
potential fix doesn't wind up being a performance pessimizing stopgap.
I'm somewhat surprised that an attempt to move from sleep to cv based
rendevous wasn't attempted first.
--
- Alfred Perlstein
More information about the cvs-src
mailing list