Skip site navigation (1)Skip section navigation (2)
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>