• Sudeep Holla's avatar
    ACPI: PPTT: Leave the table mapped for the runtime usage · 0c80f9e1
    Sudeep Holla authored
    Currently, everytime an information needs to be fetched from the PPTT,
    the table is mapped via acpi_get_table() and unmapped after the use via
    acpi_put_table() which is fine. However we do this at runtime especially
    when the CPU is hotplugged out and plugged in back since we re-populate
    the cache topology and other information.
    
    However, with the support to fetch LLC information from the PPTT in the
    cpuhotplug path which is executed in the atomic context, it is preferred
    to avoid mapping and unmapping of the PPTT for every single use as the
    acpi_get_table() might sleep waiting for a mutex.
    
    In order to avoid the same, the table is needs to just mapped once on
    the boot CPU and is never unmapped allowing it to be used at runtime
    with out the hassle of mapping and unmapping the table.
    Reported-by: default avatarGuenter Roeck <linux@roeck-us.net>
    Cc: Rafael J. Wysocki <rafael@kernel.org>
    Signed-off-by: default avatarSudeep Holla <sudeep.holla@arm.com>
    
    --
    
    Hi Rafael,
    
    Sorry to bother you again on this PPTT changes. Guenter reported an issue
    with lockdep enabled in -next that include my cacheinfo/arch_topology changes
    to utilise LLC from PPTT in the CPU hotplug path.
    
    Please ack the change once you are happy so that I can get it merged with
    other fixes via Greg's tree.
    
    Regards,
    Sudeep
    Acked-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    Link: https://lore.kernel.org/r/20220720-arch_topo_fixes-v3-2-43d696288e84@arm.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    0c80f9e1
pptt.c 24.5 KB