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>
