Hi,
Thank you for your answer. I found what was the problem in my tests and
I could have ivshmem-net working fine. The address programmed in the
BAR was not being trapped by jailhouse because of one problem in the
generated configuration file for the root cell.
The jailhouse-config-create script always assume that memregions are
aligned in one page, so it rounds up the memregion size to 0x1000. The
problem I am facing is that I have one PCI device that was being mapped
in a region with size 0x800 and the ivshmem pci device was mapped to
use a memory just after the end of this device. So jailhouse was
assuming that the memory region used by ivshmem was being used by a
physical pci device and it was not handling the IO. If I change the
root cell config file to use the correct size for the physical PCI
device, everything works perfectly.
I took a look at the kernel code and it is not necessarily aligning the
PCI resource memory from 2 different devices that are in the same bus
in different pages. So rounding the memregion size in config-create
doesn't look correct to me. But I imagine that not having this would
cause performance issues.
Isn't this a possible problem for other PCI devices that have small
resources that are not aligned in a page? Do you have any suggestion on
how to fix this? I couldn't find a way to force the ivshmem pci device
to have its resources to be page aligned, but if there is a way, it is
a possible solution.
Thanks,
Otavio