cvs commit: src/sys/kern sys_pipe.c
David Xu
davidxu at FreeBSD.org
Thu Nov 22 18:48:25 PST 2007
Jean-Sebastien Pedron wrote:
> dumbbell 2007-11-19 15:05:20 UTC
>
> FreeBSD src repository
>
> Modified files:
> sys/kern sys_pipe.c
> Log:
> The kernel uses two ways to write data on a pipe:
> o buffered write, for chunks smaller than PIPE_MINDIRECT bytes
> o direct write, for everything else
>
> A call to writev(2) may receive struct iov of various size and the
> kernel may have to switch from one solution to the other. Before doing
> this, it must wake reader processes and any select/poll/kqueue up.
>
> This commit fixes a bug where select/poll/kqueue are not triggered
> when switching from buffered write to direct write. It adds calls to
> pipeselwakeup().
>
> I give more details on freebsd-arch@:
> http://lists.freebsd.org/pipermail/freebsd-arch/2007-September/006790.html
>
> This should fix issues with Erlang (lang/erlang) and kqueue.
>
> Reported by: Rickard Green (Erlang)
>
> Revision Changes Path
> 1.193 +4 -0 src/sys/kern/sys_pipe.c
>
This is an important fix, would you MFC it to RELENG_7 and maybe
RELENG_6 ?
Regards,
David Xu
More information about the cvs-src
mailing list