Re: 32bit resctrl? (was Re: [PATCH v2] fs/resctrl: fix domid loss precision issue)

From: Peter Newman
Date: Fri Mar 15 2024 - 13:06:56 EST


On Fri, Mar 15, 2024 at 9:17 AM Moger, Babu <bmoger@xxxxxxx> wrote:
>
>
> On 3/14/2024 10:25 AM, Reinette Chatre wrote:
> > +x86 maintainers, Tony, Babu, Peter
> >
> > Hi Everybody,
> >
> > On 3/12/2024 12:53 AM, Rex Nie wrote:
> >> diff --git a/fs/resctrl/internal.h b/fs/resctrl/internal.h
> >> index 7a6f46b4edd0..096317610949 100644
> >> --- a/fs/resctrl/internal.h
> >> +++ b/fs/resctrl/internal.h
> >> @@ -94,7 +94,7 @@ union mon_data_bits {
> >> struct {
> >> unsigned int rid : 10;
> >> enum resctrl_event_id evtid : 8;
> >> - unsigned int domid : 14;
> >> + u32 domid;
> >> } u;
> >> };
> >>
> > resctrl currently supports 32bit builds. Fixing this issue* in this way
>
> I have never bothered about 32bit builds. Is Intel still testing 32bit
> builds?

I can confirm we don't have any 32-bit builds.


> The structure pointer "union mon_data_bits priv;" is created in stack
> and passed to create mondata directory. We are reading it later again in
> rdtgroup_mondata_show.
>
> How is this pointer valid again? Shouldn't we use static pointer or
> allocate memory for the pointer?

The union is copied by value into the pointer-sized field, hence the
need for pointers to be large enough to hold this value.

-Peter