Log Message:
-----------
vm/qemu: move timeout before retry to avoid resource busy
Add "Device or resource busy" check to delay loop in function
Create to avoid resource busy caused by qemu "lazy release" of
VFs when VMs are restarted.
Syzkaller currently only supports 8 (0-7) pass-through VFs.
Add support for VFs > 8 by incrementing the Device # and
resetting the VF # to zero when INDEX modulo 8 = zero.
Introduce "{{FN%8}}" to trigger this support.
Ex: vfio-pci,host=31:0a.{{FN%8}}
Changed paths:
M executor/common_linux.h
M executor/executor.cc
M pkg/csource/common.go
M pkg/csource/options.go
M pkg/csource/options_test.go
M pkg/host/features.go
M pkg/host/features_linux.go
M pkg/ipc/ipc.go
M pkg/repro/repro.go
M pkg/runtest/run.go
M sys/linux/socket.txt
M syz-fuzzer/fuzzer.go
M tools/syz-execprog/execprog.go
M tools/syz-prog2c/prog2c.go
M tools/syz-reprolist/reprolist.go
M tools/syz-stress/stress.go
Log Message:
-----------
executor: add NIC PCI pass-through VF support
Add support for moving a NIC PCI pass-through VF into Syzkaller's network
namespace so that it will tested. As DEVLINK support is triggered by
setting the pass-through device to "addr=0x10", NIC PCI pass-through VF
support will be triggered by setting the device to "addr=0x11".
If a NIC PCI pass-through VF is detected in do_sandbox, setup a staging
namespace before the fork() and transfer the NIC VF interface to it.
After the fork() and in the child transfer the NIC VF interface to
Syzkaller's network namespace and rename the interface to netpci0 so
that it will be tested.