Home | History | Annotate | Download | only in alpha
History log of /src/sys/arch/alpha/alpha/cpu.c
RevisionDateAuthorComments
 1.108  06-Mar-2024  thorpej Statically initialize the PRIMARY and RUNNING flags in cpu_info_primary.
 1.107  22-May-2022  andvar fix various small typos, mainly in comments.
 1.106  09-Apr-2022  riastradh alpha: Convert cpu_iccb_send from membar_exit to membar_release.

XXX Maybe this should really use alpha_mb, since it's not writing to
normal MI-type memory so technically the membr_* semantics doesn't
apply?
 1.105  27-Feb-2022  riastradh alpha: Fix placement of membar for sending ICCB message.

While here, reduce it to membar_exit -- it's obviously not needed for
store-before-load here (although alpha doesn't have anything weaker
than the full sequential consistency `mb'), and although we do need a
store-before-load (and load-before-load) to spin waiting for the CPU
to wake up, that already happens a few lines below with alpha_mb in
the loop anyway. So no need for membar_sync, which is just `mb'
under the hood -- deleting the membar_sync in this place can't hurt.

The membar_sync had been inserted automatically when converting from
an older style of atomic_ops(3) API.
 1.104  05-May-2021  thorpej Decorate cpu_info_list with __read_mostly; it's never modified once
all the CPUs are attached.
 1.103  15-Oct-2020  thorpej branches: 1.103.6;
Expose a bunch of CPU details, including implementation version and
architecture extensions, via sysctl:

hw.cpu0.model = 21264A-0 (EV67)
hw.cpu0.major = 11
hw.cpu0.minor = 0
hw.cpu0.implver = 2
hw.cpu0.amask = 0x1307
hw.cpu0.bwx = 1
hw.cpu0.fix = 1
hw.cpu0.cix = 1
hw.cpu0.mvi = 1
hw.cpu0.pat = 1
hw.cpu0.pmi = 1
hw.cpu0.vax_fp = 1
hw.cpu0.ieee_fp = 1
hw.cpu0.primary_eligible = 1
hw.cpu0.primary = 1
hw.cpu0.cpu_id = 0
hw.cpu0.pcc_freq = 239990688

as well as some potentially interesting system-level variables:

machdep.cctr = 0
machdep.is_qemu = 1

Should address the basic concern in PR port-alpha/15835.
 1.102  10-Oct-2020  thorpej Fix cycle counter-based time keeping on Alpha in MP environments by using
a simpler calibration algorithm for the CC timecounter. Proposed in 2018
by Naruaki Etomi:

https://mail-index.netbsd.org/tech-kern/2018/01/14/msg022940.html

This patch is largely based on the proposed change, but avoids changing
any other timecounter logic, and re-factors things a bit to keep them
as MI as possible.
 1.101  29-Sep-2020  thorpej Improve time keeping and host CPU usage when running in Qemu:
- clockattach(): Allow multiple calls when running in Qemu. Anything
after this first one is ignored, but this gives us a change to use
a clock source provided by the VM directly, rather than relying on
a more expensive hardware emulation.
- Add cpu_initclocks_secondary(), to handle clock setup on secondary
CPUs, if needed.
- Allow us to use the WTINT PALcode call in cpu_idle() to idle in a lower
power state (Qemu's PALcode supports this).
- Use the Qemu per-cpu set-alarm-rel call as the hardclock interrupt
source. In Qemu environments, reduce hz to 50 (rather than the
default 1024) to give the clock a snowball's chance when running on
a host system with hz=100. XXX We have to manually re-calculate
tick and tickadj. There should be MI code to do this for us. Also
in Qemu environments, let hardclock() drive the sched clock by setting
schedhz=0.
 1.100  04-Sep-2020  thorpej Decorate some symbols with the appropriate things for better cache
behavior. Assert that cpu_infos are cache line aligned.
 1.99  29-Aug-2020  thorpej - Centralize per-CPU pmap initialization into a new pmap_init_cpu()
function. Call in from pmap_bootstrap() for the boot CPU, and
from cpu_hatch() for secondaary CPUs.
- Eliminiate the dedicated I-stream memory barrier IPI; handle it all from
the TLB shootdown IPI. Const poison, and add some additional memory
barriers and a TBIA to the PAUSE IPI.
- Completly rewrite TLB management in the alpha pmap module, borrowing
somoe ideas from the x86 pmap and adapting them to the alpha environment.
See the comments for theory of operation. Add a bunch of stats that
can be reported (disabled by default).
- Add some additional symbol decorations to improve cache behavior on
MP systems. Ensure coherency unit alignment for several structures
in the pmap module. Use hashed locks for pmap structures.
- Start out all new processes on the kernel page tables until their
first trip though pmap_activate() to avoid the potential of polluting
the current ASN in TLB with cross-process mappings.
 1.98  07-Aug-2020  fcambus Use CPU_IS_PRIMARY macro on alpha and sparc64.
 1.97  08-Apr-2019  thorpej Add some additional CPU and system types.
 1.96  10-Oct-2015  martin branches: 1.96.18;
PR port-alpha/50325: cosmetic fix for cpu attach message
from Felix Deichmann.
 1.95  06-Feb-2012  matt branches: 1.95.6; 1.95.24;
Do a minor cleanup of alpha (this will make applying pullups post branching
easier).
u_int{8,16,32,64}_t -> uint{*}_t
Change all old-style definitions to C89 prototypes.
Whitespace cleanup.
Constification in db_disasm.c
 1.94  28-Jul-2011  uebayasi branches: 1.94.2; 1.94.6;
One more typo in #ifdef DEBUG.
 1.93  28-Jul-2011  uebayasi Fix DEBUG build.
 1.92  14-Jun-2011  matt Major cleanup of alpha device drivers.
Switch to CFATTACH_DECL_NEW.
struct device * -> device_t
struct cfdata * -> cfdata_t
Use of device_xname. No direct access to struct device members.
Use aprint* (not complete).
 1.91  07-Jun-2011  matt Switch alpha to use PCU to manage the FPU.
Tested by mhitch and review by rmind.
 1.90  17-Dec-2010  joerg branches: 1.90.6;
Fix build by pulling in uvm/uvm_extern.h.
 1.89  15-Dec-2010  matt remove unneeded <uvm/uvm_extern.h> includes
 1.88  26-Nov-2009  matt branches: 1.88.4;
Kill proc0paddr. Use lwp0.l_addr instead.
 1.87  21-Nov-2009  rmind - Use lwp_getpcb() on Alpha.
- Replace and clean struct user usage, slightly simplify some code parts.
- Include sys/user.h in MD proc.h .
 1.86  06-Sep-2009  mhitch There's now some per-cpu initialization that occurs before the secondary
cpus are told to begin running. Since the seconedary cpus weren't being
added to the cpu_info list until then, that initialization wasn't being
done and resulted in crashes on the secondary cpus. Add the secondary
cpus to the cpu_info_list after they've been started (but waiting to be
told to start running). This fixes the problem specifically stated in
PR port-alpha/41106. MP alphas will now at least boot and begin running,
but will eventually crash in various ways later.
 1.85  14-Mar-2009  dsl Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
 1.84  14-Mar-2009  dsl Remove all the __P() from sys (excluding sys/dist)
Diff checked with grep and MK1 eyeball.
i386 and amd64 GENERIC and sys still build.
 1.83  16-Dec-2008  christos branches: 1.83.2;
replace bitmask_snprintf(9) with snprintb(3)
 1.82  28-Apr-2008  martin branches: 1.82.8; 1.82.10; 1.82.14; 1.82.16;
Remove clause 3 and 4 from TNF licenses
 1.81  10-Mar-2008  ad branches: 1.81.2; 1.81.4;
Use MI atomic operations.
 1.80  28-Nov-2007  ad branches: 1.80.10; 1.80.14;
Hook in the atomic ops on alpha.
 1.79  19-Nov-2007  ad Set curlwp for the boot CPU before entering main().
 1.78  17-Oct-2007  garbled branches: 1.78.2;
Merge the ppcoea-renovation branch to HEAD.

This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree. Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches. The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.77  08-Oct-2007  ad branches: 1.77.2;
Merge run time accounting changes from the vmlocking branch. These make
the LWP "start time" per-thread instead of per-CPU.
 1.76  21-Jul-2007  tsutsui branches: 1.76.4; 1.76.6; 1.76.8;
Add MI todr(9) support and timercounter(9) support with kern_cctr.c to alpha:
- use todr(9) API with MI mc146818(4) driver and remove homegrown
todr stuff from MD alpha/clock.c and alpha/mcclock.c
- also remove obsolete cc_microtime stuff from MD code
- add ci_pcc_freq member in struct cpu_info for cpu_frequency(), and
calibrate it with mc146818 interval clock in mcclock attachment
- call cc_init() in cpu_initclocks(9) because all alpha cpus have
a pcc counter

Tested on DEC 3000/300 and AlphaPC 164, but not on any SMP machines yet.
 1.75  18-May-2007  mhitch branches: 1.75.2; 1.75.4;
Fix alpha MP for idlelwp: ci_idle_lwp was added to cpu_info
structure, but never initialized. There's already a cpu_idlelwp
in ci_data, which appears to be the same thing, so use that instead.
 1.74  17-May-2007  yamt merge yamt-idlelwp branch. asked by core@. some ports still needs work.

from doc/BRANCHES:

idle lwp, and some changes depending on it.

1. separate context switching and thread scheduling.
(cf. gmcgarry_ctxsw)
2. implement idle lwp.
3. clean up related MD/MI interfaces.
4. make scheduler(s) modular.
 1.73  24-Dec-2005  perry branches: 1.73.26; 1.73.30; 1.73.32; 1.73.36; 1.73.38;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.72  11-Dec-2005  christos merge ktrace-lwp.
 1.71  27-Oct-2003  chs branches: 1.71.16;
uninitialized variables
 1.70  05-Feb-2003  nakayama branches: 1.70.2;
Share alpha/microtime.c with i386 and sparc64 as kern_microtime.c.
(approved by martin)
 1.69  17-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.68  02-Oct-2002  thorpej Use CFATTACH_DECL().
 1.67  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.66  25-Jul-2002  he Add identifiers for newer 21264 CPUs (B, C and D), EV68 variants.
Information gleaned from corresponding code in FreeBSD.
 1.65  02-Jun-2002  drochner move initialization of the "struct pglist" returned by uvm_pglistalloc()
from the calling code into uvm_pglistalloc() itself for consistency
and easier error handling
 1.64  13-Jul-2001  thorpej branches: 1.64.2; 1.64.14; 1.64.16;
Change the way we spin up CPUs. Now boot the CPU as soon as we
discover it, but make it block on a semaphore until the MI kernel
says that we can let the secondary processors loose. This allows
us to announce the extensions on the secondary CPUs, and to compute
the intersection of all the extensions across all CPUs, like so:

cpu0 at mainbus0: ID 0 (primary), 21164A-2
cpu0: Architecture extensions: 1<BWX>
cpu1 at mainbus0: ID 1, 21164A-2
cpu1: Architecture extensions: 1<BWX>
 1.63  27-May-2001  sommerfeld branches: 1.63.2;
Assorted microtime fixes (similar to fixes I made yesterday when
porting this code to i386mp branch):

- call microset() early on each cpu so that calls to microtime()
before the first clock interrupt don't return trash. this manifested
itself as garbage runtimes in "ps" for kernel threads.
- avoid races between hardclock updating "time" and microset on a
different cpu reading it by adding a "microset_time" global which is
initialized from "time" on the primary cpu.
- call microset every hz ticks, not every hz+1 (cosmetic)
 1.62  24-Apr-2001  thorpej Fix an uninitialized variable problem in the non-MULTIPROCESSOR case.
 1.61  21-Apr-2001  thorpej Adjust the way the cpu_info[] array works (array of pointers
rather than array of structures). Keep a list of active
CPUs and define a CPU_INFO_FOREACH to traverse them.

This fixes cpustates statistics tracking.
 1.60  22-Nov-2000  thorpej branches: 1.60.2;
Several changes, which get us generally further along with
multiprocessor support:
- Implement MP-safe halt.
- Make the FPU saving code more like Bill's on the i386 MP branch.
XXX This code will no doubt be revisited again.
- Pass the cpu_info and trapframe to IPI handlers, saving some work
in the handlers themselves, and also making it possible for the
"pause" handler to reference register state for DDB.
- Add "machine cpu" to DDB, making it possible to reference other
CPUs registers (and thus get e.g. a traceback) from whichever
CPU is actually running the debugger.
- Garbage-collect "machine halt" and "machine reboot" DDB commands.
They don't have a prayer of working properly in multiprocessor
kernels, and didn't really work all that well in uniprocessor kernels.
 1.59  19-Nov-2000  thorpej Synch cpu_hatch() with the i386:
- print the same style message when the CPU is running.
- Initialize ci->ci_schedstate.spc_runtime on the CPU.
 1.58  18-Nov-2000  thorpej Count individual interprocessor interrupts -- it's good to know where
they all come from.
 1.57  18-Nov-2000  thorpej Make sure that the cpu_info points at the correct softc on
single-processor kernels running on multi-processor systems.
 1.56  17-Nov-2000  thorpej I have long since upgraded the boot block on my test system. (Actually,
I have an entirely different test system now.)
 1.55  04-Sep-2000  thorpej Define the biglock perimeter for the Alpha port, and generally clean
up a bunch of the MP code. Still doens't work properly yet, this is
just a snapshot of work-in-progress.
 1.54  21-Aug-2000  thorpej Add experimental code for pausing other CPUs upon a CPU's
entry into the debugger. While I'm here, add splsched()
as per spl(9).
 1.53  03-Jul-2000  thorpej Don't bother with minor printing, except on the LCA CPUs (because
that tells us if we have a 21066 or 21068).
 1.52  29-Jun-2000  mrg remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h>
 1.51  12-Jun-2000  sommerfeld Fix this so it compiles again with DEBUG
 1.50  05-Jun-2000  thorpej Switch to the new `evcnt' mechanism for counting interrupts. Maintain
a per-CPU interrupt counter for clock, device, and interprocessor
interrupts.
 1.49  03-Jun-2000  thorpej Err, actually, print "21264A", not "EV67".
 1.48  03-Jun-2000  thorpej Recognize PCA57 and EV67.
 1.47  01-Jun-2000  sommerfeld Add missing newline
 1.46  31-May-2000  thorpej - In the MULTIPROCESSOR case, initialize p_cpu before a process is
marked SONPROC.
- Always make curproc, fpcurproc, astpending, and want_resched per-CPU
variables in struct cpu_info. Restructure code accordingly, and trim
a few instructions from a few spots in various places in locore.
 1.45  26-May-2000  thorpej branches: 1.45.2;
First sweep at scheduler state cleanup. Collect MI scheduler
state into global and per-CPU scheduler state:

- Global state: sched_qs (run queues), sched_whichqs (bitmap
of non-empty run queues), sched_slpque (sleep queues).
NOTE: These may collectively move into a struct schedstate
at some point in the future.

- Per-CPU state, struct schedstate_percpu: spc_runtime
(time process on this CPU started running), spc_flags
(replaces struct proc's p_schedflags), and
spc_curpriority (usrpri of processes on this CPU).

- Every platform must now supply a struct cpu_info and
a curcpu() macro. Simplify existing cpu_info declarations
where appropriate.

- All references to per-CPU scheduler state now made through
curcpu(). NOTE: this will likely be adjusted in the future
after further changes to struct proc are made.

Tested on i386 and Alpha. Changes are mostly mechanical, but apologies
in advance if it doesn't compile on a particular platform.
 1.44  23-May-2000  thorpej Rename the atomic operations to have generic machine-independent
names, and define __HAVE_ATOMIC_OPERATIONS to indicate their
existence.
 1.43  03-Apr-2000  thorpej Print any architecture extensions present on the primary CPU.
 1.42  09-Feb-2000  sommerfeld Fix typo in error message
 1.41  16-Dec-1999  thorpej - Remove a misguided attempt to use procs as idle contexts for secondary
processors. Instead, allocate separate idle PCBs for them (including
the primary -- don't use proc0's for its idle context).
- Use SysValue to store the cpu_info for each processor.
 1.40  02-Dec-1999  thorpej Move atomic operations into <machine/atomic.h>, and make them in-line
assembly, rather than function calls.

...except alpha_atomic_testset_l(), which will go away completely once
I commit the new <machine/lock.h>.
 1.39  23-Aug-1999  ross branches: 1.39.2; 1.39.8;
Fix minor type () bug. Fall thru correctly when the minor type is not known.
 1.38  10-Aug-1999  thorpej Move cpu_info and related info into <machine/cpu.h>, and implement the
other MP API components discussed on tech-smp.
 1.37  06-Jul-1999  thorpej Make the kthread API a bit more friendly to loadable kernel modules.
 1.36  29-Jun-1999  ross Identify the various ev6 pass numbers.
Also print the raw pass number rpb value as, say, `21264-4', like SRM does.
 1.35  04-Mar-1999  chs branches: 1.35.2; 1.35.4; 1.35.6;
fix printf format types.
 1.34  23-Feb-1999  thorpej Now that we have the kthread mechanism, massively clean up the way
additional processors are spun up on multiprocessor Alpha systems.
Now, each processor gets its own idle thread (the primary processor
uses proc0). This idle thread is used in switch_exit(), rather than
explicitly referencing proc0.

Also, make `curproc', `fpcurproc', and `curpcb' per-cpu values. This
required some data structure rearrangement; cpu info is now statically
allocated in the BSS, rather than via malloc(), and cpu_softc is gone.
(Modeled somewhat after NetBSD/sparc's multiprocessor info structures.)
 1.33  19-Nov-1998  ross #include <machine/alpha.h>
 1.32  29-Sep-1998  thorpej - Use a bitmask for "running CPUs", rather than a flag in the softc.
- Add a function to halt a secondary CPU.
- Enable interrupts on secondary CPUs once they've hatched.
 1.31  28-Sep-1998  thorpej PROM doens't need to be mapped to start up the secondaries, so remove some
dead code.
 1.30  28-Sep-1998  thorpej Turn off some debugging printfs, and kludge around a boot block bug until
I can install fixed boot blocks on my MP test systems.
 1.29  26-Sep-1998  thorpej - Oops, forgot to initalize the cpu_softc simplelock.
- Add yet another debugging printf.
 1.28  25-Sep-1998  thorpej Don't bother printing the message from the secondary console. All it is
is basically the acknowledgement of the START command. Print the idle
USPACE address for now. Use the alias "apcb_backup_ksp" when setting the
backup kernel stack pointer in the secondary's boot HWPCB.
 1.27  24-Sep-1998  thorpej First-cut at code to spin up secondary processors on a multiprocessor
Alpha system, conditional on MULTIPROCESSOR.

NOTE: This does not yet work completely. The secondary CPU begins the
boot process, but never makes it into the cpu spinup trampoline. This
is merely a snapshot of a work-in-progress.
 1.26  22-Sep-1998  ross Change 41 separate printf()'s into a table and 2 printf()'s.
 1.25  24-Jun-1998  ross Replace expressions with the new macros: LOCATE_PCS(), PCS_CPU_MAJORTYPE(),
and PCS_CPU_MINORTYPE().
 1.24  14-May-1998  thorpej Garbage-collect the old confargs stuff that was used in the Early Days.
It isn't really appropriate anymore. Replace it with a real mainbus
attach args structure.
 1.23  12-Jan-1998  thorpej Adjust for config changes.
 1.22  02-Sep-1997  thorpej Nuke the idea of <machine/options.h>. It completely defeats the purpose
of fine-grain option dependencies.
 1.21  07-Apr-1997  cgd branches: 1.21.4;
by default, provide RCS IDs for NetBSD/alpha kernel files in kernel binaries.
This can be disabled (to save a bit of space) with the NO_KERNEL_RCSIDS
options, which is present but commented out in the ALPHA config file.
In ELF-format kernels, these strings are present in the kernel binary but
are not loaded into memory. (In ECOFF-format kernels, there's no easy way
to keep them from being loaded, so they _are_ loaded into memory.)
 1.20  07-Apr-1997  cgd clean up NetBSD RCS ID strings, include machine/options.h
 1.19  01-Apr-1997  mycroft #ifdef DEBUG a variable to prevent compiler warning.
 1.18  12-Mar-1997  cgd don't assume that CPU ID is same as device unit number (DUH!), add some
comments about future work to be done. make a mostly-extraneous set of
printfs (cpu capabilities) become #ifdef DEBUG.
 1.17  08-Dec-1996  cgd remove all traces of __BROKEN_INDIRECT_CONFIG (except in shared drivers)
 1.16  05-Dec-1996  cgd update these so they compile whether or not __BROKEN_INDIRECT_CONFIG
is defined.
 1.15  13-Nov-1996  cgd branches: 1.15.2;
print out unrecognized processor minor types as 0x%x, rather than %d,
also print out minor types in a few cases where they previously wouldn't
be printed (but that aren't likely to be run into, anyway).
 1.14  13-Nov-1996  cgd update for all known processor major and minor type numbers.
 1.13  13-Nov-1996  cgd recognize 21164A (ev56)
 1.12  13-Oct-1996  christos backout previous kprintf change
 1.11  10-Oct-1996  christos printf -> kprintf, sprintf -> ksprintf
 1.10  09-Jul-1996  cgd clean and update for new defintions, prototypes, etc.
 1.9  29-Apr-1996  cgd fix botched printf spacing in last change.
 1.8  29-Apr-1996  cgd fix definition of the "Primary Eligible" RPB PCS processor variation field.
 1.7  17-Apr-1996  cgd print cpu names slightly differently (number first)
 1.6  12-Apr-1996  cgd clean up copyrights and RCS IDs
 1.5  17-Mar-1996  thorpej New device attachment scheme:

- split softc size and match/attach out from cfdriver into
a new struct cfattach.

- new "attach" directive for files.*. May specify the name of
the cfattach structure, so that devices may be easily attached
to parents with different autoconfiguration semantics.
 1.4  23-Nov-1995  cgd wholesale update from my NetBSD/Alpha source tree. Includes:
Support for AXPpci CPUs,
Support for AlphaStation 600 CPUs,
new boot block structure, which requires an 'installboot'
program and works a lot like the NetBSD/sparc boot blocks.
 1.3  28-Jun-1995  cgd sync with my current Alpha sources
 1.2  08-Mar-1995  cgd update from my local tree; better CPU configuration, support for 3000/300.
 1.1  13-Feb-1995  cgd preliminary Alpha support. note that NOT ALL OF THE MODIFICATIONS TO
THE REST OF THE KERNEL ARE IN THE TREE YET. Also, some of this is
_incredibly_ hack-ish, etc., but it works.
 1.15.2.3  01-Jun-1997  cgd sync the nwscons branch up with yesterday's version of the trunk.
Lots of conflicts/changes because of the RCS Id format changes.
Also, a few cleanups and corrections.
 1.15.2.2  08-Dec-1996  cgd sync __BROKEN_INDIRECT_CONFIG removal with trunk.
 1.15.2.1  07-Dec-1996  cgd mostly sync with changes on the trunk
 1.21.4.1  04-Sep-1997  thorpej Update marc-pcmcia branch from trunk.
 1.35.6.1  30-Nov-1999  itojun bring in latest KAME (as of 19991130, KAME/NetBSD141) into kame branch
just for reference purposes.
This commit includes 1.4 -> 1.4.1 sync for kame branch.

The branch does not compile at all (due to the lack of ALTQ and some other
source code). Please do not try to modify the branch, this is just for
referenre purposes.

synchronization to latest KAME will take place on HEAD branch soon.
 1.35.4.2  02-Aug-1999  thorpej Update from trunk.
 1.35.4.1  01-Jul-1999  thorpej Sync w/ -current.
 1.35.2.1  02-Jul-1999  perry pullup 1.35->1.36 (ross)
 1.39.8.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.39.2.4  23-Apr-2001  bouyer Sync with HEAD.
 1.39.2.3  08-Dec-2000  bouyer Sync with HEAD.
 1.39.2.2  22-Nov-2000  bouyer Sync with HEAD.
 1.39.2.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.45.2.1  22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.60.2.1  21-Jun-2001  nathanw Catch up to -current.
 1.63.2.4  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.63.2.3  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.63.2.2  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.63.2.1  03-Aug-2001  lukem update to -current
 1.64.16.1  29-Jul-2002  lukem Pull up revision 1.66 (requested by he in ticket #552):
Add identifiers for newer 21264 CPUs (B, C and D), EV68 variants.
Information gleaned from corresponding code in FreeBSD.
 1.64.14.2  30-Aug-2002  gehenna catch up with -current.
 1.64.14.1  09-Jul-2002  gehenna catch up with -current.
 1.64.2.6  16-Dec-2002  nathanw LWPify some MULTIPROCESSOR code.
 1.64.2.5  18-Oct-2002  nathanw Catch up to -current.
 1.64.2.4  01-Aug-2002  nathanw Catch up to -current.
 1.64.2.3  24-Jun-2002  nathanw Curproc->curlwp renaming.

Change uses of "curproc->l_proc" back to "curproc", which is more like the
original use. Bare uses of "curproc" are now "curlwp".

"curproc" is now #defined in proc.h as ((curlwp) ? (curlwp)->l_proc) : NULL)
so that it is always safe to reference curproc (*de*referencing curproc
is another story, but that's always been true).
 1.64.2.2  20-Jun-2002  nathanw Catch up to -current.
 1.64.2.1  13-Jul-2001  nathanw file cpu.c was added on branch nathanw_sa on 2002-06-20 03:37:29 +0000
 1.70.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.70.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.70.2.1  03-Aug-2004  skrll Sync with HEAD
 1.71.16.5  17-Mar-2008  yamt sync with head.
 1.71.16.4  07-Dec-2007  yamt sync with head
 1.71.16.3  27-Oct-2007  yamt sync with head.
 1.71.16.2  03-Sep-2007  yamt sync with head.
 1.71.16.1  21-Jun-2006  yamt sync with head.
 1.73.38.3  16-Oct-2007  garbled Sync with HEAD
 1.73.38.2  03-Oct-2007  garbled Sync with HEAD
 1.73.38.1  22-May-2007  matt Update to HEAD.
 1.73.36.2  19-Apr-2007  thorpej Add support for hot-patching the membar ops when we detect MP.
 1.73.36.1  18-Apr-2007  thorpej Convert to the new atomic op API.
 1.73.32.1  11-Jul-2007  mjf Sync with head.
 1.73.30.5  03-Dec-2007  ad Sync with HEAD.
 1.73.30.4  03-Dec-2007  ad Sync with HEAD.
 1.73.30.3  09-Oct-2007  ad Sync with head.
 1.73.30.2  20-Aug-2007  ad Sync with HEAD.
 1.73.30.1  27-May-2007  ad Sync with head.
 1.73.26.2  24-Mar-2007  yamt initialize ci->ci_schedstate.spc_mutex of APs.
(sched_rqinit is called before APs are attached.)
 1.73.26.1  20-Mar-2007  yamt adapt alpha.
 1.75.4.1  15-Aug-2007  skrll Sync with HEAD.
 1.75.2.1  07-Aug-2007  matt Sync with HEAD.
 1.76.8.1  14-Oct-2007  yamt sync with head.
 1.76.6.3  23-Mar-2008  matt sync with HEAD
 1.76.6.2  09-Jan-2008  matt sync with HEAD
 1.76.6.1  06-Nov-2007  matt sync with HEAD
 1.76.4.3  03-Dec-2007  joerg Sync with HEAD.
 1.76.4.2  21-Nov-2007  joerg Sync with HEAD.
 1.76.4.1  26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.77.2.1  21-Nov-2007  bouyer Sync with HEAD
 1.78.2.1  08-Dec-2007  mjf Sync with HEAD.
 1.80.14.3  17-Jan-2009  mjf Sync with HEAD.
 1.80.14.2  02-Jun-2008  mjf Sync with HEAD.
 1.80.14.1  03-Apr-2008  mjf Sync with HEAD.
 1.80.10.1  24-Mar-2008  keiichi sync with head.
 1.81.4.4  11-Mar-2010  yamt sync with head
 1.81.4.3  16-Sep-2009  yamt sync with head
 1.81.4.2  04-May-2009  yamt sync with head.
 1.81.4.1  16-May-2008  yamt sync with head.
 1.81.2.1  18-May-2008  yamt sync with head.
 1.82.16.1  21-Apr-2010  matt sync to netbsd-5
 1.82.14.1  16-Sep-2009  snj Pull up following revision(s) (requested by mhitch in ticket #949):
sys/arch/alpha/alpha/cpu.c: revision 1.86
There's now some per-cpu initialization that occurs before the secondary
cpus are told to begin running. Since the seconedary cpus weren't being
added to the cpu_info list until then, that initialization wasn't being
done and resulted in crashes on the secondary cpus. Add the secondary
cpus to the cpu_info_list after they've been started (but waiting to be
told to start running). This fixes the problem specifically stated in
PR port-alpha/41106. MP alphas will now at least boot and begin running,
but will eventually crash in various ways later.
 1.82.10.1  16-Sep-2009  snj Pull up following revision(s) (requested by mhitch in ticket #949):
sys/arch/alpha/alpha/cpu.c: revision 1.86
There's now some per-cpu initialization that occurs before the secondary
cpus are told to begin running. Since the seconedary cpus weren't being
added to the cpu_info list until then, that initialization wasn't being
done and resulted in crashes on the secondary cpus. Add the secondary
cpus to the cpu_info_list after they've been started (but waiting to be
told to start running). This fixes the problem specifically stated in
PR port-alpha/41106. MP alphas will now at least boot and begin running,
but will eventually crash in various ways later.
 1.82.8.2  28-Apr-2009  skrll Sync with HEAD.
 1.82.8.1  19-Jan-2009  skrll Sync with HEAD.
 1.83.2.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.88.4.1  12-Jun-2011  rmind sync with head
 1.90.6.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.94.6.1  18-Feb-2012  mrg merge to -current.
 1.94.2.1  17-Apr-2012  yamt sync with head
 1.95.24.1  27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.95.6.1  03-Dec-2017  jdolecek update from HEAD
 1.96.18.1  10-Jun-2019  christos Sync with HEAD
 1.103.6.1  13-May-2021  thorpej Sync with HEAD.

RSS XML Feed