From 2c142d1028f276c6d5e58c553768ae32ed9bda68 Mon Sep 17 00:00:00 2001 From: "Bjoern B. Brandenburg" Date: Wed, 10 Nov 2010 12:25:43 -0500 Subject: Hook up LITMUS^RT remote preemption support on x86 Call into scheduler state machine in the IPI handler. --- arch/x86/kernel/smp.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'arch') diff --git a/arch/x86/kernel/smp.c b/arch/x86/kernel/smp.c index 97af589a5c0c..74cca6014c0e 100644 --- a/arch/x86/kernel/smp.c +++ b/arch/x86/kernel/smp.c @@ -23,7 +23,8 @@ #include #include -#include +#include +#include #include #include @@ -212,10 +213,8 @@ static void native_smp_send_stop(void) void smp_reschedule_interrupt(struct pt_regs *regs) { ack_APIC_irq(); - /* LITMUS^RT needs this interrupt to proper reschedule - * on this cpu - */ - set_tsk_need_resched(current); + /* LITMUS^RT: this IPI might need to trigger the sched state machine. */ + sched_state_ipi(); inc_irq_stat(irq_resched_count); TS_SEND_RESCHED_END; /* -- cgit v1.2.2