Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 Apr 2015 23:34:59 +0300
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Antoine Brodin <antoine@FreeBSD.org>
Cc:        Will Andrews <will@freebsd.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r281442 - head/sys/kern
Message-ID:  <20150424203459.GA2390@kib.kiev.ua>
In-Reply-To: <CAALwa8nC7NODNT5P9pqgKs5Ca8tbtAecDbYmz==UPKRm2e7kyw@mail.gmail.com>
References:  <201504111851.t3BIpgRS071392@svn.freebsd.org> <CAALwa8nC7NODNT5P9pqgKs5Ca8tbtAecDbYmz==UPKRm2e7kyw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Apr 23, 2015 at 09:53:19PM +0200, Antoine Brodin wrote:
> On Sat, Apr 11, 2015 at 8:51 PM, Will Andrews <will@freebsd.org> wrote:
> > Author: will
> > Date: Sat Apr 11 18:51:41 2015
> > New Revision: 281442
> > URL: https://svnweb.freebsd.org/changeset/base/281442
> >
> > Log:
> >   uiomove_object_page(): Avoid instantiating pages in sparse regions on reads.
> >
> >   Check whether the page being requested is either resident or on swap.  If
> >   not, read from the zero_region instead of instantiating an unnecessary page.
> >
> >   This avoids consuming memory for sparse files on tmpfs, when they are read
> >   by applications that do not use SEEK_HOLE/SEEK_DATA (which is most of them).
> >
> >   Reviewed by:  kib
> >   MFC after:    1 week
> >   Sponsored by: Spectra Logic
> 
> Hi,
> 
> We have a daily panic on one of the package builders:
> https://reviews.freebsd.org/P60
> 
> Reverting this commit seems to fix the panic.

I already provided the following patch to gjb.
I am waiting for a confirmation to commit.

diff --git a/sys/kern/uipc_shm.c b/sys/kern/uipc_shm.c
index 8410ed9..93c7ed1 100644
--- a/sys/kern/uipc_shm.c
+++ b/sys/kern/uipc_shm.c
@@ -170,7 +170,7 @@ uiomove_object_page(vm_object_t obj, size_t len, struct uio *uio)
 	if (uio->uio_rw == UIO_READ && vm_page_lookup(obj, idx) == NULL &&
 	    !vm_pager_has_page(obj, idx, NULL, NULL)) {
 		VM_OBJECT_WUNLOCK(obj);
-		return (uiomove(__DECONST(void *, zero_region), len, uio));
+		return (uiomove(__DECONST(void *, zero_region), tlen, uio));
 	}
 
 	/*



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