Eric, Thanks for the informtion.
>From the opensolaris source code, it seems like to get the target_apic_id from 
>cpuid is to use apic_cpu[cpuid]. 


> apic_cpus/J
apic_cpus:
apic_cpus:      ffffff04e68775c0
> ffffff04e68775c0::print -axt apic_cpus_info_t
{
    ffffff04e68775c0 uint32_t aci_local_id = 0x4 <---------- 
    ffffff04e68775c4 uchar_t aci_local_ver = 0x10
    ffffff04e68775c5 uchar_t aci_status = 0x3
    ffffff04e68775c6 uchar_t aci_redistribute = 0
    ffffff04e68775c8 uint_t aci_busy = 0
    ffffff04e68775cc uint_t aci_spur_cnt = 0x159b
    ffffff04e68775d0 uint_t aci_ISR_in_progress = 0
    ffffff04e68775d4 uchar_t aci_curipl = 0
    ffffff04e68775d5 uchar_t [16] aci_current = [ 0, 0, 0, 0xfe, 0, 0x38, 0x48, 
0, 0, 0x14, 0, 0xa0, 0x4, 0,
 0xd2, 0xf0 ]
    ffffff04e68775e8 uint32_t aci_bound = 0
    ffffff04e68775ec uint32_t aci_temp_bound = 0xffffffe8
    ffffff04e68775f0 uchar_t aci_idle = 0
}

This means that cpu_id 0 is actually aci_local_id 4.

My MSIX table updated by Solaris:

ffffff04ef7d16c0 xxx_msix_tbl_t [8] msix_tbl = [
    {
        ffffff04ef7d16c0 uint32_t msgladdr = 0xfee0f000
        ffffff04ef7d16c4 uint32_t msguaddr = 0
        ffffff04ef7d16c8 uint32_t msgdata = 0x61
        ffffff04ef7d16cc unsigned resvd :31 = 0
        ffffff04ef7d16cf.7 unsigned mask :1 = 0
    }
    {
        ffffff04ef7d16d0 uint32_t msgladdr = 0xfee04000 <---- 04 
        ffffff04ef7d16d4 uint32_t msguaddr = 0
        ffffff04ef7d16d8 uint32_t msgdata = 0x62
        ffffff04ef7d16dc unsigned resvd :31 = 0
        ffffff04ef7d16df.7 unsigned mask :1 = 0
    }
    {
        ffffff04ef7d16e0 uint32_t msgladdr = 0xfee05000
        ffffff04ef7d16e4 uint32_t msguaddr = 0
        ffffff04ef7d16e8 uint32_t msgdata = 0x63
        ffffff04ef7d16ec unsigned resvd :31 = 0
        ffffff04ef7d16ef.7 unsigned mask :1 = 0
    }
    {
        ffffff04ef7d16f0 uint32_t msgladdr = 0xfee06000
        ffffff04ef7d16f4 uint32_t msguaddr = 0
        ffffff04ef7d16f8 uint32_t msgdata = 0x64
        ffffff04ef7d16fc unsigned resvd :31 = 0
        ffffff04ef7d16ff.7 unsigned mask :1 = 0
    }
These results are what I expected.
-- 
This message posted from opensolaris.org
_______________________________________________
perf-discuss mailing list
perf-discuss@opensolaris.org

Reply via email to