Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/rmind-uvmplock]: src/sys/arch/x86/include struct pmap_tlb_mailbox: make ...



details:   https://anonhg.NetBSD.org/src/rev/19edcb68d58c
branches:  rmind-uvmplock
changeset: 753075:19edcb68d58c
user:      rmind <rmind%NetBSD.org@localhost>
date:      Tue Mar 08 23:27:50 2011 +0000

description:
struct pmap_tlb_mailbox: make tm_pending and tm_gen volatile.

diffstat:

 sys/arch/x86/include/pmap.h |  28 +++++++++++++++-------------
 1 files changed, 15 insertions(+), 13 deletions(-)

diffs (47 lines):

diff -r 67bc532440b1 -r 19edcb68d58c sys/arch/x86/include/pmap.h
--- a/sys/arch/x86/include/pmap.h       Tue Mar 08 23:26:35 2011 +0000
+++ b/sys/arch/x86/include/pmap.h       Tue Mar 08 23:27:50 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: pmap.h,v 1.29.2.7 2011/03/05 20:52:28 rmind Exp $      */
+/*     $NetBSD: pmap.h,v 1.29.2.8 2011/03/08 23:27:50 rmind Exp $      */
 
 /*
  * Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -465,23 +465,25 @@
 
 struct pmap_tlb_packet {
 #ifdef _LP64
-       uintptr_t       tp_va[14];      /* whole struct: 128 bytes */
+       uintptr_t               tp_va[14];      /* whole struct: 128 bytes */
 #else
-       uintptr_t       tp_va[13];      /* whole struct: 64 bytes */
+       uintptr_t               tp_va[13];      /* whole struct: 64 bytes */
 #endif
-       uint16_t        tp_count;
-       uint16_t        tp_pte;
-       uint32_t        tp_cpumask;
-       uint32_t        tp_usermask;
+       uint16_t                tp_count;
+       uint16_t                tp_pte;
+       uint32_t                tp_cpumask;
+       uint32_t                tp_usermask;
 };
-#define        TP_MAXVA        6               /* no more than N seperate invlpg */
+
+/* No more than N seperate invlpg. */
+#define        TP_MAXVA                6
 
 struct pmap_tlb_mailbox {
-       uint32_t        tm_pending;
-       uint32_t        tm_gen;
-       uint32_t        tm_usergen;
-       uint32_t        tm_globalgen;
-       char            tm_pad[64 - sizeof(uintptr_t) * 4];
+       volatile uint32_t       tm_pending;
+       volatile uint32_t       tm_gen;
+       uint32_t                tm_usergen;
+       uint32_t                tm_globalgen;
+       char                    tm_pad[64 - sizeof(uintptr_t) * 4];
 };
 
 #endif /* _KERNEL */



Home | Main Index | Thread Index | Old Index