On Mon, Nov 9, 2009 at 2:37 PM, Avi Kivity <a...@redhat.com> wrote:
> On 11/09/2009 11:08 AM, Gerd Hoffmann wrote:
>>
>>> You are also moving the compilation to Makefile.hw, which is not
>>> exactly an improvement. Is this needed because of the QEMUIOVector
>>> stuff?
>>
>> Almost correct ;)
>>
>> It is because of QEMUSGList which drags in a target_phys_addr_t
>> dependency.
>
> As Michael notes, devices have physical address sizes independent of the
> target platform; a PCI device that supports 64-bit addresses can be plugged
> into a motherboard that supports 32-bit address bus processors.

True. But I think the solution is not to make all buses maximum width,
but support multiple buses with width translation in between.

> We can fix this in several ways:
> - creating QEMUSG64List and QEMUSG32List (and typedefing PCISGList to the
> former)
> - making QEMUSGList always use 64-bit addresses since it will almost always
> be used with devices (which are often 64-bit capable)
> - making target_phys_addr_t always 64-bit (which loses some performance with
> 32-on-32 emulation)
> - others?

We could improve the compilation system so that on 64 bit hosts the
benefit of single size target_phys_addr_t results in compiling the
files only once.


Reply via email to