qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC] Memory API


From: Jan Kiszka
Subject: Re: [Qemu-devel] [RFC] Memory API
Date: Wed, 18 May 2011 19:38:25 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666

On 2011-05-18 19:11, Anthony Liguori wrote:
> On 05/18/2011 11:49 AM, Avi Kivity wrote:
>> On 05/18/2011 07:42 PM, Jan Kiszka wrote:
>>> 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.
> 
> It's really layering.
> 
> To implement PAM in a robust way, you need a certain set of memory 
> accesses to first flow through the chipset before going to the next 
> location with the ability to intercept.
> 
> We do something rather weird today by changing registrations first 
> saving the current registrations.  It would be much more elegant to just 
> intercept the I/O requests and redirect accordingly.

That's what I implemented already, though using the current API with
some tweaks (filtering PhysMemClient) and then facing massive slot
fragmentation problems on KVM side.

Jan

-- 
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux



reply via email to

[Prev in Thread] Current Thread [Next in Thread]