lkml.org 
[lkml]   [2024]   [Feb]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH] x86/resctrl: Fix WARN in get_domain_from_cpu()
    From
    Hi Tony,

    On 21/02/2024 00:34, Tony Luck wrote:
    > reset_all_ctrls() and resctrl_arch_update_domains() use
    > on_each_cpu_mask() to call rdt_ctrl_update() on potentially
    > one CPU from each domain.
    >
    > But this means rdt_ctrl_update() needs to figure out which domain
    > to apply changes to. Doing so requires a search of all domains
    > in a resource, which can only be done safely if cpus_lock is
    > held. Both callers do hold this lock, but there isn't a way
    > for a function called on another CPU via IPI to verify this.
    >
    > Fix by adding the target domain to the msr_param structure and
    > calling for each domain separately using smp_call_function_single()

    Cunning - this trades the memory allocation for multiple IPI. I think this is much better
    for the case where only the local domains configuration is modified.

    With the double-IPI when both CDP configurations are changed fixed:
    Reviewed-by: James Morse <james.morse@arm.com>

    I think we should rip out the false positive check, I'll post a patch to do that.
    I'll double check this was the only IPI path, if so its safe again after this patch and we
    can add lockdep_assert_cpus_held(). If anyone ever hits this during a bisect its should be
    clear(er).


    Thanks,

    James

    \
     
     \ /
      Last update: 2024-05-27 15:14    [W:2.114 / U:0.624 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site