mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-11-21 22:09:23 +01:00
test-runner: automatically find PCI passthrough config
When PCI adapters are properly configured they should exist in the vfio-pci system tree. It is assumed any devices configured as such are used for test-runner. This removes the need for a hw.conf file to be supplied, but still is required for USB adapters. Because of this the --hw option was updated to allow no value, or a file path.
This commit is contained in:
parent
99773ea7e8
commit
07a3b1d655
@ -116,6 +116,9 @@ class RunnerCoreArgParse(ArgumentParser):
|
||||
help='Writes PASS/FAIL to results file')
|
||||
self.add_argument('--hw', '-w',
|
||||
type=str,
|
||||
nargs='?',
|
||||
const=True,
|
||||
action='store',
|
||||
help='Use physical adapters for tests (passthrough)')
|
||||
self.add_argument('--testhome', help=SUPPRESS)
|
||||
self.add_argument('--monitor-parent', help=SUPPRESS)
|
||||
@ -382,6 +385,7 @@ class QemuRunner(RunnerAbstract):
|
||||
self._prepare_outfiles()
|
||||
|
||||
if args.hw:
|
||||
if os.path.isfile(args.hw):
|
||||
hw_conf = ConfigParser()
|
||||
hw_conf.read(args.hw)
|
||||
|
||||
@ -392,8 +396,7 @@ class QemuRunner(RunnerAbstract):
|
||||
# anyways once in the VM.
|
||||
usb_adapters = [v for v in hw_conf['USBAdapters'].values()]
|
||||
|
||||
if hw_conf.has_section('PCIAdapters'):
|
||||
pci_adapters = [v for v in hw_conf['PCIAdapters'].values()]
|
||||
pci_adapters = self._find_pci_adapters()
|
||||
|
||||
kern_log = "ignore_loglevel" if "kernel" in args.verbose else "quiet"
|
||||
|
||||
@ -473,6 +476,25 @@ class QemuRunner(RunnerAbstract):
|
||||
|
||||
self.cmdline = qemu_cmdline
|
||||
|
||||
def _find_pci_adapters(self):
|
||||
adapters = []
|
||||
|
||||
try:
|
||||
files = os.listdir('/sys/module/vfio_pci/drivers/pci:vfio-pci')
|
||||
except:
|
||||
return None
|
||||
|
||||
for bus_addr in files:
|
||||
if not bus_addr.startswith('0000:'):
|
||||
continue
|
||||
|
||||
adapters.append(bus_addr.replace('0000:', ''))
|
||||
|
||||
if len(adapters) == 0:
|
||||
return None
|
||||
|
||||
return adapters
|
||||
|
||||
def prepare_environment(self):
|
||||
mounts = [ MountInfo('debugfs', 'debugfs', '/sys/kernel/debug', '', 0) ]
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user