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.

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.

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     ! 

-- 
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