Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Oct 2014 09:27:44 -0600
From:      Warner Losh <imp@bsdimp.com>
To:        John Baldwin <jhb@freebsd.org>
Cc:        Terry Kennedy <TERRY@tmk.com>, freebsd-arch@freebsd.org
Subject:   Re: [rfc] Add boot-time warning messages to PAE kernels
Message-ID:  <BB035582-27C3-47B7-A288-70A4C0F65629@bsdimp.com>
In-Reply-To: <5523023.h2nJCgOPoX@ralph.baldwin.cx>
References:  <01PDOI9M51BK0003PW@tmk.com> <5523023.h2nJCgOPoX@ralph.baldwin.cx>

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

--Apple-Mail=_620F4880-9C5B-47F5-ADD4-5AF82A7891A0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=windows-1252


On Oct 13, 2014, at 8:57 AM, John Baldwin <jhb@freebsd.org> wrote:

> On Monday, October 13, 2014 12:56:09 AM Terry Kennedy wrote:
>>  [Inspired by an unrelated email conversation with jhb@]
>>=20
>>  On the FreeBSD forums and also elsewhere, people frequently ask =
questions
>> about enabling PAE. Generally, this is because they don't know that =
amd64
>> kernels will run on their hardware.
>>=20
>>  I initially proposed a static warning message, similar to the ones =
that
>> happen when a kernel is built with INVARIANTS or WITNESS, with some =
sort
>> of warning that "You probably don't want to do this". On thinking it =
over
>> and discussing with jhb@, I think there are three scenarios that =
could be
>> addressed:
>>=20
>>  1) Boot PAE kernel on any amd64-capable processor - display a =
warning
>>     message stating that the user should consider using the amd64 =
kernel
>>     instead.
>>=20
>>  2) Boot PAE kernel on any processor - display a warning message that
>>     driver support is limited on PAE kernels and that they receive =
less
>>     testing than non-PAE kernels.
>>=20
>>  3) [Possibly] Boot i386 kernel on amd64-capable system w/ > 4GB of =
RAM -
>>     display an informational message that the user should consider =
using
>>     the amd64 kernel instead.
>>=20
>>  This way, anyone that still needs to run a PAE kernel can, but the =
users
>> who choose it by accident or mistake will be guided to the amd64 =
kernel.
>> Adding a similar message to i386 kernels on amd64-capable hardware w/ =
more
>> than 4GB of RAM will likewise direct those users toward a more =
optimal
>> kernel. I mention this because I was having a conversation with a =
user who
>> was trying to get ZFS going but "ran out of memory" on a 12GB system =
due
>> to using the i386 kernel.
>>=20
>>  All of this information (processor capability flags and memory size)
>> is available early enough in the boot process that the messages can =
be
>> displayed near the beginning of the kernel messages.
>>=20
>>  Non-amd64-capable systems that have > 4GB were always a small subset =
of
>> the population, and that hardware has aged enough that much of it is =
no
>> longer used in its original role as business servers. These are =
pre-Socket
>> 604 systems, for example. amd64-capable hardware has been available =
for
>> more than 10 years from both AMD and Intel at this point.
>=20
> I actually think we should consider doing this for all i386 kernels =
regardless=20
> of the 4GB of RAM check.  Something like this:
>=20
> diff --git a/sys/i386/i386/machdep.c b/sys/i386/i386/machdep.c
> index 9d98f0e..6fbf419 100644
> --- a/sys/i386/i386/machdep.c
> +++ b/sys/i386/i386/machdep.c
> @@ -4067,3 +4067,17 @@ outb_(u_short port, u_char data)
> }
>=20
> #endif /* KDB */
> +
> +static void
> +warn64(void *arg __unused)
> +{
> +
> +	if ((cpu_vendor_id =3D=3D CPU_VENDOR_INTEL ||
> +	    cpu_vendor_id =3D=3D CPU_VENDOR_AMD ||
> +	    cpu_vendor_id =3D=3D CPU_VENDOR_CENTAUR) &&
> +	    amd_feature & AMDID_LM)
> +		printf("WARNING: 64-bit capable CPU, consider running "
> +		    "FreeBSD/amd64 instead.\n");
> +}
> +SYSINIT(warn64, SI_SUB_COPYRIGHT, SI_ORDER_THIRD + 3, warn64, NULL);
> +SYSINIT(warn64_2, SI_SUB_LAST, SI_ORDER_THIRD + 3, warn64, NULL);

Where=92s warn64_2 defined :)

I=92d add a && !stfu_warn64 in there somewhere that=92s set as a =
tunable. It
is a good seat belt for the newbie running the wrong thing (though maybe
7 years too late), but experienced users may wish to stifle it for =
organizational
reasons.  Some organizations have a no warning policy where they have to
do something about the warnings, even if there=92s nothing to do. =
Providing
an easy way to STFU the warning would allow them to run with a stock =
kernel
or perhaps (if done as a config option instead) a custom kernel config.

Warner

--Apple-Mail=_620F4880-9C5B-47F5-ADD4-5AF82A7891A0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJUO+9wAAoJEGwc0Sh9sBEAIj0P/0noRLNVVIA3MjATgM4griDQ
NuCOtocflpisAiluWvmcKbPoaeen22sFKxoqaY2cYz4T4szhCdDEZe63vShlZIpW
N1QlnArfP4gu3Aijcf6oxgTkqEnzHn0PZmXUopS/60dqSLWft8Q8ZzBOX7o+fP1s
gvRmL5vaf8W5w2yzOEFVCIbZNk5rykKb1cNKqmxU8GYuAQWXWniJPRm9J+9NftFG
sKKqDJHo+Sjj4NW7MwuhQDktV6XhKuLvoDSi4UgYGb87JvFV3EOJmitjaebGMoNI
Yx80Ch1QJ4ki9mLFTmBWak9JjJ1MbuNO/nd8B1vS8yOZrmJq38ecu3s9QZD9Y2QU
zmTxJPxMM+vovQtM7dCD5446xAf5+TdHJVihVUuQ5Q8MZ07IsUc1Z/BB8u3kHj15
rNoIxA+jjqcHain8ub9SrbUtsSb8xswRXuSZL8c7yAhyoOM+pGmzCKCZmDHYxZdN
P6R+HHzLJgR4LAIlfqs14W3S7wyBPmgbmG6lXFu3qU3LoqxMTRphKG5SQqN94AMa
nENNmVcGaP+a6PsSXPybt4XLB9JWezBFFGiizt6Jg3ncHhpy1nPhV8/DVwVngDec
BgB2X0DDRtPHyVrwh7xsw+WOxUmSAHdHWca1bL23ecvLYAH2VsszS9vMPDzX4ho2
X95akGqpYYWhWJ9oCCAA
=Luaj
-----END PGP SIGNATURE-----

--Apple-Mail=_620F4880-9C5B-47F5-ADD4-5AF82A7891A0--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BB035582-27C3-47B7-A288-70A4C0F65629>