On 2011-05-18 18:21, Avi Kivity wrote:
> On 05/18/2011 06:26 PM, Avi Kivity wrote:
>>> This is about registration. Right now you can only register IO
>>> intercepts in the chipset, not on a per-CPU basis. We could just as
>>> easily have:
>>>
>>> CPUState {
>>> MemoryRegion apic_region;
>>> };
>>>
>>> per_cpu_register_memory(env,&env->apic_region);
>>>
>>
>>
>> Right. Or all memory per-cpu, with two sub-regions:
>>
>> - global memory
>> - overlaid apic memory
>>
>> for this, we need to have well defined semantics for overlap (perhaps
>> a priority argument to memory_region_add_subregion).
>
> Or even
>
> cpu_memory_region
> |
> +-- global memory map (prio 0)
> | |
> | +-- RAM (prio 0)
> | |
> | +-- PCI (prio 1)
It depends on the chipset and its configuration (via PAM e.g.) in what
region which takes precedence. Fixed prios do not help here.