Skip to content
  • Boris Ostrovsky's avatar
    xen/apic: Provide Xen-specific version of cpu_present_to_apicid APIC op · ed6069be
    Boris Ostrovsky authored
    Currently Xen uses default_cpu_present_to_apicid() which will always
    report BAD_APICID for PV guests since x86_bios_cpu_apic_id is initialised
    to that value and is never updated.
    
    With commit 1f12e32f
    
     ("x86/topology: Create logical package id"), this
    op is now called by smp_init_package_map() when deciding whether to call
    topology_update_package_map() which sets cpu_data(cpu).logical_proc_id.
    The latter (as topology_logical_package_id(cpu)) may be used, for example,
    by cpu_to_rapl_pmu() as an array index. Since uninitialized
    logical_package_id is set to -1, the index will become 64K which is
    obviously problematic.
    
    While RAPL code (and any other users of logical_package_id) should be
    careful in their assumptions about id's validity, Xen's
    cpu_present_to_apicid op should still provide value consistent with its
    own xen_apic_read(APIC_ID).
    
    Signed-off-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
    Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    ed6069be