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>
