qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Re: [PATCH] apic creation should not depend on pci


From: Gleb Natapov
Subject: [Qemu-devel] Re: [PATCH] apic creation should not depend on pci
Date: Sun, 7 Jun 2009 14:20:54 +0300

On Sun, Jun 07, 2009 at 01:01:54PM +0200, Jan Kiszka wrote:
> Gleb Natapov wrote:
> > Anybody knows why it currently does?
> > 
> > Signed-off-by: Gleb Natapov <address@hidden>
> > diff --git a/hw/pc.c b/hw/pc.c
> > index 0934778..15c3efe 100644
> > --- a/hw/pc.c
> > +++ b/hw/pc.c
> > @@ -881,11 +881,9 @@ static void pc_init1(ram_addr_t ram_size,
> >          if (smp_cpus > 1) {
> >              /* XXX: enable it in all cases */
> >              env->cpuid_features |= CPUID_APIC;
> > -        }
> > -        qemu_register_reset(main_cpu_reset, 0, env);
> > -        if (pci_enabled) {
> >              apic_init(env);
> >          }
> > +        qemu_register_reset(main_cpu_reset, 0, env);
> >      }
> >  
> >      vmport_init();
> 
> !pci_enabled means isapc, and that was probably once defined as "shall
> have no external APIC".
> 
> But I wonder if we should change this test into "(env->cpuid_features &
> CPUID_APIC) || smp_cpus > 1", ie. also include isapc with LAPIC CPU
> (probably a synthetic case, but a selectable one) and non-LAPIC CPU with
> external APIC (for SMP).
> 
Using (env->cpuid_features & CPUID_APIC) is definitely more correct that
what is there now.

> I also wonder if that explicit setting of CPUID_APIC for smp_cpus > 1 is
> correct. Either the selected CPU type has one, then it's set via
> PPRO_FEATURES, or not - then it could still exist externally for SMP,
> see above.
How software detects presence of apic on 486 smp boards? MPtable? 

> 
> Does this make some sense?
> 
Yes (for me at least).

--
                        Gleb.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]