Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 31 Aug 2022 14:15:36 +0300
From:      Toomas Soome <tsoome@me.com>
To:        Jessica Clarke <jrtc27@freebsd.org>
Cc:        "Bjoern A. Zeeb" <bz@FreeBSD.org>, Toomas Soome <tsoome@FreeBSD.org>, "src-committers@freebsd.org" <src-committers@FreeBSD.org>, "dev-commits-src-all@freebsd.org" <dev-commits-src-all@FreeBSD.org>, "dev-commits-src-main@freebsd.org" <dev-commits-src-main@FreeBSD.org>
Subject:   Re: git: e3572eb65473 - main - Allocate event for DMC-620 and CMN-600 controllers PMU. Add events supported by DMC-620 and CMN-600 controllers PMU.
Message-ID:  <0DCA177E-9FD9-4DF8-A7EB-C29CA44B5116@me.com>
In-Reply-To: <0F57FEEE-BDC0-4CE1-9349-D7E12556E158@freebsd.org>
References:  <202206262217.25QMHOuH076130@gitrepo.freebsd.org> <F0C6ECC7-E479-4FA8-ADAE-7229E045D771@freebsd.org> <alpine.BSF.2.00.2206262336110.68830@ai.fobar.qr> <CE2DC7A3-CB6B-4AC4-9F62-07302D501B61@freebsd.org> <alpine.BSF.2.00.2206270053420.68830@ai.fobar.qr> <1E37449E-B6C8-47A5-AD79-34F24138CC64@freebsd.org> <r9ro55p-7279-6s1s-q8rq-3q5r589768sq@SerrOFQ.bet> <0F57FEEE-BDC0-4CE1-9349-D7E12556E158@freebsd.org>

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

--Apple-Mail=_0C935628-E893-401A-9B4F-97ADC5A55F9E
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Please see https://reviews.freebsd.org/D36401 =
<https://reviews.freebsd.org/D36401>;

thanks,
toomas

> On 31. Aug 2022, at 01:05, Jessica Clarke <jrtc27@freebsd.org> wrote:
>=20
> On 30 Aug 2022, at 22:51, Bjoern A. Zeeb <bz@FreeBSD.org =
<mailto:bz@FreeBSD.org>> wrote:
>>=20
>> On Tue, 30 Aug 2022, Jessica Clarke wrote:
>>=20
>> Hi Jessica,
>>=20
>>> On 27 Jun 2022, at 01:58, Bjoern A. Zeeb <bz@FreeBSD.org> wrote:
>>>>=20
>>>> On Mon, 27 Jun 2022, Jessica Clarke wrote:
>>>>=20
>>>> Hi,
>>>>=20
>>>>> On 27 Jun 2022, at 01:26, Bjoern A. Zeeb <bz@FreeBSD.org> wrote:
>>>>>>=20
>>>>>> On Mon, 27 Jun 2022, Jessica Clarke wrote:
>>>>>>=20
>>>>>>> On 26 Jun 2022, at 23:17, Toomas Soome <tsoome@FreeBSD.org> =
wrote:
>>>>>>>>=20
>>>>>>>> The branch main has been updated by tsoome:
>>>>>>>>=20
>>>>>>>> URL: =
https://cgit.FreeBSD.org/src/commit/?id=3De3572eb654733a94e1e765fe9e95e057=
9981d851
>>>>>>>>=20
>>>>>>>> commit e3572eb654733a94e1e765fe9e95e0579981d851
>>>>>>>> Author: Aleksandr Rybalko <ray@freebsd.org>
>>>>>>>> AuthorDate: 2022-02-16 00:19:19 +0000
>>>>>>>> Commit: Toomas Soome <tsoome@FreeBSD.org>
>>>>>>>> CommitDate: 2022-06-26 18:52:26 +0000
>>>>>>>>=20
>>>>>>>> Allocate event for DMC-620 and CMN-600 controllers PMU. Add =
events supported by DMC-620 and CMN-600 controllers PMU.
>>>>>>>>=20
>>>>>>>> Allocate event for DMC-620 and CMN-600 controllers PMU.
>>>>>>>> Add events supported by DMC-620 and CMN-600 controllers PMU.
>>>>>>>>=20
>>>>>>>> Reviewed by: bz
>>>>>>>> Sponsored By: ARM
>>>>>>>> Sponsored By: Ampere Computing
>>>>>>>> Differential Revision: https://reviews.freebsd.org/D35609
>>>>>>>=20
>>>>>>> This includes the following (skipped due to lines) diff:
>>>>>>>=20
>>>>>>>> * 0x14100	0x0100		ARMv8 events
>>>>>>>> + * 0x14200	0x0020		ARM DMC-620 clkdiv2 events
>>>>>>>> + * 0x14220	0x0080		ARM DMC-620 clk events
>>>>>>>> + * 0x14300	0x0100		ARM CMN-600 events
>>>>>>>=20
>>>>>>>=20
>>>>>>> Not enough space was allocated for Armv8 events as it goes up to =
0x3ff
>>>>>>> in Armv8 (and beyond in later versions of the architecture). =
Downstream
>>>>>>> we extend this range in CheriBSD as required for Morello=E2=80=99s=
 events.
>>>>>>> Please relocate these new events well past the end of the =
existing
>>>>>>> Armv8 events so the space can remain contiguous.
>>>>>>=20
>>>>>> Should this be 0x3ff then as well btw?
>>>>>> =
https://github.com/CTSRD-CHERI/cheribsd/commit/4ea869cd8b717ca0b07672eb7ac=
c99bf949249de
>>>>>=20
>>>>> Well, 0x400 for count not max, but yes. We only extended as far as =
we
>>>>> needed, not to cover the entire range (but intended to eventually
>>>>> upstream it as the full v8 range).
>>>>>=20
>>>>>> Looking more closely it seems from ARMv8.1 onwards it goes up to =
0xFFFF
>>>>>> if I read 'Table D8-7 Allocation of the PMU event number space' =
of ARM
>>>>>> DDI 0487H.a correctly?
>>>>>=20
>>>>> Yes, if you want to cover all the v8.1 space then you need to go =
that
>>>>> high too, but it=E2=80=99ll get quite sparse in that range so =
it=E2=80=99s unclear if
>>>>> we want to go ahead and do that already or try and be smarter (the
>>>>> current EVENT_xH list would get a bit silly). We should probably
>>>>> reserve all of it though at least so we can if we want to in =
future.
>>>>=20
>>>> I'll let you and Toomas sort that out. I am just trying to fix the
>>>> build breakage as I kind-of pushed him to get the remaining bits in
>>>> by accepting that review after scrolling through and it looking
>>>> reasonable and addressing all comments from the previous review.
>>>> That was all to unbreak an already earlier build breakage.
>>>>=20
>>>> Given it wasn't too late for me I was trying to get through it
>>>> before falling asleep soon as well, especially now that the
>>>> thunderstorms seems to have mostly passed.
>>>=20
>>> Nobody ever got round to addressing this, and it is in fact causing =
us
>>> issues downstream now. However, there=E2=80=99s a rather more =
glaring problem:
>>>=20
>>>> @@ -1313,6 +1475,10 @@ pmc_init(void)
>>>>=20
>>>> 	/* Fill soft events information. */
>>>> 	pmc_class_table[n++] =3D &soft_class_table_descr;
>>>> +
>>>> +	pmc_class_table[n++] =3D &cmn600_pmu_class_table_descr;
>>>> +	pmc_class_table[n++] =3D &dmc620_pmu_cd2_class_table_descr;
>>>> +	pmc_class_table[n++] =3D &dmc620_pmu_c_class_table_descr;
>>>=20
>>> This doesn=E2=80=99t work (even if you ifdef it appropriately like =
now exists
>>> upstream). If there is no CMN-600 etc then PMC_CLASS_TABLE_SIZE, =
i.e.
>>> cpu_info.pm_nclass, is not going to include those, so you cannot add
>>> them to pmc_class_table otherwise you have a buffer overflow.
>>=20
>> I am just replying really given I am on Cc: hoping that Toomas will =
get to this.
>>=20
>> pmc_init() is libpmc, right? Does a simple #if 0 around these avert =
all
>> issues for now or do the kernel bits also need backing out?
>>=20
>> I only have vague memories of multiple commit to unbreak this one =
from
>> that night (which tried to fix a previous different breakage).
>> Backing out everything might be more tedious than just reverting the
>> commit hence asking if "disabling" it does fix the problems.
>=20
> The only commit to libpmc.c since then was to add the #ifdef. I =
believe
> the kernel bits can stay, though the event numbers still collide with
> what should have been reserved for Armv8-A=E2=80=99s full range, and =
what we
> reserve downstream as we have hardware that uses those events for
> documented counters.
>=20
>>> Given
>>> this has broken libpmc on large swathes of AArch64 hardware (maybe
>>=20
>> That has taken a lot of time for anyone to notice :(
>=20
> It also took a long time for anyone to notice how broken libpmcstat =
is,
> and only a handful of people have noticed it=E2=80=99s totally broken =
for PIEs.
> People just aren=E2=80=99t using pmc much, especially on !x86=E2=80=A6
>=20
> Jess
>=20
>>> without CHERI the memory corruption happens to not trample over
>>> anything important for now, but who knows), can we please revert =
this
>>> patch until a fixed version exists, with both the event numbers
>>> reallocated and libpmc made suitably dynamic so as to not introduce
>>> buffer overflows?
>>>=20
>>> Note that cmn600 only has an ACPI attachment so FDT-based systems =
will
>>> definitely hit this case.
>>>=20
>>> Jess
>>>=20
>>>=20
>>=20
>> --=20
>> Bjoern A. Zeeb r15:7


--Apple-Mail=_0C935628-E893-401A-9B4F-97ADC5A55F9E
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" =
class=3D"">Please see&nbsp;<span style=3D"text-decoration: underline; =
font-family: Hack; background-color: rgb(255, 255, 255);" class=3D""><a =
href=3D"https://reviews.freebsd.org/D36401" =
class=3D"">https://reviews.freebsd.org/D36401</a></span><div =
class=3D""><font face=3D"Hack" class=3D""><span style=3D"background-color:=
 rgb(255, 255, 255);" class=3D""><u class=3D""><br =
class=3D""></u></span></font></div><div class=3D""><font face=3D"Hack" =
class=3D""><span style=3D"background-color: rgb(255, 255, 255);" =
class=3D""><u class=3D"">thanks,</u></span></font></div><div =
class=3D""><font face=3D"Hack" class=3D""><span style=3D"background-color:=
 rgb(255, 255, 255);" class=3D""><u class=3D"">toomas<br =
class=3D""></u></span></font><div><br class=3D""><blockquote type=3D"cite"=
 class=3D""><div class=3D"">On 31. Aug 2022, at 01:05, Jessica Clarke =
&lt;<a href=3D"mailto:jrtc27@freebsd.org" =
class=3D"">jrtc27@freebsd.org</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><meta =
charset=3D"UTF-8" class=3D""><span style=3D"caret-color: rgb(0, 0, 0); =
font-family: Hack-Regular; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline !important;" =
class=3D"">On 30 Aug 2022, at 22:51, Bjoern A. Zeeb &lt;</span><a =
href=3D"mailto:bz@FreeBSD.org" style=3D"font-family: Hack-Regular; =
font-size: 12px; font-style: normal; font-variant-caps: normal; =
font-weight: 400; letter-spacing: normal; orphans: auto; text-align: =
start; text-indent: 0px; text-transform: none; white-space: normal; =
widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; =
-webkit-text-stroke-width: 0px;" class=3D"">bz@FreeBSD.org</a><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: Hack-Regular; =
font-size: 12px; font-style: normal; font-variant-caps: normal; =
font-weight: 400; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none; float: none; display: inline !important;" class=3D"">&gt; =
wrote:</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: =
Hack-Regular; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: 400; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;" class=3D""><blockquote type=3D"cite" style=3D"font-family: =
Hack-Regular; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: 400; letter-spacing: normal; orphans: auto; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; =
-webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><br =
class=3D"">On Tue, 30 Aug 2022, Jessica Clarke wrote:<br class=3D""><br =
class=3D"">Hi Jessica,<br class=3D""><br class=3D""><blockquote =
type=3D"cite" class=3D"">On 27 Jun 2022, at 01:58, Bjoern A. Zeeb &lt;<a =
href=3D"mailto:bz@FreeBSD.org" class=3D"">bz@FreeBSD.org</a>&gt; =
wrote:<br class=3D""><blockquote type=3D"cite" class=3D""><br =
class=3D"">On Mon, 27 Jun 2022, Jessica Clarke wrote:<br class=3D""><br =
class=3D"">Hi,<br class=3D""><br class=3D""><blockquote type=3D"cite" =
class=3D"">On 27 Jun 2022, at 01:26, Bjoern A. Zeeb &lt;<a =
href=3D"mailto:bz@FreeBSD.org" class=3D"">bz@FreeBSD.org</a>&gt; =
wrote:<br class=3D""><blockquote type=3D"cite" class=3D""><br =
class=3D"">On Mon, 27 Jun 2022, Jessica Clarke wrote:<br class=3D""><br =
class=3D""><blockquote type=3D"cite" class=3D"">On 26 Jun 2022, at =
23:17, Toomas Soome &lt;<a href=3D"mailto:tsoome@FreeBSD.org" =
class=3D"">tsoome@FreeBSD.org</a>&gt; wrote:<br class=3D""><blockquote =
type=3D"cite" class=3D""><br class=3D"">The branch main has been updated =
by tsoome:<br class=3D""><br class=3D"">URL: <a =
href=3D"https://cgit.FreeBSD.org/src/commit/?id=3De3572eb654733a94e1e765fe=
9e95e0579981d851" =
class=3D"">https://cgit.FreeBSD.org/src/commit/?id=3De3572eb654733a94e1e76=
5fe9e95e0579981d851</a><br class=3D""><br class=3D"">commit =
e3572eb654733a94e1e765fe9e95e0579981d851<br class=3D"">Author: Aleksandr =
Rybalko &lt;<a href=3D"mailto:ray@freebsd.org" =
class=3D"">ray@freebsd.org</a>&gt;<br class=3D"">AuthorDate: 2022-02-16 =
00:19:19 +0000<br class=3D"">Commit: Toomas Soome &lt;<a =
href=3D"mailto:tsoome@FreeBSD.org" =
class=3D"">tsoome@FreeBSD.org</a>&gt;<br class=3D"">CommitDate: =
2022-06-26 18:52:26 +0000<br class=3D""><br class=3D"">Allocate event =
for DMC-620 and CMN-600 controllers PMU. Add events supported by DMC-620 =
and CMN-600 controllers PMU.<br class=3D""><br class=3D"">Allocate event =
for DMC-620 and CMN-600 controllers PMU.<br class=3D"">Add events =
supported by DMC-620 and CMN-600 controllers PMU.<br class=3D""><br =
class=3D"">Reviewed by: bz<br class=3D"">Sponsored By: ARM<br =
class=3D"">Sponsored By: Ampere Computing<br class=3D"">Differential =
Revision: <a href=3D"https://reviews.freebsd.org/D35609" =
class=3D"">https://reviews.freebsd.org/D35609</a><br =
class=3D""></blockquote><br class=3D"">This includes the following =
(skipped due to lines) diff:<br class=3D""><br class=3D""><blockquote =
type=3D"cite" class=3D"">* 0x14100<span class=3D"Apple-tab-span" =
style=3D"white-space: pre;">	</span>0x0100<span =
class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span>ARMv8 =
events<br class=3D"">+ * 0x14200<span class=3D"Apple-tab-span" =
style=3D"white-space: pre;">	</span>0x0020<span =
class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span>ARM =
DMC-620 clkdiv2 events<br class=3D"">+ * 0x14220<span =
class=3D"Apple-tab-span" style=3D"white-space: pre;">	=
</span>0x0080<span class=3D"Apple-tab-span" style=3D"white-space: pre;">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space: pre;">	=
</span>ARM DMC-620 clk events<br class=3D"">+ * 0x14300<span =
class=3D"Apple-tab-span" style=3D"white-space: pre;">	=
</span>0x0100<span class=3D"Apple-tab-span" style=3D"white-space: pre;">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space: pre;">	=
</span>ARM CMN-600 events<br class=3D""></blockquote><br class=3D""><br =
class=3D"">Not enough space was allocated for Armv8 events as it goes up =
to 0x3ff<br class=3D"">in Armv8 (and beyond in later versions of the =
architecture). Downstream<br class=3D"">we extend this range in CheriBSD =
as required for Morello=E2=80=99s events.<br class=3D"">Please relocate =
these new events well past the end of the existing<br class=3D"">Armv8 =
events so the space can remain contiguous.<br class=3D""></blockquote><br =
class=3D"">Should this be 0x3ff then as well btw?<br class=3D""><a =
href=3D"https://github.com/CTSRD-CHERI/cheribsd/commit/4ea869cd8b717ca0b07=
672eb7acc99bf949249de" =
class=3D"">https://github.com/CTSRD-CHERI/cheribsd/commit/4ea869cd8b717ca0=
b07672eb7acc99bf949249de</a><br class=3D""></blockquote><br =
class=3D"">Well, 0x400 for count not max, but yes. We only extended as =
far as we<br class=3D"">needed, not to cover the entire range (but =
intended to eventually<br class=3D"">upstream it as the full v8 =
range).<br class=3D""><br class=3D""><blockquote type=3D"cite" =
class=3D"">Looking more closely it seems from ARMv8.1 onwards it goes up =
to 0xFFFF<br class=3D"">if I read 'Table D8-7 Allocation of the PMU =
event number space' of ARM<br class=3D"">DDI 0487H.a correctly?<br =
class=3D""></blockquote><br class=3D"">Yes, if you want to cover all the =
v8.1 space then you need to go that<br class=3D"">high too, but it=E2=80=99=
ll get quite sparse in that range so it=E2=80=99s unclear if<br =
class=3D"">we want to go ahead and do that already or try and be smarter =
(the<br class=3D"">current EVENT_xH list would get a bit silly). We =
should probably<br class=3D"">reserve all of it though at least so we =
can if we want to in future.<br class=3D""></blockquote><br =
class=3D"">I'll let you and Toomas sort that out. I am just trying to =
fix the<br class=3D"">build breakage as I kind-of pushed him to get the =
remaining bits in<br class=3D"">by accepting that review after scrolling =
through and it looking<br class=3D"">reasonable and addressing all =
comments from the previous review.<br class=3D"">That was all to unbreak =
an already earlier build breakage.<br class=3D""><br class=3D"">Given it =
wasn't too late for me I was trying to get through it<br class=3D"">before=
 falling asleep soon as well, especially now that the<br =
class=3D"">thunderstorms seems to have mostly passed.<br =
class=3D""></blockquote><br class=3D"">Nobody ever got round to =
addressing this, and it is in fact causing us<br class=3D"">issues =
downstream now. However, there=E2=80=99s a rather more glaring =
problem:<br class=3D""><br class=3D""><blockquote type=3D"cite" =
class=3D"">@@ -1313,6 +1475,10 @@ pmc_init(void)<br class=3D""><br =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space: pre;">	=
</span>/* Fill soft events information. */<br class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space: pre;">	=
</span>pmc_class_table[n++] =3D &amp;soft_class_table_descr;<br =
class=3D"">+<br class=3D"">+<span class=3D"Apple-tab-span" =
style=3D"white-space: pre;">	</span>pmc_class_table[n++] =3D =
&amp;cmn600_pmu_class_table_descr;<br class=3D"">+<span =
class=3D"Apple-tab-span" style=3D"white-space: pre;">	=
</span>pmc_class_table[n++] =3D =
&amp;dmc620_pmu_cd2_class_table_descr;<br class=3D"">+<span =
class=3D"Apple-tab-span" style=3D"white-space: pre;">	=
</span>pmc_class_table[n++] =3D &amp;dmc620_pmu_c_class_table_descr;<br =
class=3D""></blockquote><br class=3D"">This doesn=E2=80=99t work (even =
if you ifdef it appropriately like now exists<br class=3D"">upstream). =
If there is no CMN-600 etc then PMC_CLASS_TABLE_SIZE, i.e.<br =
class=3D"">cpu_info.pm_nclass, is not going to include those, so you =
cannot add<br class=3D"">them to pmc_class_table otherwise you have a =
buffer overflow.<br class=3D""></blockquote><br class=3D"">I am just =
replying really given I am on Cc: hoping that Toomas will get to =
this.<br class=3D""><br class=3D"">pmc_init() is libpmc, right? Does a =
simple #if 0 around these avert all<br class=3D"">issues for now or do =
the kernel bits also need backing out?<br class=3D""><br class=3D"">I =
only have vague memories of multiple commit to unbreak this one from<br =
class=3D"">that night (which tried to fix a previous different =
breakage).<br class=3D"">Backing out everything might be more tedious =
than just reverting the<br class=3D"">commit hence asking if "disabling" =
it does fix the problems.<br class=3D""></blockquote><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Hack-Regular; =
font-size: 12px; font-style: normal; font-variant-caps: normal; =
font-weight: 400; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;" class=3D""><span style=3D"caret-color: rgb(0, 0, 0); font-family: =
Hack-Regular; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: 400; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none; float: none; display: inline !important;" class=3D"">The only =
commit to libpmc.c since then was to add the #ifdef. I believe</span><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Hack-Regular; =
font-size: 12px; font-style: normal; font-variant-caps: normal; =
font-weight: 400; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;" class=3D""><span style=3D"caret-color: rgb(0, 0, 0); font-family: =
Hack-Regular; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: 400; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none; float: none; display: inline !important;" class=3D"">the kernel =
bits can stay, though the event numbers still collide with</span><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Hack-Regular; =
font-size: 12px; font-style: normal; font-variant-caps: normal; =
font-weight: 400; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;" class=3D""><span style=3D"caret-color: rgb(0, 0, 0); font-family: =
Hack-Regular; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: 400; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none; float: none; display: inline !important;" class=3D"">what should =
have been reserved for Armv8-A=E2=80=99s full range, and what =
we</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: =
Hack-Regular; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: 400; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;" class=3D""><span style=3D"caret-color: rgb(0, 0, 0); font-family: =
Hack-Regular; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: 400; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none; float: none; display: inline !important;" class=3D"">reserve =
downstream as we have hardware that uses those events for</span><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Hack-Regular; =
font-size: 12px; font-style: normal; font-variant-caps: normal; =
font-weight: 400; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;" class=3D""><span style=3D"caret-color: rgb(0, 0, 0); font-family: =
Hack-Regular; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: 400; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none; float: none; display: inline !important;" class=3D"">documented =
counters.</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: =
Hack-Regular; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: 400; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;" class=3D""><br style=3D"caret-color: rgb(0, 0, 0); font-family: =
Hack-Regular; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: 400; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;" class=3D""><blockquote type=3D"cite" style=3D"font-family: =
Hack-Regular; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: 400; letter-spacing: normal; orphans: auto; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; =
-webkit-text-stroke-width: 0px; text-decoration: none;" =
class=3D""><blockquote type=3D"cite" class=3D"">Given<br class=3D"">this =
has broken libpmc on large swathes of AArch64 hardware (maybe<br =
class=3D""></blockquote><br class=3D"">That has taken a lot of time for =
anyone to notice :(<br class=3D""></blockquote><br style=3D"caret-color: =
rgb(0, 0, 0); font-family: Hack-Regular; font-size: 12px; font-style: =
normal; font-variant-caps: normal; font-weight: 400; letter-spacing: =
normal; text-align: start; text-indent: 0px; text-transform: none; =
white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;" class=3D""><span style=3D"caret-color: rgb(0, 0, =
0); font-family: Hack-Regular; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline !important;" =
class=3D"">It also took a long time for anyone to notice how broken =
libpmcstat is,</span><br style=3D"caret-color: rgb(0, 0, 0); =
font-family: Hack-Regular; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;" class=3D""><span style=3D"caret-color: rgb(0, 0, =
0); font-family: Hack-Regular; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline !important;" =
class=3D"">and only a handful of people have noticed it=E2=80=99s =
totally broken for PIEs.</span><br style=3D"caret-color: rgb(0, 0, 0); =
font-family: Hack-Regular; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;" class=3D""><span style=3D"caret-color: rgb(0, 0, =
0); font-family: Hack-Regular; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline !important;" =
class=3D"">People just aren=E2=80=99t using pmc much, especially on =
!x86=E2=80=A6</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: =
Hack-Regular; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: 400; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;" class=3D""><br style=3D"caret-color: rgb(0, 0, 0); font-family: =
Hack-Regular; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: 400; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;" class=3D""><span style=3D"caret-color: rgb(0, 0, 0); font-family: =
Hack-Regular; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: 400; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none; float: none; display: inline !important;" class=3D"">Jess</span><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Hack-Regular; =
font-size: 12px; font-style: normal; font-variant-caps: normal; =
font-weight: 400; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;" class=3D""><br style=3D"caret-color: rgb(0, 0, 0); font-family: =
Hack-Regular; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: 400; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;" class=3D""><blockquote type=3D"cite" style=3D"font-family: =
Hack-Regular; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: 400; letter-spacing: normal; orphans: auto; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; =
-webkit-text-stroke-width: 0px; text-decoration: none;" =
class=3D""><blockquote type=3D"cite" class=3D"">without CHERI the memory =
corruption happens to not trample over<br class=3D"">anything important =
for now, but who knows), can we please revert this<br class=3D"">patch =
until a fixed version exists, with both the event numbers<br =
class=3D"">reallocated and libpmc made suitably dynamic so as to not =
introduce<br class=3D"">buffer overflows?<br class=3D""><br =
class=3D"">Note that cmn600 only has an ACPI attachment so FDT-based =
systems will<br class=3D"">definitely hit this case.<br class=3D""><br =
class=3D"">Jess<br class=3D""><br class=3D""><br =
class=3D""></blockquote><br class=3D"">--<span =
class=3D"Apple-converted-space">&nbsp;</span><br class=3D"">Bjoern A. =
Zeeb r15:7</blockquote></div></blockquote></div><br =
class=3D""></div></body></html>=

--Apple-Mail=_0C935628-E893-401A-9B4F-97ADC5A55F9E--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?0DCA177E-9FD9-4DF8-A7EB-C29CA44B5116>