On 05.10.18 14:38, [email protected] wrote:
Hi,

When running jailhouse on an Intel Xeon D-1527 I have a problem getting the 
ivshmem demo to work.

After some investigation it seems that no iommu callbacks are generated for the 
memory region in which the ivshmem pci device is located. For some strange 
reason the ivshmem device is loaded in very high memory:
/proc/iomem:
380000000000-383fffffffff : PCI Bus 0000:00
   380000000000-3800000000ff : 0000:00:1f.3
   380000000100-3800000001ff : 0000:00:0f.0
     380000000100-3800000001ff : ivshmem
   380000000200-38000000021f : 0000:00:0f.0
     380000000200-38000000021f : ivshmem

The address range is not unusual. It's a PCI MMIO region the hardware is using. Linux allocates from that region when the virtual device appears.

However, as it decides to use a sub-page range, you must ensure that this range is no directly assigned to the guest - which is the case so far. Split up the existing mapping of that region, leaving the ivshmem MMIO range unassigned (the hypervisor will handle that). You can also change the size of the ivshmem region 0 to a full 4k page in the bar mask. That will avoid a sub-page mappings and the need for Jailhouse to intercept also the MMIO access of device 1f.3 (if that is performance sensitive).

Jan

--
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux

--
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to