summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornyan <nyan@FreeBSD.org>2003-04-03 12:39:18 +0000
committernyan <nyan@FreeBSD.org>2003-04-03 12:39:18 +0000
commit159bd982cb56e73c591d062e4dc477070be004e7 (patch)
treeb2d229c13c4cce9e71f29cb1b6a727ad88936771
parent0c329c87573642e6dfd2aa47d79edc5f27da34c5 (diff)
downloadFreeBSD-src-159bd982cb56e73c591d062e4dc477070be004e7.zip
FreeBSD-src-159bd982cb56e73c591d062e4dc477070be004e7.tar.gz
MFi386: revision 1.561
-rw-r--r--sys/pc98/i386/machdep.c36
-rw-r--r--sys/pc98/pc98/machdep.c36
2 files changed, 66 insertions, 6 deletions
diff --git a/sys/pc98/i386/machdep.c b/sys/pc98/i386/machdep.c
index d7ff880..afeddec 100644
--- a/sys/pc98/i386/machdep.c
+++ b/sys/pc98/i386/machdep.c
@@ -49,6 +49,7 @@
#include "opt_msgbuf.h"
#include "opt_npx.h"
#include "opt_perfmon.h"
+#include "opt_swtch.h"
#include "opt_kstack_pages.h"
#include <sys/param.h>
@@ -161,11 +162,40 @@ int _udatasel, _ucodesel;
u_int atdevbase;
#if defined(SWTCH_OPTIM_STATS)
-extern int swtch_optim_stats;
+int stupid_switch;
+SYSCTL_INT(_debug, OID_AUTO, stupid_switch,
+ CTLFLAG_RW, &stupid_switch, 0, "");
+int swtch_optim_stats;
SYSCTL_INT(_debug, OID_AUTO, swtch_optim_stats,
- CTLFLAG_RD, &swtch_optim_stats, 0, "");
+ CTLFLAG_RW, &swtch_optim_stats, 0, "");
+int tlb_flush_count;
SYSCTL_INT(_debug, OID_AUTO, tlb_flush_count,
- CTLFLAG_RD, &tlb_flush_count, 0, "");
+ CTLFLAG_RW, &tlb_flush_count, 0, "");
+int lazy_flush_count;
+SYSCTL_INT(_debug, OID_AUTO, lazy_flush_count,
+ CTLFLAG_RW, &lazy_flush_count, 0, "");
+int lazy_flush_fixup;
+SYSCTL_INT(_debug, OID_AUTO, lazy_flush_fixup,
+ CTLFLAG_RW, &lazy_flush_fixup, 0, "");
+#ifdef SMP
+int lazy_flush_smpfixup;
+SYSCTL_INT(_debug, OID_AUTO, lazy_flush_smpfixup,
+ CTLFLAG_RW, &lazy_flush_smpfixup, 0, "");
+int lazy_flush_smpipi;
+SYSCTL_INT(_debug, OID_AUTO, lazy_flush_smpipi,
+ CTLFLAG_RW, &lazy_flush_smpipi, 0, "");
+int lazy_flush_smpbadcr3;
+SYSCTL_INT(_debug, OID_AUTO, lazy_flush_smpbadcr3,
+ CTLFLAG_RW, &lazy_flush_smpbadcr3, 0, "");
+int lazy_flush_smpmiss;
+SYSCTL_INT(_debug, OID_AUTO, lazy_flush_smpmiss,
+ CTLFLAG_RW, &lazy_flush_smpmiss, 0, "");
+#endif
+#endif
+#ifdef LAZY_SWITCH
+int lazy_flush_enable = 1;
+SYSCTL_INT(_debug, OID_AUTO, lazy_flush_enable,
+ CTLFLAG_RW, &lazy_flush_enable, 0, "");
#endif
#ifdef PC98
diff --git a/sys/pc98/pc98/machdep.c b/sys/pc98/pc98/machdep.c
index d7ff880..afeddec 100644
--- a/sys/pc98/pc98/machdep.c
+++ b/sys/pc98/pc98/machdep.c
@@ -49,6 +49,7 @@
#include "opt_msgbuf.h"
#include "opt_npx.h"
#include "opt_perfmon.h"
+#include "opt_swtch.h"
#include "opt_kstack_pages.h"
#include <sys/param.h>
@@ -161,11 +162,40 @@ int _udatasel, _ucodesel;
u_int atdevbase;
#if defined(SWTCH_OPTIM_STATS)
-extern int swtch_optim_stats;
+int stupid_switch;
+SYSCTL_INT(_debug, OID_AUTO, stupid_switch,
+ CTLFLAG_RW, &stupid_switch, 0, "");
+int swtch_optim_stats;
SYSCTL_INT(_debug, OID_AUTO, swtch_optim_stats,
- CTLFLAG_RD, &swtch_optim_stats, 0, "");
+ CTLFLAG_RW, &swtch_optim_stats, 0, "");
+int tlb_flush_count;
SYSCTL_INT(_debug, OID_AUTO, tlb_flush_count,
- CTLFLAG_RD, &tlb_flush_count, 0, "");
+ CTLFLAG_RW, &tlb_flush_count, 0, "");
+int lazy_flush_count;
+SYSCTL_INT(_debug, OID_AUTO, lazy_flush_count,
+ CTLFLAG_RW, &lazy_flush_count, 0, "");
+int lazy_flush_fixup;
+SYSCTL_INT(_debug, OID_AUTO, lazy_flush_fixup,
+ CTLFLAG_RW, &lazy_flush_fixup, 0, "");
+#ifdef SMP
+int lazy_flush_smpfixup;
+SYSCTL_INT(_debug, OID_AUTO, lazy_flush_smpfixup,
+ CTLFLAG_RW, &lazy_flush_smpfixup, 0, "");
+int lazy_flush_smpipi;
+SYSCTL_INT(_debug, OID_AUTO, lazy_flush_smpipi,
+ CTLFLAG_RW, &lazy_flush_smpipi, 0, "");
+int lazy_flush_smpbadcr3;
+SYSCTL_INT(_debug, OID_AUTO, lazy_flush_smpbadcr3,
+ CTLFLAG_RW, &lazy_flush_smpbadcr3, 0, "");
+int lazy_flush_smpmiss;
+SYSCTL_INT(_debug, OID_AUTO, lazy_flush_smpmiss,
+ CTLFLAG_RW, &lazy_flush_smpmiss, 0, "");
+#endif
+#endif
+#ifdef LAZY_SWITCH
+int lazy_flush_enable = 1;
+SYSCTL_INT(_debug, OID_AUTO, lazy_flush_enable,
+ CTLFLAG_RW, &lazy_flush_enable, 0, "");
#endif
#ifdef PC98
OpenPOWER on IntegriCloud