• Avadhut Naik's avatar
    ACPI: APEI: Skip initialization of GHES_ASSIST structures for Machine Check Architecture · 8ec70713
    Avadhut Naik authored
    To support GHES_ASSIST on Machine Check Architecture (MCA) error sources,
    a set of GHES structures is provided by the system firmware for each MCA
    error source. Each of these sets consists of a GHES structure for each MCA
    bank on each logical CPU, with all structures of a set sharing a common
    Related Source ID, equal to the Source ID of one of the MCA error source
    structures.[1] On SOCs with large core counts, this typically equates to
    tens of thousands of GHES_ASSIST structures for MCA under
    "/sys/bus/platform/drivers/GHES".
    
    Support for GHES_ASSIST however, hasn't been implemented in the kernel. As
    such, the information provided through these structures is not consumed by
    Linux. Moreover, these GHES_ASSIST structures for MCA, which are supposed
    to provide supplemental information in context of an error reported by
    hardware, are setup as independent error sources by the kernel during HEST
    initialization.
    
    Additionally, if the Type field of the Notification structure, associated
    with these GHES_ASSIST structures for MCA, is set to Polled, the kernel
    sets up a timer for each individual structure. The duration of the timer
    is derived from the Poll Interval field of the Notification structure. On
    SOCs with high core counts, this will result in tens of thousands of
    timers expiring periodically causing unnecessary preemptions and wastage
    of CPU cycles. The problem will particularly intensify if Poll Interval
    duration is not sufficiently high.
    
    Since GHES_ASSIST support is not present in kernel, skip initialization
    of GHES_ASSIST structures for MCA to eliminate their performance impact.
    
    [1] ACPI specification 6.5, section 18.7
    Signed-off-by: default avatarAvadhut Naik <avadhut.naik@amd.com>
    Reviewed-by: default avatarYazen Ghannam <yazen.ghannam@amd.com>
    Reviewed-by: default avatarTony Luck <tony.luck@intel.com>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    8ec70713
hest.c 8.37 KB