1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-13 10:02:38 +00:00

Tidy up leftover lazy_switch instrumentation that is no longer needed.

This cleans up some #ifdef hell.
This commit is contained in:
Peter Wemm 2003-06-27 22:39:14 +00:00
parent 813b1b3df7
commit eabd19726f
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=116930
7 changed files with 2 additions and 125 deletions

View File

@ -7,7 +7,6 @@ DISABLE_PSE opt_pmap.h
PMAP_SHPGPERPROC opt_pmap.h
DISABLE_PG_G opt_pmap.h
LAZY_SWITCH opt_swtch.h
SWTCH_OPTIM_STATS opt_swtch.h
PPC_PROBE_CHIPSET opt_ppc.h
PPC_DEBUG opt_ppc.h
MAXMEM

View File

@ -7,7 +7,6 @@ DISABLE_PSE opt_pmap.h
PMAP_SHPGPERPROC opt_pmap.h
DISABLE_PG_G opt_pmap.h
LAZY_SWITCH opt_swtch.h
SWTCH_OPTIM_STATS opt_swtch.h
PPC_PROBE_CHIPSET opt_ppc.h
PPC_DEBUG opt_ppc.h
MAXMEM

View File

@ -51,7 +51,6 @@ __FBSDID("$FreeBSD$");
#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>
@ -153,43 +152,6 @@ SYSINIT(cpu, SI_SUB_CPU, SI_ORDER_FIRST, cpu_startup, NULL)
int _udatasel, _ucodesel;
u_int atdevbase;
#if defined(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_RW, &swtch_optim_stats, 0, "");
int tlb_flush_count;
SYSCTL_INT(_debug, OID_AUTO, tlb_flush_count,
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
int cold = 1;
#ifdef COMPAT_43

View File

@ -738,9 +738,6 @@ pmap_invalidate_all(pmap_t pmap)
u_int cpumask;
u_int other_cpus;
#ifdef SWTCH_OPTIM_STATS
tlb_flush_count++;
#endif
critical_enter();
/*
* We need to disable interrupt preemption but MUST NOT have
@ -1307,17 +1304,8 @@ pmap_lazyfix_action(void)
{
u_int mymask = PCPU_GET(cpumask);
if (rcr3() == lazyptd) {
if (rcr3() == lazyptd)
load_cr3(PCPU_GET(curpcb)->pcb_cr3);
#ifdef SWTCH_OPTIM_STATS
atomic_add_int(&lazy_flush_smpfixup, 1);
} else {
if (*lazymask & mymask)
lazy_flush_smpbadcr3++;
else
lazy_flush_smpmiss++;
#endif
}
atomic_clear_int(lazymask, mymask);
atomic_store_rel_int(&lazywait, 1);
}
@ -1326,17 +1314,8 @@ static void
pmap_lazyfix_self(u_int mymask)
{
if (rcr3() == lazyptd) {
if (rcr3() == lazyptd)
load_cr3(PCPU_GET(curpcb)->pcb_cr3);
#ifdef SWTCH_OPTIM_STATS
lazy_flush_fixup++;
} else {
if (*lazymask & mymask)
lazy_flush_smpbadcr3++;
else
lazy_flush_smpmiss++;
#endif
}
atomic_clear_int(lazymask, mymask);
}
@ -1370,9 +1349,6 @@ pmap_lazyfix(pmap_t pmap)
if (--spins == 0)
break;
}
#ifdef SWTCH_OPTIM_STATS
lazy_flush_smpipi++;
#endif
}
mtx_unlock_spin(&lazypmap_lock);
if (spins == 0)
@ -1397,9 +1373,6 @@ pmap_lazyfix(pmap_t pmap)
if (cr3 == rcr3()) {
load_cr3(PCPU_GET(curpcb)->pcb_cr3);
pmap->pm_active &= ~(PCPU_GET(cpumask));
#ifdef SWTCH_OPTIM_STATS
lazy_flush_fixup++;
#endif
}
}
#endif /* SMP */
@ -3272,9 +3245,6 @@ pmap_activate(struct thread *td)
td->td_pcb->pcb_cr3 = cr3;
}
load_cr3(cr3);
#ifdef SWTCH_OPTIM_STATS
tlb_flush_count++;
#endif
PCPU_SET(curpmap, pmap);
critical_exit();
}

View File

@ -75,9 +75,6 @@ ENTRY(cpu_throw)
1:
movl 8(%esp),%ecx /* New thread */
movl TD_PCB(%ecx),%edx
#ifdef SWTCH_OPTIM_STATS
incl tlb_flush_count
#endif
movl PCB_CR3(%edx),%eax
movl %eax,%cr3 /* new address space */
/* set bit in new pm_active */
@ -166,30 +163,16 @@ ENTRY(cpu_switch)
/* switch address space */
movl PCB_CR3(%edx),%eax
#ifdef LAZY_SWITCH
cmpl $0,lazy_flush_enable
je 1f
#ifdef PAE
cmpl %eax,IdlePDPT /* Kernel address space? */
#else
cmpl %eax,IdlePTD /* Kernel address space? */
#endif
#ifdef SWTCH_OPTIM_STATS
je 3f
#else
je sw1
#endif
1:
#endif
movl %cr3,%ebx /* The same address space? */
cmpl %ebx,%eax
#ifdef SWTCH_OPTIM_STATS
je 2f /* Yes, skip all that cruft */
#else
je sw1
#endif
#ifdef SWTCH_OPTIM_STATS
incl tlb_flush_count
#endif
movl %eax,%cr3 /* new address space */
/* Release bit from old pmap->pm_active */
@ -209,19 +192,6 @@ ENTRY(cpu_switch)
#endif
btsl %esi, PM_ACTIVE(%ebx) /* set new */
#ifdef LAZY_SWITCH
#ifdef SWTCH_OPTIM_STATS
jmp sw1
2: /* same address space */
incl swtch_optim_stats
jmp sw1
3: /* kernel address space */
incl lazy_flush_count
#endif
#endif
sw1:
/*
* At this point, we've switched address spaces and are ready

View File

@ -66,22 +66,6 @@ extern int szfreebsd4_sigcode;
#ifdef COMPAT_43
extern int szosigcode;
#endif
#ifdef SWTCH_OPTIM_STATS
extern int stupid_switch;
extern int swtch_optim_stats;
extern int tlb_flush_count;
extern int lazy_flush_count;
extern int lazy_flush_fixup;
#ifdef SMP
extern int lazy_flush_smpfixup;
extern int lazy_flush_smpipi;
extern int lazy_flush_smpbadcr3;
extern int lazy_flush_smpmiss;
#endif
#endif
#ifdef LAZY_SWITCH
extern int lazy_flush_enable;
#endif
typedef void alias_for_inthand_t(u_int cs, u_int ef, u_int esp, u_int ss);
struct thread;

View File

@ -72,9 +72,6 @@ __FBSDID("$FreeBSD$");
#endif
#include <machine/cpu.h>
#ifdef SWTCH_OPTIM_STATS
#include <machine/md_var.h>
#endif
static void sched_setup(void *dummy);
SYSINIT(sched_setup, SI_SUB_KICK_SCHEDULER, SI_ORDER_FIRST, sched_setup, NULL)
@ -525,10 +522,6 @@ mi_switch(void)
newtd = choosethread();
if (td != newtd)
cpu_switch(td, newtd); /* SHAZAM!! */
#ifdef SWTCH_OPTIM_STATS
else
stupid_switch++;
#endif
#else
cpu_switch(); /* SHAZAM!!*/
#endif