Re: [PATCH v2 00/17] x86/resctrl : Support AMD Assignable Bandwidth Monitoring Counters (ABMC)

From: Peter Newman
Date: Thu Mar 07 2024 - 13:58:05 EST


Hi Babu,

On Mon, Mar 4, 2024 at 2:24 PM Moger, Babu <bmoger@xxxxxxx> wrote:
> Based on our discussion, I am listing few examples here. Let me know if
> I missed something.
>
> mount -t resctrl resctrl /sys/fs/resctrl/
>
> 1. Assign both local and total counters to default group on domain 0 and 1.
> $echo "//00=lt;01=lt" > /sys/fs/resctrl/info/L3_MON/mbm_assign_control
>
> $cat /sys/fs/resctrl/info/L3_MON/mbm_assign_control
> //00=lt;01=lt
>
> 2. Assign a total event to mon group inside the default group for both
> domain 0 and 1.
>
> $mkdir /sys/fs/resctrl/mon_groups/mon_a
> $echo "/mon_a/00+t;01+t" >
> /sys/fs/resctrl/info/L3_MON/mbm_assign_control
>
> $cat /sys/fs/resctrl/info/L3_MON/mbm_assign_control
> //00=lt;01=lt
> /mon_a/00=t;01=t
>
> 3. Assign a local event to non-default control mon group both domain 0
> and 1.
> $mkdir /sys/fs/resctrl/ctrl_a
> $echo "/ctrl_a/00=l;01=l" >
> /sys/fs/resctrl/info/L3_MON/mbm_assign_control
>
> $cat /sys/fs/resctrl/info/L3_MON/mbm_assign_control
> //00=lt;01=lt
> /mon_a/00=t;01=t
> /ctrl_a/00=l;01=l
>
> 4. Assign a both counters to mon group inside another control
> group(non-default).
> $mkdir /sys/fs/resctrl/ctrl_a/mon_ab/
> $echo "ctrl_a/mon_ab/00=lt;01=lt" >
> /sys/fs/resctrl/nfo/L3_MON/mbm_assign_contro
>
> $cat /sys/fs/resctrl/info/L3_MON/mbm_assign_control
> //00=lt;01=lt
> /mon_a/00=t;01=t
> /ctrl_a/00=l;01=l
> ctrl_a/mon_ab/00=lt;01=lt
>
> 5. Unassign a counter to mon group inside another control
> group(non-default).
> $echo "ctrl_a/mon_ab/00-l;01-l" >
> /sys/fs/resctrl/nfo/L3_MON/mbm_assign_control
>
> $cat /sys/fs/resctrl/info/L3_MON/mbm_assign_control
> //00=lt;01=lt
> /mon_a/00=t;01=t
> /ctrl_a/00=l;01=l
> ctrl_a/mon_ab/00=t;01=t
>
> 6. Unassign all the counters on a specific group.
> $echo "ctrl_a/mon_ab/00=_" >
> /sys/fs/resctrl/nfo/L3_MON/mbm_assign_control
>
> $cat /sys/fs/resctrl/info/L3_MON/mbm_assign_control
> //00=lt;01=lt
> /mon_a/00=t;01=t
> /ctrl_a/00=l;01=l
> ctrl_a/mon_ab/00=_;01=_

The use case I'm interested in is iterating 32 counters over 256
groups[1]. If it's not possible to reassign 32 counters in a single
write system call, with just one IPI per domain per batch reassignment
operation, then I don't see any advantage over the original proposal
with the assignment control file in every group directory. We already
had fine-grained control placing assign/unassign nodes throughout the
directory hierarchy, with the scope implicit in the directory
location.

The interface I proposed in [1] aims to reduce the per-domain IPIs by
a factor of the number of counters, rather than sending off 2 rounds
of IPIs to each domain for each monitoring group.

-Peter

[1] https://lore.kernel.org/lkml/CALPaoChhKJiMAueFtgCTc7ffO++S5DJCySmxqf9ZDmhR9RQapw@xxxxxxxxxxxxxx/