* Jan Kiszka <[email protected]> [2017-08-02 08:50:36 +0200]: > On 2017-08-02 02:29, Gustavo Lima Chaves wrote: > > We were sticking to hardcoded 256 entries there. We now scale better > > for systems with more PCI device entries. > > > > Signed-off-by: Gustavo Lima Chaves <[email protected]> > > --- > > tools/jailhouse-config-create | 14 ++++++++++++-- > > tools/root-cell-config.c.tmpl | 2 +- > > 2 files changed, 13 insertions(+), 3 deletions(-) > > > > diff --git a/tools/jailhouse-config-create b/tools/jailhouse-config-create > > index b0b9557..ce2affc 100755 > > --- a/tools/jailhouse-config-create > > +++ b/tools/jailhouse-config-create > > @@ -21,6 +21,7 @@ > > from __future__ import print_function > > import sys > > import os > > +import math > > import re > > import argparse > > import struct > > @@ -639,6 +640,7 @@ def parse_iomem(pcidevices): > > > > > > def parse_pcidevices(): > > + int_src_cnt = 0 > > devices = [] > > caps = [] > > basedir = '/sys/bus/pci/devices' > > @@ -660,8 +662,9 @@ def parse_pcidevices(): > > d.caps[0].comments.append(str(d)) > > d.caps_start = len(caps) > > caps.extend(d.caps) > > + int_src_cnt += max(d.num_msi_vectors, d.num_msix_vectors) > > devices.append(d) > > - return (devices, caps) > > + return (devices, caps, int_src_cnt) > > > > > > def parse_kernel_cmdline(): > > @@ -1146,7 +1149,13 @@ if jh_enabled == '1': > > file=sys.stderr) > > sys.exit(1) > > > > -(pcidevices, pcicaps) = parse_pcidevices() > > +IOAPIC_MAX_PINS = 120 > > +int_src_count = IOAPIC_MAX_PINS > > + > > +(pcidevices, pcicaps, cnt) = parse_pcidevices() > > + > > +int_src_count += cnt > > +vtd_interrupt_limit = 2**math.ceil(math.log(int_src_count, 2)) > > > > product = [input_readline('/sys/class/dmi/id/sys_vendor', > > True).rstrip(), > > @@ -1209,6 +1218,7 @@ kwargs = { > > 'cpucount': cpucount, > > 'irqchips': ioapics, > > 'pm_timer_base': pm_timer_base, > > + 'vtd_interrupt_limit': vtd_interrupt_limit, > > 'mmconfig': mmconfig, > > 'iommu_units': iommu_units, > > 'debug_console': debug_console, > > diff --git a/tools/root-cell-config.c.tmpl b/tools/root-cell-config.c.tmpl > > index 0d2ea29..100429f 100644 > > --- a/tools/root-cell-config.c.tmpl > > +++ b/tools/root-cell-config.c.tmpl > > @@ -87,7 +87,7 @@ struct { > > .pci_mmconfig_end_bus = ${hex(mmconfig.end_bus)}, > > .x86 = { > > .pm_timer_address = ${hex(pm_timer_base)}, > > - .vtd_interrupt_limit = 256, > > + .vtd_interrupt_limit = > > ${int(vtd_interrupt_limit)}, > > % if iommu_units: > > .iommu_units = { > > % for unit in iommu_units: > > > > Look valuable. > > Does is give us basically the same number (or even less) for systems > that used to be fine with 256?
Same number (and next power of two on a beefier machine—comparing to the pristine QEMU one—here). > > Jan > > -- > Siemens AG, Corporate Technology, CT RDA ITP SES-DE > Corporate Competence Center Embedded Linux -- Gustavo Lima Chaves Intel - Open Source Technology Center -- 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.
