* 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.

Reply via email to