Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 Nov 2007 10:49:21 +0800
From:      David Xu <davidxu@FreeBSD.org>
To:        Jean-Sebastien Pedron <dumbbell@FreeBSD.org>
Cc:        cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/kern sys_pipe.c
Message-ID:  <47463FB1.7060100@freebsd.org>
In-Reply-To: <200711191505.lAJF5K2i006483@repoman.freebsd.org>
References:  <200711191505.lAJF5K2i006483@repoman.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?47463FB1.7060100>