summaryrefslogtreecommitdiffstats
path: root/results/classifier/108/debug/2167
diff options
context:
space:
mode:
authorChristian Krinitsin <mail@krinitsin.com>2025-07-03 19:39:53 +0200
committerChristian Krinitsin <mail@krinitsin.com>2025-07-03 19:39:53 +0200
commitdee4dcba78baf712cab403d47d9db319ab7f95d6 (patch)
tree418478faf06786701a56268672f73d6b0b4eb239 /results/classifier/108/debug/2167
parent4d9e26c0333abd39bdbd039dcdb30ed429c475ba (diff)
downloademulator-bug-study-dee4dcba78baf712cab403d47d9db319ab7f95d6.tar.gz
emulator-bug-study-dee4dcba78baf712cab403d47d9db319ab7f95d6.zip
restructure results
Diffstat (limited to 'results/classifier/108/debug/2167')
-rw-r--r--results/classifier/108/debug/216755
1 files changed, 0 insertions, 55 deletions
diff --git a/results/classifier/108/debug/2167 b/results/classifier/108/debug/2167
deleted file mode 100644
index 46443a36..00000000
--- a/results/classifier/108/debug/2167
+++ /dev/null
@@ -1,55 +0,0 @@
-debug: 0.952
-permissions: 0.951
-performance: 0.924
-graphic: 0.921
-device: 0.919
-other: 0.911
-network: 0.906
-semantic: 0.906
-socket: 0.885
-PID: 0.863
-files: 0.828
-vnc: 0.792
-boot: 0.758
-KVM: 0.700
-
-The GPIO controllers connected to the emulated PCIe bus via vhost-user can't generate interrupts.
-Description of problem:
-The problem is related to emulation of GPIO controllers using the vhost-user protocol for GPIO. The problem was detected when using the [vhost-device-gpio](https://github.com/rust-vmm/vhost-device) software. I have described the whole issue in https://github.com/rust-vmm/vhost-device/issues/613 , but it is QEMU related, and therefore I describe it here as well.
-The broader context is described in https://stackoverflow.com/questions/75906208/how-to-connect-via-virtio-gui-running-on-host-with-gpio-in-a-qemu-emulated-virtu .
-Steps to reproduce:
-1. For Debian/testing you need to compile a libgpiod-2.1.1 (I assume that the following is done in the home directory directory of the `dev` user: `/home/dev`):
-
- ```
- wget https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/snapshot/libgpiod-2.1.tar.gz ; \
- tar -xzf libgpiod-2.1.tar.gz ; \
- cd libgpiod-2.1 ; \
- autoupdate ; \
- ./autogen.sh ; \
- make
- ```
- 2. Download the vhost-device-gpio (`git clone https://github.com/rust-vmm/vhost-device.git`)
- 3. Build the vhost-device-gpio (in the `vhost-device-gpio` subdirectory)
-
- ```
- export PATH_TO_LIBGPIOD=/home/dev/libgpiod-2.1
- export SYSTEM_DEPS_LIBGPIOD_NO_PKG_CONFIG=1
- export SYSTEM_DEPS_LIBGPIOD_SEARCH_NATIVE="${PATH_TO_LIBGPIOD}/lib/.libs/"
- export SYSTEM_DEPS_LIBGPIOD_LIB=gpiod
- export SYSTEM_DEPS_LIBGPIOD_INCLUDE="${PATH_TO_LIBGPIOD}/include/"
- cargo build --features "mock_gpio"
- ```
- 4. Start vhost-device-gpio: (`LD_LIBRARY_PATH=/home/emb/libgpiod-2.1/lib/.libs/ ./vhost-device-gpio -s /tmp/gpio.sock -l s4`)
- 5. Download the Buildroot 2023.11.1 (`wget https://buildroot.org/downloads/buildroot-2023.11.1.tar.xz` in another directory) and unpack it. Buildroot and the main directory of Buildroot tree are denoted by BR if the following description.
- 6. Configure BR (run `make qemu_aarch64_virt_defconfig` in the main BR directory, run `make menuconfig` and select external toolchain, `BR2_PACKAGE_LIBGPIOD=y`, `BR2_PACKAGE_LIBGPIOD_TOOLS=y`, run `make linux-menuconfig` and select `CONFIG_GPIO_VIRTIO=m` in the kernel configuration)
- 7. Build the Linux and QEMU (run `make` in the BR directory).
- 8. Run the emulation in BR/output/images, using the command line given above.
- 9. After the virtual machine starts, log in as root and load the driver: `modprobe gpio-virtio`
-10. Try to monitor changes of one of the emulated pins: `gpiomon 0 0`
-11. You'll get the error message:
-
- ```
- gpiomon: error waiting for events: No such device
- ```
-Additional information:
-[0009-enable-F-IRQ-in-virtio-pci.patch](/uploads/39bc04b2d94063ccd539c5cfbc9cd105/0009-enable-F-IRQ-in-virtio-pci.patch)