Re: [patch 00/26] x64, x2apic/intr-remap: Interrupt-remapping and x2apic support
From: Suresh Siddha
Date: Fri Jul 11 2008 - 16:32:29 EST
On Fri, Jul 11, 2008 at 01:09:57PM -0700, Ingo Molnar wrote:
>
> * Ingo Molnar <mingo@xxxxxxx> wrote:
>
> > > > http://redhat.com/~mingo/misc/config-Thu_Jul_10_21_43_28_CEST_2008.bad
> > >
> > > Ingo, that was my stupid typo. Please apply this patch. BTW, we need
> > > some more xen64 paravirt fixes in this area. I will look at it as
> > > soon as possible.
> >
> > applied to tip/x86/x2apic - thanks Suresh.
>
> another problem is the redefinition of apic_read(), causing:
>
> arch/x86/xen/enlighten.c: In function âxen_patch':
> arch/x86/xen/enlighten.c:1084: warning: label âpatch_site' defined but not used
> arch/x86/xen/enlighten.c: At top level:
> arch/x86/xen/enlighten.c:1272: error: expected identifier before â(' token
> arch/x86/xen/enlighten.c:1273: error: expected â}' before â.' token
>
> with this config:
>
> http://redhat.com/~mingo/misc/config-Fri_Jul_11_21_51_18_CEST_2008.bad
>
> the continued spaghetti in all the APIC variants is quite ugly. This
> should all be handled via a single apic_ops template that should cover
> the paravirt and native variants as well.
Ingo, I just posted the fix for this.
To cleanup the code:
struct pv_apic_ops {
#ifdef CONFIG_X86_LOCAL_APIC
/*
* Direct APIC operations, principally for VMI. Ideally
* these shouldn't be in this interface.
*/
void (*apic_write)(unsigned long reg, u32 v);
void (*apic_write_atomic)(unsigned long reg, u32 v);
u32 (*apic_read)(unsigned long reg);
Probably we should move the three above routines to basic apic_ops, which just
deal with the apic HW accesses and retain the below for pv_apic_ops, which
care more than the basic reg accesses. This will be true for both 32/64bits..
void (*setup_boot_clock)(void);
void (*setup_secondary_clock)(void);
void (*startup_ipi_hook)(int phys_apicid,
unsigned long start_eip,
unsigned long start_esp);
#endif
};
Unless there is an objection, I will post the fix.
thanks,
suresh
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/