Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 29 Jan 2010 13:07:25 +0100
From:      Romain =?iso-8859-1?Q?Tarti=E8re?= <romain@blogreen.org>
To:        Bert Moorthaemer <bert.moorthaemer@gmail.com>
Cc:        mono@freebsd.org
Subject:   Re: mono 2.6 port
Message-ID:  <20100129120725.GB24544@blogreen.org>
In-Reply-To: <586330e51001290355n468c46ge78ccf2c7b16ee28@mail.gmail.com>
References:  <586330e51001070303o62dc1d25m164764f1ccb633ac@mail.gmail.com> <20100107180952.GC68599@blogreen.org> <586330e51001290118q68ee83b8i22d8b46fd78deed9@mail.gmail.com> <20100129112910.GB24144@blogreen.org> <586330e51001290355n468c46ge78ccf2c7b16ee28@mail.gmail.com>

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

--l76fUT7nc3MelDdI
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable


On Fri, Jan 29, 2010 at 12:55:44PM +0100, Bert Moorthaemer wrote:
> Didn't this problem exist on 2.4? I have googled on this and found that
> Linux introduced this flag to make context switching faster on some older
> x64 processors. Currently most x64 processors don't suffer from this
> anymore. Did you try to compile and run the mono compiler without the
> MAP_32BIT flag?

Well, the autotools stuff detects whether MAP_32BIT is available or not
and do not use it on FreeBSD amd64 since it does not exist.  This does
not prevent mono from working.

However, the mono debugger relies on some black-magic that suppose
mmapped pages addresses fit in 32 bits, and it checks this e.g.:

mini/mini-amd64.c:3509: g_assert (((guint64)ss_trigger_page >> 32) =3D=3D 0=
);

I have not dig much into this, but the 64bit ss_trigger_page variable
seems to be used for storing an address in the 32 lower bits and some
register values in the higher 32 bits ...  Basically, removing the
assertions will not do the trick, and macros used to manipulate
ss_trigger_page are calling other macros with "32" in their name while
similar macros exists with "64" instead of "32".  I guess this is to
avoid using a data structure that would reduce performances that this
was designed this way.

Before taking more time on this I would like to know that it works on
FreeBSD i386: if yes, I could consider changing this to use some
data-structures on amd64; if no I guess I'll have a very bad time :-(

Any help is of course welcome!

Thanks!
Romain

--=20
Romain Tarti=E8re <romain@blogreen.org>        http://romain.blogreen.org/
pgp: 8DAB A124 0DA4 7024 F82A  E748 D8E9 A33F FF56 FF43 (ID: 0xFF56FF43)
(plain text =3Dnon-HTML=3D PGP/GPG encrypted/signed e-mail much appreciated)

--l76fUT7nc3MelDdI
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (FreeBSD)

iEYEARECAAYFAktiz30ACgkQ2OmjP/9W/0MJAgCfXJERFnMZPC5l2bPPXZlDx9rp
ux0AnRjZr4t5/Iucmb8ViIbVqLTUYdqY
=V0+l
-----END PGP SIGNATURE-----

--l76fUT7nc3MelDdI--



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