Skip site navigation (1)Skip section navigation (2)
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>