Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Oct 2012 16:14:50 +0300
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Svatopluk Kraus <onwahe@gmail.com>
Cc:        freebsd-current@freebsd.org, Alan Cox <alc@rice.edu>
Subject:   Re: i386 pmap - missing sched_pin()?
Message-ID:  <20121023131450.GU35915@deviant.kiev.zoral.com.ua>
In-Reply-To: <CAFHCsPXNnm9c1FL=9%2B2k6X6O1qfRQPRVybueM5xwdbdvONj1jg@mail.gmail.com>
References:  <CAFHCsPXNnm9c1FL=9%2B2k6X6O1qfRQPRVybueM5xwdbdvONj1jg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--pdpX56ILVjuiN9xp
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Tue, Oct 23, 2012 at 02:36:07PM +0200, Svatopluk Kraus wrote:
> Hi,
>=20
>    I'm just syncing my ARM pmap code (base on i386 one) with current
> i386 pmap code. It looks that sched_pin() is missing after successful
> rw_try_wlock() in pmap_protect().

Yes, you are right, I think. The following patch takes care of it.

diff --git a/sys/i386/i386/pmap.c b/sys/i386/i386/pmap.c
index ac087f6..b9033da 100644
--- a/sys/i386/i386/pmap.c
+++ b/sys/i386/i386/pmap.c
@@ -3221,6 +3221,7 @@ resume:
 						PMAP_UNLOCK(pmap);
 						goto resume;
 					}
+					sched_pin();
 				}
 				if (!pmap_demote_pde(pmap,
 				    &pmap->pm_pdir[pdirindex], sva)) {

--pdpX56ILVjuiN9xp
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (FreeBSD)

iEYEARECAAYFAlCGmEoACgkQC3+MBN1Mb4jyCwCfX+NZhhcWOuP9mBJXcj76r5re
WksAn20ziOLCTOwDNEwFEHivqEdjpZsJ
=Zy23
-----END PGP SIGNATURE-----

--pdpX56ILVjuiN9xp--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20121023131450.GU35915>