Date: Wed, 28 Feb 2001 02:14:53 -0800 From: Julian Elischer <julian@elischer.org> To: Akinori MUSHA <knu@iDaemons.org> Cc: Matt Dillon <dillon@FreeBSD.org>, sanpei@FreeBSD.org, cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/i386/linux linux_machdep.c Message-ID: <3A9CCF9D.2BCD765C@elischer.org> References: <200102280430.f1S4UST14589@freefall.freebsd.org> <86u25fxoky.wl@archon.local.idaemons.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Akinori MUSHA wrote: > > At Tue, 27 Feb 2001 20:30:28 -0800 (PST), > dillon wrote: > > dillon 2001/02/27 20:30:28 PST > > > > Modified files: > > sys/i386/linux linux_machdep.c > > Log: > > Linux does not filesystem-sync file-backed writable mmap pages on > > a regular basis. Adjust our linux emulation to conform. This will > > cause more dirty pages to be left for the pagedaemon to deal with, > > but our new low-memory handling code can deal with it. The linux > > way appears to be a trend, and we may very well make MAP_NOSYNC the > > default for FreeBSD as well (once we have reasonable sequential > > write-behind heuristics for random faults). > > (will be MFC'd prior to 4.3 freeze) > > > > Suggested by: Andrew Gallatin > > How does it compare to the attached patch which came up in the > FreeBSD-users-jp mailing list in Japan some time ago? basically the same patch but the japanese one is more flexible.. who wrote this patch?. they obviously have a clue or two.. :-) what was the problem they were solving? > > It gives users an option to switch the behavior via sysctl(8), and > does <<bsd_args.flags |= MAP_NOSYNC;>> in a different place. > > The patch was originally posted by sanpei@FreeBSD.org, and is > mentioned in Hints.FreeBSD of the vmware2 port, FYI. > > -- > / > /__ __ Akinori.org / MUSHA.org > / ) ) ) ) / FreeBSD.org / Ruby-lang.org > Akinori MUSHA aka / (_ / ( (__( @ iDaemons.org / and.or.jp > > "We're only at home when we're on the run, on the wing, on the fly" > > --- sys/i386/linux/linux_machdep.c 2001/02/16 16:40:43 1.12 > +++ sys/i386/linux/linux_machdep.c 2001/02/27 15:37:29 > @@ -31,6 +31,7 @@ > #include <sys/param.h> > #include <sys/mman.h> > #include <sys/proc.h> > +#include <sys/sysctl.h> > #include <sys/sysproto.h> > #include <sys/systm.h> > #include <sys/unistd.h> > @@ -288,6 +289,11 @@ > int pos; > }; > > +static int mmap_nosync; > +SYSCTL_DECL(_compat_linux); > +SYSCTL_INT(_compat_linux, OID_AUTO, mmap_nosync, CTLFLAG_RW, > + &mmap_nosync, 0, "mmap files with MAP_NOSYNC flag in Linux mode."); > + > #define STACK_SIZE (2 * 1024 * 1024) > #define GUARD_SIZE (4 * PAGE_SIZE) > > @@ -395,8 +401,11 @@ > bsd_args.prot = linux_args.prot | PROT_READ; /* always required */ > if (linux_args.flags & LINUX_MAP_ANON) > bsd_args.fd = -1; > - else > + else { > bsd_args.fd = linux_args.fd; > + if (mmap_nosync) > + bsd_args.flags |= MAP_NOSYNC; > + } > bsd_args.pos = linux_args.pos; > bsd_args.pad = 0; > -- __--_|\ Julian Elischer / \ julian@elischer.org ( OZ ) World tour 2000-2001 ---> X_.---._/ v To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3A9CCF9D.2BCD765C>