diff options
author | jake <jake@FreeBSD.org> | 2003-03-19 05:05:08 +0000 |
---|---|---|
committer | jake <jake@FreeBSD.org> | 2003-03-19 05:05:08 +0000 |
commit | 6564ae81018f9caddd72fe4b8f51c200cad0bd78 (patch) | |
tree | aa0c51339d04763f69215d658d2ca2fb0c2a0a39 | |
parent | 106626faa2218c5892174d211811f6e6c30c0b51 (diff) | |
download | FreeBSD-src-6564ae81018f9caddd72fe4b8f51c200cad0bd78.zip FreeBSD-src-6564ae81018f9caddd72fe4b8f51c200cad0bd78.tar.gz |
Remove a workaround for mysterious junk appearing in the tlb of secondary
cpus. It turned out to be a bug in the loader.
-rw-r--r-- | sys/sparc64/sparc64/mp_machdep.c | 19 |
1 files changed, 0 insertions, 19 deletions
diff --git a/sys/sparc64/sparc64/mp_machdep.c b/sys/sparc64/sparc64/mp_machdep.c index f6d147d..35a5474 100644 --- a/sys/sparc64/sparc64/mp_machdep.c +++ b/sys/sparc64/sparc64/mp_machdep.c @@ -336,25 +336,6 @@ void cpu_mp_bootstrap(struct pcpu *pc) { volatile struct cpu_start_args *csa; - u_long tag; - int i; - - /* - * When secondary cpus start up they often have junk in their tlb. - * Sometimes both the lock bit and the valid bit will be set in the - * tlb entries, which can cause our locked mappings to be replaced, - * and other random behvaiour. The tags always seems to be zero, so - * we flush all mappings with a tag of zero, regardless of the lock - * and/or valid bits. - */ - for (i = 0; i < tlb_dtlb_entries; i++) { - tag = ldxa(TLB_DAR_SLOT(i), ASI_DTLB_TAG_READ_REG); - if (tag == 0) - stxa_sync(TLB_DAR_SLOT(i), ASI_DTLB_DATA_ACCESS_REG, 0); - tag = ldxa(TLB_DAR_SLOT(i), ASI_ITLB_TAG_READ_REG); - if (tag == 0) - stxa_sync(TLB_DAR_SLOT(i), ASI_ITLB_DATA_ACCESS_REG, 0); - } csa = &cpu_start_args; pmap_map_tsb(); |