On Monday, March 4, 2019 at 3:42:47 AM UTC-7, J. Kiszka wrote: > On 03.03.19 08:42, [email protected] wrote: > > Thank you for the responses. I tried your suggestions, but I haven't got it > > working yet. > > > > The issue is that I'm still getting errors trying to mmap /dev/uio0 at > > offset 0. No matter what I do (change page size, etc.), I keep getting a > > "No such device" error. See > > https://groups.google.com/d/msg/jailhouse-dev/fFDwXrzrBy0/jxe-0iRiEAAJ. > > This needs to be be resolved first. Likely, the uio driver in the guest is > not > bound to the ivshmem device. Check "lspci -k". > > > > > Is it possible that the register space address space is configured wrongly > > in Jailhouse? Do I need to adjust the BAR masks or something? Is there a > > good place in Jailhouse to insert a print statement? I have no idea how to > > debug this. > > > > I tried mmapping /sys/class/uio/uio0/device/resource0 instead, and it > > mmapped successfully, but it doesn't seem to be the register address space. > > Or if it is, I'm not writing to it correctly. > > If not driver is bound, the device is disabled /wrt MMIO in the PCI control > register. > > Jan
`lspci -k` shows uio_ivshmem listed under both "kernel driver in use" and "kernel modules." So I think it's bound. Plus, I'm able to access the shared memory region from both root cell and inmate. It's just the first memory region from /dev/uio0 (device registers) that I can't mmap(). Is there anything else I can look at? Or any part in the code I could insert a print statement that could help me debug this? Thanks, Michael > > > > > Other than this, it's mostly working. I could probably have the inmate poll > > on the shared memory as a work-around, but that isn't ideal. > > > > Thanks for all the help, > > Michael > > > > P.S. I'm running this in QEMU x86. Here's my setup: > > > > uio kernel module (nearly identical to ivshmem-guest-code): > > https://github.com/hintron/jailhouse/blob/mgh/mgh/uio-kernel-module/uio_ivshmem.c > > > > uio userspace programs (derived from ivshmem-guest-code uio_send.c and > > shmem_test.py): > > https://github.com/hintron/jailhouse/blob/mgh/mgh/uio-userspace/uio-userspace.c > > https://github.com/hintron/jailhouse/blob/mgh/mgh/uio-userspace/shmem_mgh.py > > > > inmate program and config (nearly identical to ivshmem-demo.c): > > https://github.com/hintron/jailhouse/blob/mgh/inmates/demos/x86/mgh-demo.c > > https://github.com/hintron/jailhouse/blob/mgh/configs/x86/mgh-demo.c > > > > root cell (nearly identical to qemu-x86.c): > > https://github.com/hintron/jailhouse/blob/mgh/configs/x86/qemu-mgh.c > > > > > > P.P.S. Here's the output when I start up the root cell and inmate > > > > Initializing Jailhouse hypervisor v0.10 (61-g666675b5) on CPU 0 > > Code location: 0xfffffffff0000050 > > Using x2APIC > > Page pool usage after early setup: mem 49/974, remap 0/131072 > > Initializing processors: > > CPU 0... (APIC ID 0) OK > > CPU 1... (APIC ID 1) OK > > CPU 3... (APIC ID 3) OK > > CPU 2... (APIC ID 2) OK > > Initializing unit: VT-d > > DMAR unit @0xfed90000/0x1000 > > Reserving 24 interrupt(s) for device ff00 at index 0 > > Initializing unit: IOAPIC > > Initializing unit: Cache Allocation Technology > > Initializing unit: PCI > > Adding PCI device 00:01.0 to cell "QEMU-MGH-VM" > > Adding PCI device 00:02.0 to cell "QEMU-MGH-VM" > > Reserving 5 interrupt(s) for device 0010 at index 24 > > Adding PCI device 00:1b.0 to cell "QEMU-MGH-VM" > > Reserving 1 interrupt(s) for device 00d8 at index 29 > > Adding PCI device 00:1f.0 to cell "QEMU-MGH-VM" > > Adding PCI device 00:1f.2 to cell "QEMU-MGH-VM" > > Reserving 1 interrupt(s) for device 00fa at index 30 > > Adding PCI device 00:1f.3 to cell "QEMU-MGH-VM" > > Adding PCI device 00:1f.7 to cell "QEMU-MGH-VM" > > Reserving 2 interrupt(s) for device 00ff at index 31 > > Adding virtual PCI device 00:0e.0 to cell "QEMU-MGH-VM" > > Adding virtual PCI device 00:0f.0 to cell "QEMU-MGH-VM" > > Page pool usage after late setup: mem 273/974, remap 65543/131072 > > Activating hypervisor > > MGH: Got into hypervisor/control.c#cell_create()Adding virtual PCI device > > 00:0f.0 to cell "mgh-demo" > > Shared memory connection established: "mgh-demo" <--> "QEMU-MGH-VM" > > Created cell "mgh-demo" > > Page pool usage after cell creation: mem 291/974, remap 65543/131072 > > Cell "mgh-demo" can be loaded > > CPU 2 received SIPI, vector 100 > > Started cell "mgh-demo" > > MGH DEMO: Found 1af4:1110 at 00:0f.0 > > MGH DEMO: shmem is at 0x000000003f1ff000 > > MGH DEMO: bar0 is at 0x000000003f200000 > > MGH DEMO: bar2 is at 0x000000003f201000 > > MGH DEMO: mapped the bars got position 1 > > MGH DEMO: 00:0f.0 sending IRQ; Shared: Hello From MGH ! > > > > > -- > 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.
