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>