lkml.org 
[lkml]   [2003]   [Feb]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
SubjectRe: [PATCH][2.5] flush_tlb_all is not preempt safe.
Date
Hi,

I've created a patch based on yours to solve the flush_tlb_all preempt-issue
for x86_64 and the i386/mach-voyager subarchitecture. I'm not sure if the
ia64 architecture would need to be patched, too...?

Wouldn't it even have been possible to solve this problem just by swapping the
two original lines?

Best regards
Thomas Schlichter--- linux-2.5.62/arch/i386/mach-voyager/voyager_smp.c.orig Wed Feb 19 16:43:22 2003
+++ linux-2.5.62/arch/i386/mach-voyager/voyager_smp.c Wed Feb 19 16:43:57 2003
@@ -1230,9 +1230,11 @@
void
flush_tlb_all(void)
{
+ preempt_disable();
smp_call_function (flush_tlb_all_function, 0, 1, 1);

do_flush_tlb_all_local();
+ preempt_enable();
}

/* used to set up the trampoline for other CPUs when the memory manager
--- linux-2.5.62/arch/x86_64/kernel/smp.c.orig Wed Feb 19 21:08:20 2003
+++ linux-2.5.62/arch/x86_64/kernel/smp.c Wed Feb 19 21:09:40 2003
@@ -344,9 +344,11 @@

void flush_tlb_all(void)
{
+ preempt_disable();
smp_call_function (flush_tlb_all_ipi,0,1,1);

do_flush_tlb_all_local();
+ preempt_enable();
}

void smp_kdb_stop(void)[unhandled content-type:application/pgp-signature]
\
 
 \ /
  Last update: 2005-03-22 13:33    [W:0.044 / U:3.564 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site