qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [RFC v1] Add declarations for hierarchical memory regio


From: Avi Kivity
Subject: Re: [Qemu-devel] [RFC v1] Add declarations for hierarchical memory region API
Date: Sun, 22 May 2011 09:40:57 +0300
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110428 Fedora/3.1.10-1.fc14 Thunderbird/3.1.10

On 05/20/2011 09:16 PM, Blue Swirl wrote:
On Fri, May 20, 2011 at 5:46 PM, Anthony Liguori<address@hidden>  wrote:
>  On 05/20/2011 09:40 AM, Richard Henderson wrote:
>>
>>  On 05/20/2011 07:31 AM, Anthony Liguori wrote:
>>>
>>>  But is this a characteristic of devices or is this a characteristic of
>>>  the chipset/CPU?
>>
>>  Chipset.
>
>  So if the chipset only allows accesses that are 64-bit, then you'll want to
>  have hierarchical dispatch filter non 64-bit accesses and raise an MCE
>  appropriately.
>
>  So you don't need anything in MemoryRegion, you need code in the dispatch
>  path.

Sparc (32/64) systems are also very picky about wrong sized accesses.
I think the buses have lines for access size and the device can (and
they will) signal an error in these cases. Then the bus controller
will raise an NMI.

I think the easiest way to handle this could be to use overlapping
registrations for specific sizes. Then we could make a default error
generator device, which would just signal NMI/MCE on any access. It
would register for all of the picky area with lowest possible
priority. Other devices would register the small working access areas
with no knowledge about this error generator device. Any correct
access should go to other devices, bad accesses to the error
generator.

Though this would not be very different from current unassigned access handling.

The MemoryRegion way of doing it would be to register the MemoryRegion of the bus with the picky attributes. Any sub-regions will inherit the property.


--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.




reply via email to

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