Source-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: [sommerfeld_i386mp_1] syssrc/sys/arch/i386/i386
Module Name: syssrc
Committed By: sommerfeld
Date: Sat Dec 29 20:59:24 UTC 2001
Modified Files:
syssrc/sys/arch/i386/i386 [sommerfeld_i386mp_1]: pmap.c
Log Message:
Fix from Frank van der Linden to TLB shootdown:
"... both a 'flushu' (do a normal TLB flush, but not the PG_G entries)
and one or more PG_G entries could have been in the shootdown
queue. pmap_tlb_shootnow() would then only have done a plain tlb
flush, meaning that the PG_G address(es) on the shootdown queue
weren't handled.
"For this to happen you'd have to have 2 conditions: 1) the max. number
of items on the queue was exceeded, with only plain (user) entries
on the queue, and 2) after this event happened, a few PG_G entries were
added.
"This could triggered by an exec, which unmaps the whole process'
map, usually causing > 16 'plain' entries, and pmap_remove_ptes
wanting to free a pv page, causing a PG_G entry. The latter would
then not be flushed from the TLB."
Fix is to make we don't miss PG_G entries after a flushu.
To generate a diff of this commit:
cvs rdiff -r1.83.2.45 -r1.83.2.46 syssrc/sys/arch/i386/i386/pmap.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Home |
Main Index |
Thread Index |
Old Index