Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Jan 2001 16:29:05 +1100 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        Jake Burkholder <jake@FreeBSD.org>
Cc:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/alpha/alpha interrupt.c machdep.c mp_machdep.c prom.c trap.c src/sys/dev/usb ohci.c uhci.c usbdi.c         src/sys/dev/vinum vinumhdr.h vinummemory.c src/sys/i386/i386         bios.c db_interface.c machdep.c mp_machdep.c mpapic.c pmap.c ...
Message-ID:  <Pine.BSF.4.21.0101101602240.25131-100000@besplex.bde.org>
In-Reply-To: <200101100443.f0A4hpo84748@freefall.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 9 Jan 2001, Jake Burkholder wrote:

> jake        2001/01/09 20:43:51 PST
> 
>   Modified files:
>     sys/alpha/alpha      interrupt.c machdep.c mp_machdep.c prom.c 
>                          trap.c 
>     sys/dev/usb          ohci.c uhci.c usbdi.c 
>     sys/dev/vinum        vinumhdr.h vinummemory.c 
>     sys/i386/i386        bios.c db_interface.c machdep.c 
>                          mp_machdep.c mpapic.c pmap.c 
>                          sys_machdep.c trap.c vm86.c vm_machdep.c 
>     sys/i386/include     cpu.h 
>     sys/i386/isa         npx.c 
>     sys/ia64/ia64        interrupt.c mp_machdep.c 
>     sys/kern             init_main.c kern_clock.c kern_exit.c 
>                          kern_ktr.c kern_malloc.c kern_mutex.c 
>                          kern_resource.c kern_shutdown.c 
>                          kern_subr.c kern_switch.c kern_synch.c 
>                          subr_prf.c vfs_bio.c 
>     sys/sys              buf.h 
>   Log:
>   Use PCPU_GET, PCPU_PTR and PCPU_SET to access all per-cpu variables
>   other then curproc.

I wish I had objected earlier to your previous changes to prepare for
this mistake.  Machine-independent code shouldn't know that some
variables are per-cpu.  We had perfectly good access macros named
curproc, etc. (except they weren't ifdefed right for modules).  There
is no need for function-like macros, since rvalue-like variables can
always be implemented using macros (or [inline] functions) that return
the value of the variable, and lvalue-like variables can always be
implemented as `*(macro_that_returns_address_of_variable)'.  This is
what the old macros did.  The `SET' macros can be more efficient in
some cases, since they may be able to access the variable directly,
but we currently don't do this.  In fact, even the i386 `GET' macros
have regressed from direct accesses in the %fs segment to indirect
accesses via a pointer loaded from the %fs segment.

>   Revision  Changes    Path
>   1.33      +4 -4      src/sys/alpha/alpha/interrupt.c
>   1.106     +14 -14    src/sys/alpha/alpha/machdep.c
>   1.7       +4 -4      src/sys/alpha/alpha/mp_machdep.c
>   1.14      +10 -8     src/sys/alpha/alpha/prom.c
>   1.39      +2 -2      src/sys/alpha/alpha/trap.c
>   1.48      +2 -2      src/sys/dev/usb/ohci.c
>   1.55      +2 -2      src/sys/dev/usb/uhci.c
>   1.44      +2 -2      src/sys/dev/usb/usbdi.c
>   1.19      +2 -2      src/sys/dev/vinum/vinumhdr.h
>   1.24      +2 -2      src/sys/dev/vinum/vinummemory.c
>   1.41      +2 -2      src/sys/i386/i386/bios.c
>   1.54      +8 -6      src/sys/i386/i386/db_interface.c
>   1.427     +9 -8      src/sys/i386/i386/machdep.c
>   1.133     +20 -20    src/sys/i386/i386/mp_machdep.c
>   1.45      +4 -4      src/sys/i386/i386/mpapic.c
>   1.267     +37 -36    src/sys/i386/i386/pmap.c
>   1.52      +4 -4      src/sys/i386/i386/sys_machdep.c
>   1.164     +24 -17    src/sys/i386/i386/trap.c
>   1.36      +4 -4      src/sys/i386/i386/vm86.c
>   1.147     +6 -6      src/sys/i386/i386/vm_machdep.c
>   1.54      +4 -4      src/sys/i386/include/cpu.h
>   1.87      +18 -18    src/sys/i386/isa/npx.c
>   1.5       +3 -3      src/sys/ia64/ia64/interrupt.c
>   1.5       +4 -4      src/sys/ia64/ia64/mp_machdep.c
>   1.152     +2 -2      src/sys/kern/init_main.c
>   1.118     +3 -3      src/sys/kern/kern_clock.c
>   1.113     +3 -3      src/sys/kern/kern_exit.c
>   1.11      +2 -2      src/sys/kern/kern_ktr.c
>   1.76      +2 -2      src/sys/kern/kern_malloc.c
>   1.31      +6 -4      src/sys/kern/kern_mutex.c
>   1.70      +6 -5      src/sys/kern/kern_resource.c
>   1.91      +3 -3      src/sys/kern/kern_shutdown.c
>   1.39      +4 -4      src/sys/kern/kern_subr.c
>   1.9       +3 -3      src/sys/kern/kern_switch.c
>   1.118     +13 -12    src/sys/kern/kern_synch.c
>   1.70      +2 -2      src/sys/kern/subr_prf.c
>   1.270     +6 -6      src/sys/kern/vfs_bio.c
>   1.114     +2 -2      src/sys/sys/buf.h

The corresponding changes for curproc would affect approximately 606
lines in 163 files.

Bruce



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?Pine.BSF.4.21.0101101602240.25131-100000>