lkml.org 
[lkml]   [2023]   [Jun]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH v4 13/24] x86/resctrl: Queue mon_event_read() instead of sending an IPI
    From
    Hi James,

    On 5/25/2023 11:01 AM, James Morse wrote:

    ...

    > @@ -520,12 +521,24 @@ int rdtgroup_schemata_show(struct kernfs_open_file *of,
    > return ret;
    > }
    >
    > +static int smp_mon_event_count(void *arg)
    > +{
    > + mon_event_count(arg);
    > +
    > + return 0;
    > +}
    > +
    > void mon_event_read(struct rmid_read *rr, struct rdt_resource *r,
    > struct rdt_domain *d, struct rdtgroup *rdtgrp,
    > int evtid, int first)
    > {
    > + int cpu;
    > +
    > + /* When picking a CPU from cpu_mask, ensure it can't race with cpuhp */
    > + lockdep_assert_held(&rdtgroup_mutex);
    > +
    > /*
    > - * setup the parameters to send to the IPI to read the data.
    > + * setup the parameters to pass to mon_event_count() to read the data.
    > */

    I understand that you are just copying existing comment but could you
    please change it so that the sentence starts with a capital letter?

    > rr->rgrp = rdtgrp;
    > rr->evtid = evtid;
    > @@ -534,7 +547,18 @@ void mon_event_read(struct rmid_read *rr, struct rdt_resource *r,
    > rr->val = 0;
    > rr->first = first;
    >
    > - smp_call_function_any(&d->cpu_mask, mon_event_count, rr, 1);
    > + cpu = cpumask_any_housekeeping(&d->cpu_mask);
    > +
    > + /*
    > + * cpumask_any_housekeeping() prefers housekeeping CPUs, but
    > + * are all the CPUs nohz_full? If yes, pick a CPU to IPI.
    > + * MPAM's resctrl_arch_rmid_read() is unable to read the
    > + * counters on some platforms if its called in irq context.
    > + */
    > + if (tick_nohz_full_cpu(cpu))
    > + smp_call_function_any(&d->cpu_mask, mon_event_count, rr, 1);
    > + else
    > + smp_call_on_cpu(cpu, smp_mon_event_count, rr, false);
    > }
    >

    Reinette

    \
     
     \ /
      Last update: 2023-06-16 00:13    [W:2.328 / U:0.268 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site