Re: Real-Time Preemption, -RT-2.6.12-final-V0.7.50-24

Karsten Wiese
2005-06-30T22:27:24Z

Am Donnerstag, 30. Juni 2005 22:50 schrieb Ingo Molnar:
>
> * Karsten Wiese <annabellesgarden@yahoo.de> wrote:
>
> > Here come some numbers to back up the usefullness of
> > CONFIG_X86_UP_IOAPIC_FAST. (and to show that my patch actually works
> > ;-)) All measurement where taken on an UP Athlon64 2Ghz running 32bit
> > 2.6.12-RT-50-35 PREEMPT_RT on a K8T800 mobo.
>
> thanks - the numbers are pretty convincing. I've applied most of your
> patch (except the instrumentation bits), and it seems to work quite well
> - one of my testsystems that had interrupt storms before can now run
> IOAPIC_FAST. (i also enabled the option to be selectable for SMP kernels
> too. If things work out fine we can make it default-on.) I've uploaded
> the -50-39 patch with these changes included.
>
Ooops, you didn't apply this part of the patch:

<snip>
--- linux-2.6.12-RT-50-35/arch/i386/kernel/mpparse.c 2005-06-30 16:38:00.000000000 +0200
+++ linux-2.6.12-RT/arch/i386/kernel/mpparse.c 2005-06-29 20:30:50.000000000 +0200
@@ -263,6 +263,7 @@
return;
}
mp_ioapics[nr_ioapics] = *m;
+ io_apic_base[nr_ioapics] = IO_APIC_BASE(nr_ioapics);
nr_ioapics++;
}

@@ -914,6 +915,7 @@
mp_ioapics[idx].mpc_apicaddr = address;

set_fixmap_nocache(FIX_IO_APIC_BASE_0 + idx, address);
+ io_apic_base[idx] = IO_APIC_BASE(idx);
mp_ioapics[idx].mpc_apicid = io_apic_get_unique_id(idx, id);
mp_ioapics[idx].mpc_apicver = io_apic_get_version(idx);
</snip>

It provides the precalculation of the ioapics's virtual address.
Or does IO_APIC_BASE() compile to an indexed lookup?
then io_apic_base[] wouldn't be needed...

Karsten

___________________________________________________________
Gesendet von Yahoo! Mail - Jetzt mit 1GB Speicher kostenlos - Hier anmelden: http://mail.yahoo.de