From 90d8567d34a6d80da04b1cb37b667a3173f584c4 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 18 Feb 2016 08:36:16 +0100 Subject: score: Distribute clock tick to all online CPUs Update #2554. --- c/src/lib/libbsp/i386/shared/smp/smp-imps.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'c/src/lib/libbsp/i386/shared/smp/smp-imps.c') diff --git a/c/src/lib/libbsp/i386/shared/smp/smp-imps.c b/c/src/lib/libbsp/i386/shared/smp/smp-imps.c index ca1a0f134a..1ed504ccf9 100644 --- a/c/src/lib/libbsp/i386/shared/smp/smp-imps.c +++ b/c/src/lib/libbsp/i386/shared/smp/smp-imps.c @@ -744,13 +744,22 @@ static void smp_apic_ack(void) IMPS_LAPIC_WRITE(LAPIC_EOI, 0 ); /* ACK the interrupt */ } +/* FIXME: There should be a header file for this */ +void Clock_isr(void *arg); + static void bsp_inter_processor_interrupt(void *arg) { + unsigned long message; + (void) arg; smp_apic_ack(); - _SMP_Inter_processor_interrupt_handler(); + message = _SMP_Inter_processor_interrupt_handler(); + + if ((message & SMP_MESSAGE_CLOCK_TICK) != 0) { + Clock_isr(NULL); + } } static void ipi_install_irq(void) -- cgit v1.2.3