On Mon, Aug 24, 2015 at 03:56:56PM +0100, Peter Maydell wrote:
> On 24 August 2015 at 01:55, Paolo Bonzini <pbonz...@redhat.com> wrote:
> >
> >
> > On 21/08/2015 15:54, Eduardo Habkost wrote:
> >> > +    if (tcg_enabled()) {
> >> > +        memory_region_add_subregion_overlap(cpu->cpu_as_root,
> >> > +                                            apic->apicbase &
> >> > +                                            MSR_IA32_APICBASE_BASE,
> >> > +                                            &apic->io_memory,
> >> > +                                            0x1000);
> >>
> >> Why exactly is this necessary? If this is necessary, why don't we need
> >> to do this for non-TCG accelerators?
> >
> > At least KVM and qtest do not support per-CPU address spaces.
> 
> Right, but given this restriction why can't we also do whatever
> we need to work without the per-CPU address spaces with TCG?

Yeah, that was my question. I know why we can't use cpu->cpu_as_root in
KVM, but I don't understand why we need to use cpu->cpu_as_root with
TCG.

If that's really an actual per-accelerator requirement we can't avoid, I
would prefer to implement it as an AccelClass method instead of a
tcg_enabled() check.

-- 
Eduardo

Reply via email to