lkml.org 
[lkml]   [2004]   [Sep]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: ptep_establish/establish_pte needs set_pte_atomic and all set_pte must be written in asm
On Sat, 25 Sep 2004, Andrea Arcangeli wrote:

> set_pte), while something like this should be fine:
>
> ptep_get_and_clear
> set_pte
> flush_tlb

Almost. Think of software TLB refills, especially HPTE.
The order needs to be:

ptep_get_and_clear
flush_tlb
set_pte

Any page faults happening "in the middle" will end up as
virtual no-ops once they grab the page_table_lock.

Luckily the PPC64 code in 2.6 seems to have a fix for the
race already. Martin's race is a 2.4 thing only and needs
a 2-line change to establish_pte(), to make the code do what
I described above.

--
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it." - Brian W. Kernighan


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 14:06    [W:0.193 / U:0.508 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site