Date: Fri, 30 May 2003 14:09:26 +0400 (MSD) From: Igor Sysoev <is@rambler-co.ru> To: Terry Lambert <tlambert2@mindspring.com> Cc: arch@freebsd.org Subject: Re: sendfile(2) SF_NOPUSH flag proposal Message-ID: <Pine.BSF.4.21.0305301404590.58337-100000@is> In-Reply-To: <3ED72A16.9CACD4C5@mindspring.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 30 May 2003, Terry Lambert wrote: > Igor Sysoev wrote: > > On Fri, 30 May 2003, Terry Lambert wrote: > > > It doesn't "read" it, per se: it creates a mapping, and it > > > faults the pages; when they are in core, then they can be > > > sent. > > > > So what do these lines in /sys/kern/uipc_syscalls.c:sendfile(): > > > > if (!pg->valid || !vm_page_is_valid(pg, pgoff, xfsize)) { > > .... > > error = VOP_READ(vp, &auio, IO_VMIO | ((MAXBSIZE / bsize) << 16), > > p->p_ucred); > > .... > > } > > That's easy: they mean you aren't looking at version 1.147 of > the file, and that you're looking at RELENG_4, and not -CURRENT > (version 1.65.2.17, or earlier). You are 82 HEAD revisions > behind the state of the art. Yes, I looked in FreeBSD 4.x. In the HEAD VOP_READ() was changed to: error = vn_rdwr(UIO_READ, vp, NULL, MAXBSIZE, trunc_page(off), UIO_NOCOPY, IO_NODELOCKED | IO_VMIO | ((MAXBSIZE / bsize) << 16), td->td_ucred, NOCRED, &resid, td); What does vn_rdwr() ? Does it fault the page as you said or it reads pages ? Igor Sysoev http://sysoev.ru/en/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0305301404590.58337-100000>