svn commit: r281442 - head/sys/kern

Konstantin Belousov kostikbel at gmail.com
Fri Apr 24 20:35:05 UTC 2015


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 at 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));
 	}
 
 	/*


More information about the svn-src-all mailing list