Date: Tue, 26 Feb 2002 10:12:34 -0800 (PST) From: <dillon@FreeBSD.org> To: Peter Wemm <peter@FreeBSD.org> Cc: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/conf options.i386 options.pc98 Message-ID: <200202261812.g1QICYM65173@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
I had to make a minor change to this file to fix a conflict
created by my critical_enter()/exit() code. Basically, my
critical_enter()/exit() code already fixes the IPI deadlock
problem by leaving interrupts enabled, so your specific
cpu_critical_exit() call can be conditionalized for i386.
BTW, I have to strongly disagree with the hack you had in there,
even though I understand why you did it. critical_enter(),
critical_exit(), cpu_critical_enter(), and cpu_critical_exit() are
twisted together in a very bad way in fork_exit(), ast(), and now
in i386/i386/pmap.c (but at least i386/i386/pmap.c is MD code).
-Matt
: Log:
: Work-in-progress commit syncing up pmap cleanups that I have been working
: on for a while:
: - fine grained TLB shootdown for SMP on i386
: - ranged TLB shootdowns.. eg: specify a range of pages to shoot down with
: a single IPI, since the IPI is very expensive. Adjust some callers
: that used to trigger this inside tight loops to do a ranged shootdown
: at the end instead.
: - PG_G support for SMP on i386 (options ENABLE_PG_G)
: - defer PG_G activation till after we decide what we are going to do with
: PSE and the 4MB pages at the start of the kernel. This should solve
: some rumored strangeness about stale PG_G entries getting stuck
: underneath the 4MB pages.
: - add some instrumentation for the fine TLB shootdown
: - convert some asm instruction wrappers from functions to inlines. gcc
: seems to do a fair bit better with this.
: - [temporarily!] pessimize the tlb shootdown IPI handlers. I will fix
: this again shortly.
:
: This has been working fairly well for me for a while, but I have tweaked
: it again prior to commit since my last major testing round. The only
: outstanding problem that I know of is PG_G related, which is why there
: is an option for it (not on by default for SMP). I have seen a world
: speedups by a few percent (as much as 4 or 5% in one case) but I have
: *not* accurately measured this - I am a bit sceptical of these numbers.
:
: Revision Changes Path
: 1.168 +1 -0 src/sys/conf/options.i386
: 1.142 +1 -0 src/sys/conf/options.pc98
: 1.155 +2 -21 src/sys/i386/i386/locore.s
: 1.175 +193 -18 src/sys/i386/i386/mp_machdep.c
: 1.53 +0 -3 src/sys/i386/i386/mpapic.c
: 1.308 +174 -198 src/sys/i386/i386/pmap.c
: 1.87 +0 -36 src/sys/i386/i386/support.s
: 1.109 +169 -75 src/sys/i386/include/cpufunc.h
: 1.75 +0 -2 src/sys/i386/include/pmap.h
: 1.67 +2 -1 src/sys/i386/include/smp.h
: 1.41 +1 -8 src/sys/i386/include/smptests.h
: 1.76 +83 -11 src/sys/i386/isa/apic_vector.s
: 1.66 +0 -8 src/sys/i386/isa/intr_machdep.c
: 1.34 +13 -7 src/sys/i386/isa/intr_machdep.h
: 1.99 +3 -0 src/sys/kern/subr_witness.c
:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200202261812.g1QICYM65173>
