Help needed regarding AGL with Jailhouse

155 views
Skip to first unread message

Anmol karn

unread,
Jun 25, 2021, 10:38:05 AM6/25/21
to Jailhouse
Hi,

I am currently working on a GSoC'21 project "VirtIO-blk implementation with AGL on Jailhouse".

I am new to the Jailhouse and trying to get jailhouse(v0.12) work with QEmu(x86-64) with a custom agl-image.

I have been using a 5.4 kernel(jailhouse-enabling/5.4).

We are getting Kernel panics and unknown failures with `jailhouse-enabling/5.4`, so we decided to shift to `queues/jailhouse` (452bfd9102265f67afd5818024ca2664aa3afa60), and then we somehow managed to QEmulate it without kernel panics, but now it's showing some unknown behaviors, and also not booting properly:

Log:
[    0.007617] [Firmware Bug]: TSC_DEADLINE disabled due to Errata; please update microcode to version: 0xb2 (or later)
[    0.525808] kvm: already loaded the other module
[    0.567138] hdaudio hdaudioC0D0: Unable to bind the codec

Automotive Grade Linux 11.91.0 qemux86-64 ttyS0

qemux86-64 login: [   27.731494] virtio_gpu virtio0: [drm] *ERROR* fbdev: Failed to setup generic emulation (ret=-22)
[   27.841660] Out of memory: Killed process 161 (systemd-udevd) total-vm:12276kB, anon-rss:556kB, file-rss:0kB, shmem-rss:0kB, UID:0 pgtables:64kB oom_score_adj:0

qemux86-64 login: 
qemux86-64 login: 
qemux86-64 login: root

^C^C^C^C^C

[  236.927354] Out of memory: Killed process 167 ((agetty)) total-vm:8260kB, anon-rss:1488kB, file-rss:0kB, shmem-rss:0kB, UID:0 pgtables:48kB oom_score_adj:0
[  437.781132] Out of memory: Killed process 166 (systemd-udevd) total-vm:13548kB, anon-rss:1500kB, file-rss:0kB, shmem-rss:0kB, UID:0 pgtables:64kB oom_score_adj:0
[  457.378023] Out of memory: Killed process 170 ((agetty)) total-vm:8260kB, anon-rss:1488kB, file-rss:0kB, shmem-rss:0kB, UID:0 pgtables:48kB oom_score_adj:0
[  516.062574] Out of memory: Killed process 171 ((agetty)) total-vm:8260kB, anon-rss:1488kB, file-rss:0kB, shmem-rss:0kB, UID:0 pgtables:48kB oom_score_adj:0
QEMU 4.2.0 monitor - type 'help' for more information
(qemu) q


Questions: 
- Is there any solution for the 5.4.x(jailhouse-enabling/5.4) kernel with some patchset.
- Any hints to get it working properly with the "queues/jailhouse" branch.

It would be great if I can get any hints about this problem.

Thanks and Regards,
Anmol

Jan Kiszka

unread,
Jul 21, 2021, 11:24:25 AM7/21/21
to Anmol karn, Jailhouse
Hi Anmol,

sorry for the very late reply.
I would recommend to switch to 5.10 or queues/jailhouse as I'm no longer
updating 5.4 with potential fixes.

> - Any hints to get it working properly with the "queues/jailhouse" branch.

Is that failing cell your non-root Linux cell? I suppose it ran out of
RAM. How much did you assign to it?

Jan

--
Siemens AG, T RDA IOT
Corporate Competence Center Embedded Linux

Anmol

unread,
Jul 29, 2021, 10:12:58 AM7/29/21
to Jailhouse
Hello Sir,

Thank you for your response.

> I would recommend to switch to 5.10 or queues/jailhouse as I'm no longer

> updating 5.4 with potential fixes.

>

It’s now working perfectly with the `queues/jailhouse` kernel. 


> > - Any hints to get it working properly with the "queues/jailhouse" branch.

>

> Is that failing cell your non-root Linux cell? I suppose it ran out of

> RAM. How much did you assign to it?

>


No, I was asking for the root cell.

Also, we now have the working Jailhouse setup and `root cell`, the problem we are now facing is related to `non-root linux` cell, we have used the `bzImage` and `rootfs.cpio`from `jailhouse-images` for booting the `non-root-linux-cell`, and used the address for `low RAM` and `high RAM` w.r.t to the address spit out by the `jailhouse config create <cell_config_name>` for the root cell.

Error Log:

$ nc localhost <port>

Initializing Jailhouse hypervisor v0.12 (273-g6d9c51d0-dirty) on CPU 3

Code location: 0xfffffffff0000050

Using xAPIC

Page pool usage after early setup: mem 49/975, remap 1/131072

Initializing processors:

 CPU 3... (APIC ID 3) OK

 CPU 1... (APIC ID 1) OK

 CPU 2... (APIC ID 2) OK

 CPU 0... (APIC ID 0) OK

Initializing unit: VT-d

DMAR unit @0xfed90000/0x1000

Reserving 24 interrupt(s) for device ff:00.0 at index 0

Initializing unit: IOAPIC

Initializing unit: Cache Allocation Technology

Initializing unit: PCI

Adding PCI device 00:00.0 to cell "RootCell"

Adding PCI device 00:01.0 to cell "RootCell"

Reserving 3 interrupt(s) for device 00:01.0 at index 24

Adding PCI device 00:02.0 to cell "RootCell"

Reserving 3 interrupt(s) for device 00:02.0 at index 27

Adding PCI device 00:03.0 to cell "RootCell"

Adding PCI device 00:04.0 to cell "RootCell"

Reserving 2 interrupt(s) for device 00:04.0 at index 30

Adding PCI device 00:1b.0 to cell "RootCell"

Reserving 1 interrupt(s) for device 00:1b.0 at index 32

Adding PCI device 00:1d.0 to cell "RootCell"

Adding PCI device 00:1d.1 to cell "RootCell"

Adding PCI device 00:1d.2 to cell "RootCell"

Adding PCI device 00:1d.7 to cell "RootCell"

Adding PCI device 00:1f.0 to cell "RootCell"

Adding PCI device 00:1f.2 to cell "RootCell"

Reserving 1 interrupt(s) for device 00:1f.2 at index 33

Adding PCI device 00:1f.3 to cell "RootCell"

Page pool usage after late setup: mem 268/975, remap 65545/131072

Activating hypervisor

Adding virtual PCI device 00:0c.0 to cell "linux-x86-demo"

Adding virtual PCI device 00:0d.0 to cell "linux-x86-demo"

Adding virtual PCI device 00:0e.0 to cell "linux-x86-demo"

CPU 2 received SIPI, vector 9a

CPU 3 received SIPI, vector 9a

^C


I have attached the root cell and non-root cell configurations, please find attached.

I also saw some patches related to `jailhouse debug console` in the recent update(5.14-rc2), could it be helpful in resolving this issue?


Thanks and Regards,

Anmol


agl-linux-non-root-cell.c
agl-qemu-root-cell.c

Anmol

unread,
Aug 11, 2021, 2:36:10 PM8/11/21
to Jailhouse

Hello,

Non-Root Linux inmate is working now and also boot logs are showing in the serial console.

Now I am trying to follow the Virtio over IVSHMEM block and want to get it running, some references I took are [1], [2], [3].


I am using the `queues/jailhouse` kernel for Root cell, and same for Non-root cell(with .config from `jailhouse-images`).

I did some changes in the Root cell and added the required memory regions and also added the PCI devices, memory address matching with the non-root cell.

I have also enabled the `UIO_IVSHMEM` in the kernel and can see that `/sys/bus/pci/drivers/uio_ivshmem/new_id` is present.

Also `virtio_ivshmem` is present in Non-root cell's kernel.


My Questions are:

- After running the `$ echo "110a 4106 110a 4106 ffc002 ffffff" > /sys/bus/pci/drivers/uio_ivshmem/new_id`, It's not showing any responses. Is it expected?

- In this command `$ virtio-ivshmem-block /dev/uio0 /path/to/disk.image`, I am not able to load the `virtio-ivshmem-block` module, and is the `disc.image` a standard `LinuxInstallation.img`?

- For `virtio-ivshmem-block`, do I need to compile the `virtio-ivshmem-block.c` externally and copy the module to the QEmulated Image?

- Can we also use the `queues/jailhouse` kernel for this setup instead of `queues/ivshmem2`?


Please tell me if I am missing any Important steps.


I am also attaching the Root cell and Non Root cell config files.


Thanks and Regards,

Anmol


[1] https://github.com/siemens/jailhouse/blob/master/Documentation/inter-cell-communication.md

[2] https://groups.google.com/g/jailhouse-dev/c/3xvC22mud-E/m/AFF665uxBAAJ

[3] https://groups.google.com/g/jailhouse-dev/c/vYWIKp-Fw8w/m/1Nx59bsQHwAJ

agl-qemu-root-cell.c
agl-linux-non-root-cell.c

Jan Kiszka

unread,
Aug 14, 2021, 10:50:43 AM8/14/21
to Anmol, Jailhouse
On 11.08.21 20:36, Anmol wrote:
> Hello,
>
> Non-Root Linux inmate is working now and also boot logs are showing in
> the serial console.
>
> Now I am trying to follow the Virtio over IVSHMEM block and want to get
> it running, some references I took are [1], [2], [3].
>
>
> I am using the `queues/jailhouse` kernel for Root cell, and same for
> Non-root cell(with .config from `jailhouse-images`).
>
> I did some changes in the Root cell and added the required memory
> regions and also added the PCI devices, memory address matching with the
> non-root cell.
>
> I have also enabled the `UIO_IVSHMEM` in the kernel and can see that
> `/sys/bus/pci/drivers/uio_ivshmem/new_id` is present.
>
> Also `virtio_ivshmem` is present in Non-root cell's kernel.
>
>
> My Questions are:
>
> - After running the `$ echo "110a 4106 110a 4106 ffc002 ffffff" >
> /sys/bus/pci/drivers/uio_ivshmem/new_id`, It's not showing any
> responses. Is it expected?

The echo should not show any response, but when you do an lspci -k, you
should see that the targeting devices are now driven by uio_ivshmem. If
not, the IDs might not be correct yet, or the devices are missing.

Also check the kernel console of the cell where you issued this echo.

>
> - In this command `$ virtio-ivshmem-block /dev/uio0
> /path/to/disk.image`, I am not able to load the `virtio-ivshmem-block`
> module, and is the `disc.image` a standard `LinuxInstallation.img`?
>

What do you mean with "load the `virtio-ivshmem-block` module"? The tool
is no module, it's a plain Linux application you just need to start.
When you do that, what errors do you get?

The disk image needs to be raw image. But its size matters as that
defines the virtual disk size, but you may even leave it empty and only
partition or format it from the front-end guest.

> - For `virtio-ivshmem-block`, do I need to compile the
> `virtio-ivshmem-block.c` externally and copy the module to the QEmulated
> Image?

You need to have that application inside the guest that is suppose to
act as back-end, yes. How you make it available to that guest is up to you.

>
> - Can we also use the `queues/jailhouse` kernel for this setup instead
> of `queues/ivshmem2`?
>

Yes, queues/jailhouse contains all what is in queues/ivshmem2, and more.

Jan

Anmol

unread,
Aug 19, 2021, 9:42:49 AM8/19/21
to Jan Kiszka, Jailhouse
Hello,

On Sat, Aug 14, 2021 at 8:20 PM Jan Kiszka <jan.k...@web.de> wrote:
>
> On 11.08.21 20:36, Anmol wrote:
>
> The echo should not show any response, but when you do an lspci -k, you
> should see that the targeting devices are now driven by uio_ivshmem. If
> not, the IDs might not be correct yet, or the devices are missing.
>
> Also check the kernel console of the cell where you issued this echo.
>

I have added the PCI devices to both the cells and set the
`.shmem_dev_id` accordingly, please have a look at the cell config.
files I have sent.

here's the `lspci -k` output:
qemux86-64:~# lspci -k
00:00.0 Host bridge: Intel Corporation 82G33/G31/P35/P31 Express DRAM Controller
Subsystem: Red Hat, Inc. QEMU Virtual Machine
00:01.0 VGA compatible controller: Red Hat, Inc. Virtio GPU (rev 01)
Subsystem: Red Hat, Inc. Virtio GPU
Kernel driver in use: virtio-pci
00:02.0 Ethernet controller: Red Hat, Inc. Virtio network device
Subsystem: Red Hat, Inc. Virtio network device
Kernel driver in use: virtio-pci
00:03.0 Unclassified device [00ff]: Red Hat, Inc. Virtio RNG
Subsystem: Red Hat, Inc. Virtio RNG
Kernel driver in use: virtio-pci
00:04.0 SCSI storage controller: Red Hat, Inc. Virtio block device
Subsystem: Red Hat, Inc. Virtio block device
Kernel driver in use: virtio-pci
00:1b.0 Audio device: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6
Family) High Definition Audio Controller (rev 01)
Subsystem: Red Hat, Inc. QEMU Virtual Machine
Kernel driver in use: snd_hda_intel
00:1d.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB
UHCI Controller #1 (rev 03)
Subsystem: Red Hat, Inc. QEMU Virtual Machine
Kernel driver in use: uhci_hcd
00:1d.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB
UHCI Controller #2 (rev 03)
Subsystem: Red Hat, Inc. QEMU Virtual Machine
Kernel driver in use: uhci_hcd
00:1d.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB
UHCI Controller #3 (rev 03)
Subsystem: Red Hat, Inc. QEMU Virtual Machine
Kernel driver in use: uhci_hcd
00:1d.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2
EHCI Controller #1 (rev 03)
Subsystem: Red Hat, Inc. QEMU Virtual Machine
Kernel driver in use: ehci-pci
00:1f.0 ISA bridge: Intel Corporation 82801IB (ICH9) LPC Interface
Controller (rev 02)
Subsystem: Red Hat, Inc. QEMU Virtual Machine
00:1f.2 SATA controller: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH)
6 port SATA Controller [AHCI mode] (rev 02)
Subsystem: Red Hat, Inc. QEMU Virtual Machine
Kernel driver in use: ahci
00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 02)
Subsystem: Red Hat, Inc. QEMU Virtual Machine
Kernel driver in use: i801_smbus


> >
> > - In this command `$ virtio-ivshmem-block /dev/uio0
> > /path/to/disk.image`, I am not able to load the `virtio-ivshmem-block`
> > module, and is the `disc.image` a standard `LinuxInstallation.img`?
> >
>
> What do you mean with "load the `virtio-ivshmem-block` module"? The tool
> is no module, it's a plain Linux application you just need to start.
> When you do that, what errors do you get?
>

Yes, `virtio-ivshmem-block` can be built in the `tools/virtio`, but
when I am trying this in root cell, it's giving me the below error.

qemux86-64:~# ./virtio-ivshmem-block /dev/uio0 disk.img
-sh: ./virtio-ivshmem-block: No such file or directory

Also, I am not able to see the `/dev/uio0` in the root-cell.

> The disk image needs to be raw image. But its size matters as that
> defines the virtual disk size, but you may even leave it empty and only
> partition or format it from the front-end guest.
>

I am creating disk.image as follows:

$ dd if=/dev/zero of=disk.img bs=1M count=1024
$ mkfs.ext4 disk.img


> > - For `virtio-ivshmem-block`, do I need to compile the
> > `virtio-ivshmem-block.c` externally and copy the module to the QEmulated
> > Image?
>
> You need to have that application inside the guest that is suppose to
> act as back-end, yes. How you make it available to that guest is up to you.
>

I am trying to achieve Root Cell(backend) <--->
Non-Root-Cell(frontend) communication, instead of the VM1(backend)
<---> VM2(frontend).
Also, for the IVSHMEM2 I need to patch my current QEmu, right? so that
I can insert ivshmem `-chardev` and `-device` into my `qemuboot.conf`,
and run the `./ivshmem2-server`?


Also, Please let me know, should the exact procedure be this:

- In the server/local-machine run `./ivshmem2-server`.
- then add `... -chardev socket,path=/tmp/ivshmem_socket,id=ivshmem
-device ivshmem,chardev=ivshmem` to the `qemuboot.conf`.
- then QEmulate/boot the Image with Jailhouse.
- enable root cell.
- `echo "110a 4106 110a 4106 ffc002 ffffff" >
/sys/bus/pci/drivers/uio_ivshmem/new_id`
- `virtio-ivshmem-block /dev/uio0 disk.img`
- boot the linux-non-root cell.


Thanks and Regards,
Anmol

Jan Kiszka

unread,
Aug 19, 2021, 9:52:55 AM8/19/21
to Anmol, Jailhouse
Is this taken while Jailhouse was enabled? It's missing your ivshmem
devices (00:0c.0 - 00:0f.0).

>
>>>
>>> - In this command `$ virtio-ivshmem-block /dev/uio0
>>> /path/to/disk.image`, I am not able to load the `virtio-ivshmem-block`
>>> module, and is the `disc.image` a standard `LinuxInstallation.img`?
>>>
>>
>> What do you mean with "load the `virtio-ivshmem-block` module"? The tool
>> is no module, it's a plain Linux application you just need to start.
>> When you do that, what errors do you get?
>>
>
> Yes, `virtio-ivshmem-block` can be built in the `tools/virtio`, but
> when I am trying this in root cell, it's giving me the below error.
>
> qemux86-64:~# ./virtio-ivshmem-block /dev/uio0 disk.img
> -sh: ./virtio-ivshmem-block: No such file or directory
>

Seems the build generated a non-working executable. How exactly did you
build it? What does "file virtio-ivshmem-block" tell you?

$ file tools/virtio/virtio-ivshmem-block
tools/virtio/virtio-ivshmem-block: ELF 64-bit LSB executable, x86-64,
version 1 (SYSV), dynamically linked, interpreter
/lib64/ld-linux-x86-64.so.2,
BuildID[sha1]=834ea23dab86f332e8eeae98b3493fe9612dbb7c, for GNU/Linux
3.2.0, with debug_info, not stripped

> Also, I am not able to see the `/dev/uio0` in the root-cell.
>

See above: no such PCI devices.

>> The disk image needs to be raw image. But its size matters as that
>> defines the virtual disk size, but you may even leave it empty and only
>> partition or format it from the front-end guest.
>>
>
> I am creating disk.image as follows:
>
> $ dd if=/dev/zero of=disk.img bs=1M count=1024
> $ mkfs.ext4 disk.img
>

Thanks fine.

>
>>> - For `virtio-ivshmem-block`, do I need to compile the
>>> `virtio-ivshmem-block.c` externally and copy the module to the QEmulated
>>> Image?
>>
>> You need to have that application inside the guest that is suppose to
>> act as back-end, yes. How you make it available to that guest is up to you.
>>
>
> I am trying to achieve Root Cell(backend) <--->
> Non-Root-Cell(frontend) communication, instead of the VM1(backend)
> <---> VM2(frontend).
> Also, for the IVSHMEM2 I need to patch my current QEmu, right? so that
> I can insert ivshmem `-chardev` and `-device` into my `qemuboot.conf`,
> and run the `./ivshmem2-server`?
>

Don't confuse ivshmem (whatever version) provided by QEMU with the one
provided by Jailhouse. You may run Jailhouse in QEMU, but even then it
will still be Jailhouse to provide ivshmem2 devices to the root and
non-root cell. Therefore, QEMU does not require any patches or specific
configuration.

Jan

Anmol

unread,
Aug 20, 2021, 8:02:57 AM8/20/21
to Jan Kiszka, Jailhouse
Hello,
I did some changes to the root-cell config files, and now it’s showing
the PCI device 00:0c.0 (I have added defined macro for VIRTIO_BLK
only):

qemux86-64:~# lspci -k
.
.
.
00:0c.0 Unassigned class [ff80]: Siemens AG Device 4106
Subsystem: Siemens AG Device 4106
.
.
.

But it’s not showing any association with the `uio_ivshmem`, and also
I am still not able to find the `/dev/uio0`.

I am attaching my config files, please tell me what I am missing.

> >
> >>>
> >>> - In this command `$ virtio-ivshmem-block /dev/uio0
> >>> /path/to/disk.image`, I am not able to load the `virtio-ivshmem-block`
> >>> module, and is the `disc.image` a standard `LinuxInstallation.img`?
> >>>
> >>
> >> What do you mean with "load the `virtio-ivshmem-block` module"? The tool
> >> is no module, it's a plain Linux application you just need to start.
> >> When you do that, what errors do you get?
> >>
> >
> > Yes, `virtio-ivshmem-block` can be built in the `tools/virtio`, but
> > when I am trying this in root cell, it's giving me the below error.
> >
> > qemux86-64:~# ./virtio-ivshmem-block /dev/uio0 disk.img
> > -sh: ./virtio-ivshmem-block: No such file or directory
> >
>
> Seems the build generated a non-working executable. How exactly did you
> build it? What does "file virtio-ivshmem-block" tell you?
>
> $ file tools/virtio/virtio-ivshmem-block
> tools/virtio/virtio-ivshmem-block: ELF 64-bit LSB executable, x86-64,
> version 1 (SYSV), dynamically linked, interpreter
> /lib64/ld-linux-x86-64.so.2,
> BuildID[sha1]=834ea23dab86f332e8eeae98b3493fe9612dbb7c, for GNU/Linux
> 3.2.0, with debug_info, not stripped
>


I have tried again building it and this time with the yocto, now it’s
showing this:

qemux86-64:~# ./virtio-ivshmem-block /dev/uio0 disk.img
./virtio-ivshmem-block: cannot open /dev/uio0: No such file or directory

Also, o/p of the `file virtio-ivshmem-block`

qemux86-64:~# file virtio-ivshmem-block
virtio-ivshmem-block: ELF 64-bit LSB shared object, x86-64, version 1
(SYSV), dynamically linked, interpreter /lib/ld-linux-x86-64.so.2,
BuildID[sha1]=3434d7bc3510384cf6e0faab08a1cdcfab9d9828, for GNU/Linux
Okay, but I didn’t understand this:

```
To instantiate a ivshmem v2 device, just add

... -chardev socket,path=/tmp/ivshmem_socket,id=ivshmem \
-device ivshmem,chardev=ivshmem
```
And from where I should get the `./ivshmem2-server` binary?



Thanks and Regards,
Anmol
agl-qemu-root-cell.c
agl-linux-non-root-cell.c

Jan Kiszka

unread,
Aug 20, 2021, 8:23:12 AM8/20/21
to Anmol, Jailhouse
And now

echo "110a 4106 110a 4106 ffc002 ffffff" > /sys/bus/pci/drivers/uio_ivshmem/new_id

again.

Jan

Anmol

unread,
Aug 20, 2021, 8:46:25 AM8/20/21
to Jan Kiszka, Jailhouse
Here's the full log:

qemux86-64:~# jailhouse enable /usr/share/jailhouse/cells/qemu-agl.cell
qemux86-64:~# modprobe uio_ivshmem
qemux86-64:~# lsmod
Module Size Used by
virtio_gpu 65536 0
virtio_dma_buf 16384 1 virtio_gpu
virtio_net 53248 0
net_failover 16384 1 virtio_net
failover 16384 1 net_failover
jailhouse 36864 1
qemux86-64:~# echo "110a 4106 110a 4106 ffc002 ffffff" >
/sys/bus/pci/drivers/uio_ivshmem/new_id
qemux86-64:~# lspci -k
.
.
.
00:0c.0 Unassigned class [ff80]: Siemens AG Device 4106
Subsystem: Siemens AG Device 4106
.
.
.
qemux86-64:~# ./virtio-ivshmem-block /dev/uio0 disk.img
./virtio-ivshmem-block: cannot open /dev/uio0: No such file or directory
qemux86-64:~# find /dev/ -name "uio*"



And Console Logs:

$ nc localhost 4321
��������
Initializing Jailhouse hypervisor v0.12 (279-g63000120) on CPU 2
Code location: 0xfffffffff0000050
Using xAPIC
Page pool usage after early setup: mem 49/975, remap 1/131072
Initializing processors:
CPU 2... (APIC ID 2) OK
CPU 0... (APIC ID 0) OK
CPU 3... (APIC ID 3) OK
CPU 1... (APIC ID 1) OK
Initializing unit: VT-d
DMAR unit @0xfed90000/0x1000
Reserving 24 interrupt(s) for device ff:00.0 at index 0
Initializing unit: IOAPIC
Initializing unit: Cache Allocation Technology
Initializing unit: PCI
Adding PCI device 00:00.0 to cell "AGL-Jailhouse-RootCell"
Adding PCI device 00:01.0 to cell "AGL-Jailhouse-RootCell"
Reserving 3 interrupt(s) for device 00:01.0 at index 24
Adding PCI device 00:02.0 to cell "AGL-Jailhouse-RootCell"
Reserving 3 interrupt(s) for device 00:02.0 at index 27
Adding PCI device 00:03.0 to cell "AGL-Jailhouse-RootCell"
Adding PCI device 00:04.0 to cell "AGL-Jailhouse-RootCell"
Reserving 2 interrupt(s) for device 00:04.0 at index 30
Adding PCI device 00:1b.0 to cell "AGL-Jailhouse-RootCell"
Reserving 1 interrupt(s) for device 00:1b.0 at index 32
Adding PCI device 00:1d.0 to cell "AGL-Jailhouse-RootCell"
Adding PCI device 00:1d.1 to cell "AGL-Jailhouse-RootCell"
Adding PCI device 00:1d.2 to cell "AGL-Jailhouse-RootCell"
Adding PCI device 00:1d.7 to cell "AGL-Jailhouse-RootCell"
Adding PCI device 00:1f.0 to cell "AGL-Jailhouse-RootCell"
Adding PCI device 00:1f.2 to cell "AGL-Jailhouse-RootCell"
Reserving 1 interrupt(s) for device 00:1f.2 at index 33
Adding PCI device 00:1f.3 to cell "AGL-Jailhouse-RootCell"
Adding virtual PCI device 00:0c.0 to cell "AGL-Jailhouse-RootCell"
Page pool usage after late setup: mem 205/975, remap 65545/131072
Activating hypervisor


Also I can not see `uio_ivshmem` in the `lsmod`.

Jan Kiszka

unread,
Aug 20, 2021, 9:19:54 AM8/20/21
to Anmol, Jailhouse
ffc0... -> back-end device

> qemux86-64:~# lspci -k
> .
> .
> .
> 00:0c.0 Unassigned class [ff80]: Siemens AG Device 4106

ff80 -> you have a front-end device here

You are either running that in the non-root cell or you misconfigured
the root cell (JAILHOUSE_SHMEM_PROTO_VIRTIO_BACK is needed).

Jan

Anmol

unread,
Aug 20, 2021, 9:53:11 AM8/20/21
to Jan Kiszka, Jailhouse
It's working :)

qemux86-64:~# ./virtio-ivshmem-block /dev/uio0 disk.img
Waiting for peer to be ready...

Thanks and Regards,
Anmol

Changming Huang

unread,
Oct 26, 2021, 6:49:38 AM10/26/21
to Jailhouse
hi, anmol,
could you please share your ideal to fix the issue "cannot open /dev/uio0: No such file or directory"
I have the same issue now.

Anmol

unread,
Nov 1, 2021, 5:08:17 AM11/1/21
to Jailhouse
Hi,

You have to recheck if you have correctly added the PCI devices in your `config.` files, and check using:

```
qemux86-64:~# lspci -k
.
.
.
00:0c.0 Unassigned class [ff80]: Siemens AG Device 4106
Subsystem: Siemens AG Device 4106
.
```

Also, one important note below:

> ffc0... -> back-end device
>
> > qemux86-64:~# lspci -k
> > .
> > .
> > .
> > 00:0c.0 Unassigned class [ff80]: Siemens AG Device 4106
>
> ff80 -> you have a front-end device here


---
Anmol
Reply all
Reply to author
Forward
0 new messages