Date: Tue, 08 Jan 2013 10:42:23 -0700 From: Ian Lepore <freebsd@damnhippie.dyndns.org> To: Konstantin Belousov <kostikbel@gmail.com> Cc: svn-src-head@FreeBSD.org, Oleksandr Tymoshenko <gonzo@FreeBSD.org>, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r245147 - head/sys/arm/include Message-ID: <1357666943.1088.137.camel@revolution.hippie.lan> In-Reply-To: <20130108172135.GA2561@kib.kiev.ua> References: <201301080240.r082eKVq080302@svn.freebsd.org> <20130108030022.GC82219@kib.kiev.ua> <50EBA947.1030902@freebsd.org> <20130108155641.GG82219@kib.kiev.ua> <1357664471.1088.131.camel@revolution.hippie.lan> <20130108172135.GA2561@kib.kiev.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 2013-01-08 at 19:21 +0200, Konstantin Belousov wrote: > On Tue, Jan 08, 2013 at 10:01:11AM -0700, Ian Lepore wrote: > > I'm just learning the armv6/v7 stuff myself right now, but I can answer > > your question for our current armv4/v5 implementation... > > > > When there is more than one mapping of a page in v4/v5 and any one of > > those mappings is writable, then the pmap.c code changes all existing > > mappings to be uncacheable to maintain coherency. If the writable > > mapping is removed and all that remains are read/exec mappings, the > > existing mappings are made cacheable again. Yes, that's just as > > inefficient and expensive as it sounds. :) > > Interesting, so the arm/pmap.c in fact maintain pv entries even for the > unmanaged pages and kernel mappings ? But this approach, requiring pv > entries for the kernel mappings, makes kernel pv entries non-reclamable > on the low memory condition. In fact, I cannot find any traces of the pv > reclaim in the arm/pmap.c. Well, I didn't say it did all this *correctly*. (I guess I implied that.) The first added kernel mapping doesn't generate a separate pv entry, it gets noted in the main pv struct, but then if yet another kernel entry is added it gets added as a normal pv entry. I've always assumed that was intended as a performance boost for short-lived temporary kernel mappings. I don't know about the reclaiming stuff. All my work with armv4 has been on small embedded systems compiled with option NO_SWAPPING, so in my experience one is just careful to not use too much memory, because when you do, things start to die. -- Ian
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1357666943.1088.137.camel>