On 2013-05-27 10:19, Paolo Bonzini wrote: > Il 27/05/2013 09:23, Jan Kiszka ha scritto: >> On 2013-05-27 09:20, Paolo Bonzini wrote: >>> Il 26/05/2013 11:02, Jan Kiszka ha scritto: >>>>>> >>>>>> Nice patches. Only one thing, how is .impl.unaligned different >>>>>> from the existing .valid.unaligned? >>>> See memory.h: valid controls is an unaligned access traps or gets >>>> processed, impl manages if it is passed as-is to the device or >>>> broken up and aligned first. >>> >>> I took the following patches: >>> >>> exec: Allow unaligned address_space_rw >>> exec: Resolve subpages in one step except for IOTLB fills >>> exec: Implement subpage_read/write via address_space_rw >>> >>> to limit the conflicts and because I realized that TCG should never >>> encounter an IOMMU. >> >> Err, why? Will we emulate IOMMUs for TCG differently? > > Because IOMMUs should never be added to address_space_memory. > > TCG should only encounter an IOMMU during device emulation (DMA), not > because of reads/writes from the CPU. So the IOTLBs should never point > to an IOMMU region.
OK. That's true for the current QEMU architecture, but may no longer be like this if we once emulate device controllers via TCG (in hybrid system setups). Anyway, I guess it's fine to optimize this for now. Jan -- Siemens AG, Corporate Technology, CT RTC ITP SDP-DE Corporate Competence Center Embedded Linux