History log of /src/sys/arch/alpha/include/cpu.h |
Revision | | Date | Author | Comments |
1.106 |
| 31-Mar-2024 |
thorpej | Add machdep.rpb_type and machdep.rpb_variation sysctl nodes.
|
1.105 |
| 22-Nov-2023 |
thorpej | If not _KERNEL, include <stddef.h> to make sure we have offsetof().
|
1.104 |
| 14-Aug-2021 |
ryo | Improved the performance of kernel profiling on MULTIPROCESSOR, and possible to get profiling data for each CPU.
In the current implementation, locks are acquired at the entrance of the mcount internal function, so the higher the number of cores, the more lock conflict occurs, making profiling performance in a MULTIPROCESSOR environment unusable and slow. Profiling buffers has been changed to be reserved for each CPU, improving profiling performance in MP by several to several dozen times.
- Eliminated cpu_simple_lock in mcount internal function, using per-CPU buffers. - Add ci_gmon member to struct cpu_info of each MP arch. - Add kern.profiling.percpu node in sysctl tree. - Add new -c <cpuid> option to kgmon(8) to specify the cpuid, like openbsd. For compatibility, if the -c option is not specified, the entire system can be operated as before, and the -p option will get the total profiling data for all CPUs.
|
1.103 |
| 22-Jul-2021 |
thorpej | Various minor cleanups and bug fixes to the FP software completion code: - Use __CTASSERT() instead of rolling our own compile-time assertion using cpp. - Use __BIT() &c instead of rolling our own. - Improve some comments. - Define a default FP_C and FPCR value that is self-consistent, and initialize it properly at process creation time. - Fix signal information when the trap shadow cannot be resolved. - Use defined constants rather than magic numbers for the exception summary bits. - Add a machdep sysctl to enable FP software-completion debugging.
|
1.102 |
| 26-Jun-2021 |
skrll | Fix typo in comment
|
1.101 |
| 20-Apr-2021 |
thorpej | branches: 1.101.2; Slight tweak to previous changes:
Rather than simply increment the interrupt depth for the clock interrupt, we add 0x10. Why? Because while we only use a single Alpha IPL (4) for IPL_{BIO,NET,TTY,VM}, technically the architecture specification suports two in the OSF/1 PALcode (3 [low-pri] and 4 [high-pri]), meaning we could conceiveably have intrdepth > 1 just for device interrupts.
Adding 0x10 here means that cpu_intr_p() can check for "intrdepth != 0" for "in interrupt context" and CLKF_INTR() can check "(intrdepth & 0xf) != 0" for "was processing interrupts when the clock interrupt happened".
|
1.100 |
| 15-Apr-2021 |
rin | Fix fallout from alpha/interrupt.c rev 1.93:
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/alpha/alpha/interrupt.c#rev1.93
by which interrupts *seem* to occupy 100% CPU time.
Now, we bump ci_intrdepth for clock interrupt. Therefore, if ci_intrdepth > 1 is observed in statclock(), CPU is actually occupied by interrupts.
Thanks jklos and thorpej for notice!
|
1.99 |
| 15-Oct-2020 |
thorpej | branches: 1.99.4; 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.98 |
| 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.97 |
| 25-Sep-2020 |
thorpej | Changes to make interrupt {,dis}establish MP-safe on Alpha: - Protect all of the system interrupt linkage with the cpu_lock mutex. - Re-order some of the stores to the SCB vector table to make it safe in the face of lockless interrupt dispatch. - Add a framework for routing interrupts to specific CPUs. Interrupts are still funneled only to the primary CPU, but that will change for some systems soon. Ensure that interrupt handler lists are manipulated only on the CPUs that handle that specific interrupt source. This required a re-factor of the alpha_shared_intr_*() family of functions. - Enable __HAVE_INTR_CONTROL, although interrupt redistribution is still a no-op. - Reduce code duplication in the Jenson direct-SCB interrupt handlers.
|
1.96 |
| 16-Sep-2020 |
thorpej | Implement fast soft interrupts for Alpha. It's not yet enabled, because there is a bug lurking that causes problems when user space starts up, so we'll stick with the slow path for now.
|
1.95 |
| 05-Sep-2020 |
thorpej | Track the SSIR per-cpu, rather than globally.
|
1.94 |
| 04-Sep-2020 |
thorpej | Put the MI cpu_data at the beginning of cpu_info so that it is cache line aligned.
|
1.93 |
| 04-Sep-2020 |
thorpej | Use SysValue to store curlwp rather than curcpu. curlwp is acceessed much more frequently, and this makes curlwp preemption-safe.
|
1.92 |
| 04-Sep-2020 |
thorpej | Shuffle fields in cpu_info for better cache behavior. XXX More changes to come after curlwp is overhauled.
|
1.91 |
| 03-Sep-2020 |
thorpej | Garbage-collect fpcurlwp -- it has been obsolete since FPU tracking was converted over to PCU.
|
1.90 |
| 03-Sep-2020 |
thorpej | Garabage-collect curpcb / cpu_info::ci_curpcb.
|
1.89 |
| 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.88 |
| 29-Aug-2020 |
thorpej | - cpu_need_resched(): Explicitly cover each RESCHED_* case, and add a comment explaining why we don't need to act on IDLE+REMOTE. - cpu_signotify(): Move to machdep.c, and if we're asked to notify an LWP running on another CPU, send an AST IPI to that CPU. Add some assertions. - cpu_need_proftick(): Move to machdep.c, add some assertions.
|
1.87 |
| 17-Aug-2020 |
thorpej | - Track the currently-activated pmap in struct cpu_info. - Reserve some space in struct cpu_info for future pmap changes.
|
1.86 |
| 01-Dec-2019 |
ad | Fix false sharing problems with cpu_info. Identified with tprof(8). This was a very nice win in my tests on a 48 CPU box.
- Reorganise cpu_data slightly according to usage. - Put cpu_onproc into struct cpu_info alongside ci_curlwp (now is ci_onproc). - On x86, put some items in their own cache lines according to usage, like the IPI bitmask and ci_want_resched.
|
1.85 |
| 24-Nov-2019 |
ad | Make ci_want_resched a u_int.
|
1.84 |
| 22-Aug-2018 |
msaitoh | - Cleanup for dynamic sysctl: - Remove unused *_NAMES macros for sysctl. - Remove unused *_MAXID for sysctls. - Move CTL_MACHDEP sysctl definitions for m68k into m68k/include/cpu.h and use them on all m68k machines.
|
1.83 |
| 17-Dec-2016 |
flxd | branches: 1.83.14; 1.83.16; Fix typo "one the" and architecture where appropriate.
|
1.82 |
| 22-Jan-2014 |
christos | branches: 1.82.6; 1.82.10; undo rump workaround
|
1.81 |
| 21-Jan-2014 |
christos | rumpkernel needs ci_pcc_freq
|
1.80 |
| 10-Nov-2013 |
christos | use __unused instead of __USE and void cast to mark iterator variable unused where needed (from phone)
|
1.79 |
| 03-Nov-2013 |
christos | use __USE() in the iterator variable
|
1.78 |
| 21-Jan-2012 |
matt | branches: 1.78.6; 1.78.10; cpu_uarea_free returns bool, not void
|
1.77 |
| 14-Jun-2011 |
matt | branches: 1.77.2; 1.77.6; Add latent support for __HAVE_CPU_UAREA_ROUTINES
|
1.76 |
| 08-Feb-2011 |
rmind | branches: 1.76.2; Remove clause 3 (UCB advertising clause) from the University of Utah copyright. Confirmed by Mike Hibler, mike at cs.utah.edu - thanks! Also, merge UCB and Utah copyright texts back into one, as they originally were.
Extra verification by snj@.
|
1.75 |
| 26-Dec-2010 |
he | branches: 1.75.2; 1.75.4; Since struct cpu_data isn't the first member in struct cpu_info, instead expose the initial portion of struct cpu_info if _KMEMUSER is defined.
|
1.74 |
| 28-Apr-2008 |
martin | branches: 1.74.22; Remove clause 3 and 4 from TNF licenses
|
1.73 |
| 27-Feb-2008 |
xtraeme | branches: 1.73.2; 1.73.4; Remove CTL_MACHDEP_NAMES, it's not used anywhere.
Ok by martin@.
|
1.72 |
| 17-Oct-2007 |
garbled | branches: 1.72.12; 1.72.16; 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.71 |
| 21-Jul-2007 |
tsutsui | branches: 1.71.6; 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.70 |
| 19-May-2007 |
mhitch | branches: 1.70.2; 1.70.4; Fix multiprocessor operation: move a couple of fields in struct cpu_info to the beginning so they can still be accessed in assymbly code using 8 bit offsets. The addition of a big structure in cpu_data moved these outside the range of the addq instruction. Gas should have complained that the immediate value was too large, but just silently truncated it. I can now run multiprocessor again.
|
1.69 |
| 18-May-2007 |
mhitch | 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.68 |
| 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.67 |
| 16-Feb-2007 |
ad | branches: 1.67.2; 1.67.6; 1.67.8; 1.67.12; 1.67.14; Remove spllowersoftclock() and CLKF_BASEPRI(), and always dispatch callouts via a soft interrupt. In the near future, softclock will be run from process context.
|
1.66 |
| 09-Feb-2007 |
ad | Merge newlock2 to head.
|
1.65 |
| 24-Dec-2005 |
perry | branches: 1.65.20; Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
|
1.64 |
| 11-Dec-2005 |
christos | merge ktrace-lwp.
|
1.63 |
| 22-Sep-2004 |
yamt | branches: 1.63.12; move some per-cpu data definitions to MI place so that they can be modified without touching all ports. discussed on tech-kern@.
|
1.62 |
| 04-Jan-2004 |
jdolecek | Rearrange process exit path to avoid need to free resources from different process context ('reaper').
From within the exiting process context: * deactivate pmap and free vmspace while we can still block * introduce MD cpu_lwp_free() - this cleans all MD-specific context (such as FPU state), and is the last potentially blocking operation; all of cpu_wait(), and most of cpu_exit(), is now folded into cpu_lwp_free() * process is now immediatelly marked as zombie and made available for pickup by parent; the remaining last lwp continues the exit as fully detached * MI (rather than MD) code bumps uvmexp.swtch, cpu_exit() is now same for both 'process' and 'lwp' exit
uvm_lwp_exit() is modified to never block; the u-area memory is now always just linked to the list of available u-areas. Introduce (blocking) uvm_uarea_drain(), which is called to release the excessive u-area memory; this is called by parent within wait4(), or by pagedaemon on memory shortage. uvm_uarea_free() is now private function within uvm_glue.c.
MD process/lwp exit code now always calls lwp_exit2() immediatelly after switching away from the exiting lwp.
g/c now unneeded routines and variables, including the reaper kernel thread
|
1.61 |
| 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
1.60 |
| 05-Feb-2003 |
nakayama | branches: 1.60.2; Share alpha/microtime.c with i386 and sparc64 as kern_microtime.c. (approved by martin)
|
1.59 |
| 17-Jan-2003 |
thorpej | Merge the nathanw_sa branch.
|
1.58 |
| 30-May-2001 |
mrg | branches: 1.58.4; use _KERNEL_OPT
|
1.57 |
| 27-May-2001 |
sommerfeld | 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.56 |
| 28-Apr-2001 |
thorpej | Add a microtime() implementation that interpolates between ticks using the cycle counter. MP-safeness is achieved by giving each CPU its own PCC frequency variables, and kicking the non-primary processors via an IPI once per second.
Based on the sample code from David Mills' "A Kernel Model for Precision Timekeeping".
|
1.55 |
| 26-Apr-2001 |
ross | o IEEE 754 floating-point completion code. o Implement the architected FP_C "Floating Point Control Quadword"
|
1.54 |
| 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.53 |
| 20-Apr-2001 |
thorpej | Eliminate race conditions in the FP-switch code. MP kernels get much further on the way to multi-user now.
|
1.52 |
| 27-Feb-2001 |
mjacob | branches: 1.52.2; revert previous commit while the longbeards ponder
|
1.51 |
| 27-Feb-2001 |
mjacob | Remove cpu_wait #define because it's now prototyped in <sys/proc.h> which means it has to really exist.
|
1.50 |
| 19-Jan-2001 |
thorpej | Make ASTs per-process.
|
1.49 |
| 13-Dec-2000 |
mycroft | Oops; add PROC_PC().
|
1.48 |
| 22-Nov-2000 |
thorpej | 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.47 |
| 20-Nov-2000 |
thorpej | Make ci_ipis volatile.
|
1.46 |
| 25-Aug-2000 |
thorpej | Make need_resched() take a "struct cpu_info *" argument. This causes gives a primitive form of processor affinity. Its use in roundrobin() still needs some work.
|
1.45 |
| 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.44 |
| 08-Jun-2000 |
thorpej | And more ANSI'ification!
|
1.43 |
| 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.42 |
| 04-Jun-2000 |
thorpej | Increment an interrupt depth counter in non-clock interrupt cases so that we can get time spent in interrupt statistics.
|
1.41 |
| 03-Jun-2000 |
thorpej | - Clean up clock interrupt code a bit, and provide a CPU_IS_PRIMARY() macro in the MULTIPROCESSOR case (hardclock() wants it). - Implement __GENERIC_SOFT_INTERRUPTS, and redefine the legacy software interrupts in terms of it. Garbage-collect setsoftserial().
|
1.40 |
| 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.39 |
| 26-May-2000 |
thorpej | branches: 1.39.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.38 |
| 03-Apr-2000 |
thorpej | Print any architecture extensions present on the primary CPU.
|
1.37 |
| 29-Feb-2000 |
thorpej | Put machine check info in cpu_info in the multiprocessor case, and just have one statically allocate machine check info structure in the single processor config case.
|
1.36 |
| 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.35 |
| 17-Sep-1999 |
thorpej | branches: 1.35.2; 1.35.8; Centralize the declaration and clearing of `cold'.
|
1.34 |
| 16-Aug-1999 |
thorpej | Pull in <machine/alpha_cpu.h>.
|
1.33 |
| 15-Aug-1999 |
thorpej | Protect userland from the vast majority of this file.
|
1.32 |
| 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.31 |
| 10-Aug-1999 |
thorpej | Define cpu_number() as discussed on tech-smp.
|
1.30 |
| 19-Nov-1998 |
ross | Rip out 70 lines of (all of) the port-alpha-specific decls and prototypes. They should not be visible to the MI kernel and the MI kernel shouldn't depend on this junk. Most of it moves to new module <machine/alpha.h>.
Leave badaddr() here, though, because it's used so widely.
|
1.29 |
| 11-Nov-1998 |
thorpej | Changes to support fork_kthread(): - cpu_set_kpc() now takes void *arg third argument, passed to the entry point. - cpu_fork() allows parent to be non-curproc iff parent is proc0. When forking non-curproc, assume its state has already been saved. - Adjust various pieces of machine-dependent code to account of all of this.
|
1.28 |
| 07-Oct-1998 |
thorpej | Oops, back out a buglet I didn't intend to commit in the last change.
|
1.27 |
| 06-Oct-1998 |
thorpej | configure() prototype is in <sys/device.h>
|
1.26 |
| 29-Sep-1998 |
thorpej | Prototype cpu_halt_secondary().
|
1.25 |
| 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.24 |
| 13-Jul-1998 |
ross | Kill the old extern mchkinfo pointer and prototype cpu_mchkinfo(). This file has been collecting prototypes and other things used in the MD code...that's bad...because this is exported to the MI kernel.
|
1.23 |
| 08-Jul-1998 |
mjacob | stale beer- place structure in right file
|
1.22 |
| 08-Jul-1998 |
mjacob | Add machine check type definitions. Structure the expected/received machine check items.
|
1.21 |
| 16-Feb-1998 |
thorpej | Add support for non-contiguous physical memory, using MACHINE_NEW_NONCONTIG. These changes also recover memory that is located before the kernel in the first system software segment on systems which do not use the PROM for console I/O. Written by Chris Demetriou and myself.
|
1.20 |
| 13-Feb-1998 |
cgd | Clean up kernel initialization. Use the bootinfo structure (or innate knowledge) earlier, and gather all information needed earlier. Mark the init code carefully re: when it can print stuff out, when it can expect the firmware to stop working, etc. Be more careful about using the PROM console and other PROM facilities, and hint that in the future all use of firmware/boot program callbacks by the kernel should go away (since the world may not be mapped the way the firmware/boot program wants!).
|
1.19 |
| 12-Feb-1998 |
cgd | clean up the way bootinfo information is passed and used: move the version number passed by the boot block into a register, change the kernel's bootinfo handing so that it always uses bootinfo to get bootinfo-ish values (filling them in if the boot blocks didn't pass them), and make versioning a small bit more sane.
|
1.18 |
| 23-Sep-1997 |
mjacob | Redo the platform specific identification and initialization, making it more explicit where platform specific functions (like machine check handling) should go.
|
1.17 |
| 25-Jul-1997 |
thorpej | branches: 1.17.2; Update alpha_init() prototype; takes two more args.
|
1.16 |
| 06-Apr-1997 |
cgd | clean up NetBSD RCS ID strings
|
1.15 |
| 24-Jan-1997 |
cgd | astpending and want_resched are kernel-only
|
1.14 |
| 07-Dec-1996 |
cgd | add a "machdep.booted_kernel" sysctl, which is the name of the booted kernel as supplied by the SRM console's BOOTED_FILE variable.
|
1.13 |
| 13-Nov-1996 |
cgd | branches: 1.13.2; compile cleanly with: -Werror -Wall -Wstrict-prototypes -Wmissing-prototypes -Wcast-qual
|
1.12 |
| 14-Jul-1996 |
cgd | (1) Add unaligned access fixup code to fix unaligned quad, long, and IEEE S and T floating datum loads and stores. VAX floating data types not yet supported, and in the future will only be supported if FIX_UNALIGNED_VAX_FP is defined. (No point in wasting the space when most of the time there will never be VAX FP loads and stores.) Right now, these features can be controlled only by sysctl. The (boolean) integer sysctls machdep.unaligned_print, machdep.unaligned_fix, and machdep.unaligned_sigbus control printing about unaligned accesses (defaults on), fixing up of unaligned accesses (defaults on), and forcing a SIGBUS on unaligned accesses (defaults off). If an access is not fixed up (for lack of method or explicit decision), a SIGBUS is always generated to keep programs from using bogus data. At some point, these three choices should be controlled by per-process flags, as well.
|
1.11 |
| 11-Jul-1996 |
cgd | Instead of treating the trap/syscall/exception frame like a struct containing a substruct (the hardware frame) and an array of registers, treat it like one big array of registers, for easier and prettier access. Update everything to deal with that.
|
1.10 |
| 11-Jul-1996 |
cgd | update to use new definitions in alpha_cpu.h
|
1.9 |
| 09-Jul-1996 |
cgd | various cleanup, move setsoft* and spl* into intr.h.
|
1.8 |
| 14-Jun-1996 |
cgd | add a new machine-dependent sysctl, machdep.root_device, which is the (string) name of the root device. It's a string so that it can be used before dev_mkdb has been run.
|
1.7 |
| 21-Dec-1995 |
mycroft | branches: 1.7.4; Remove deprecated cpu_setstack().
|
1.6 |
| 28-Jun-1995 |
cgd | remove unused cpu_exec() definitions. moved "broken swap" markers, for ports that still need it, to types.h.
|
1.5 |
| 28-Jun-1995 |
cgd | update for various (old) NetBSD changes
|
1.4 |
| 05-May-1995 |
cgd | define BROKEN_SWAP and/or cpu_swapout as appropriate.
|
1.3 |
| 22-Apr-1995 |
christos | - added sunos_machdep.c for sun3, atari, amiga and mac68k. - changed machdep.c and trap.c to use struct emul. - remove ep_setup references. - added struct emul to all emulations.
|
1.2 |
| 24-Mar-1995 |
cgd | remove support for double-mapping the user area/kernel stack
|
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.7.4.1 |
| 14-Jun-1996 |
cgd | pull up from trunk: >add a new machine-dependent sysctl, machdep.root_device, which is the >(string) name of the root device. It's a string so that it can >be used before dev_mkdb has been run.
|
1.13.2.4 |
| 12-Aug-1997 |
cgd | sync with -current as of August 11, 1997
|
1.13.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.13.2.2 |
| 24-Jan-1997 |
cgd | sync with trunk
|
1.13.2.1 |
| 07-Dec-1996 |
cgd | mostly sync with changes on the trunk
|
1.17.2.1 |
| 29-Sep-1997 |
thorpej | Update marc-pcmcia branch from trunk.
|
1.35.8.1 |
| 27-Dec-1999 |
wrstuden | Pull up to last week's -current.
|
1.35.2.7 |
| 23-Apr-2001 |
bouyer | Sync with HEAD.
|
1.35.2.6 |
| 11-Feb-2001 |
bouyer | Sync with HEAD.
|
1.35.2.5 |
| 13-Dec-2000 |
bouyer | Sync with HEAD (for UBC fixes).
|
1.35.2.4 |
| 13-Dec-2000 |
bouyer | Sync with HEAD (for UBC fixes)
|
1.35.2.3 |
| 08-Dec-2000 |
bouyer | Sync with HEAD.
|
1.35.2.2 |
| 22-Nov-2000 |
bouyer | Sync with HEAD.
|
1.35.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.39.2.1 |
| 22-Jun-2000 |
minoura | Sync w/ netbsd-1-5-base.
|
1.52.2.1 |
| 21-Jun-2001 |
nathanw | Catch up to -current.
|
1.58.4.4 |
| 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.58.4.3 |
| 08-Dec-2001 |
thorpej | Add a cpu_proc_fork(), called from uvm_proc_fork(), which takes care of machine-dependent handling a fork() time (this is different from forking the actual context in an LWP world). #define it away on platforms which do not need it.
Problem noted by Gregory McGarry.
|
1.58.4.2 |
| 30-Aug-2001 |
nathanw | First cut at LWP and SA support on the alpha. Doesn't break in ordinary multiuser mode; LWPs and SAs not yet tested.
|
1.58.4.1 |
| 30-May-2001 |
nathanw | file cpu.h was added on branch nathanw_sa on 2001-08-30 23:43:43 +0000
|
1.60.2.4 |
| 24-Sep-2004 |
skrll | Sync with HEAD.
|
1.60.2.3 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.60.2.2 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.60.2.1 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.63.12.4 |
| 17-Mar-2008 |
yamt | sync with head.
|
1.63.12.3 |
| 03-Sep-2007 |
yamt | sync with head.
|
1.63.12.2 |
| 26-Feb-2007 |
yamt | sync with head.
|
1.63.12.1 |
| 21-Jun-2006 |
yamt | sync with head.
|
1.65.20.1 |
| 11-Jan-2007 |
ad | Checkpoint work in progress.
|
1.67.14.2 |
| 03-Oct-2007 |
garbled | Sync with HEAD
|
1.67.14.1 |
| 22-May-2007 |
matt | Update to HEAD.
|
1.67.12.1 |
| 18-Apr-2007 |
thorpej | Convert to the new atomic op API.
|
1.67.8.1 |
| 11-Jul-2007 |
mjf | Sync with head.
|
1.67.6.2 |
| 20-Aug-2007 |
ad | Sync with HEAD.
|
1.67.6.1 |
| 27-May-2007 |
ad | Sync with head.
|
1.67.2.1 |
| 20-Mar-2007 |
yamt | adapt alpha.
|
1.70.4.1 |
| 15-Aug-2007 |
skrll | Sync with HEAD.
|
1.70.2.1 |
| 07-Aug-2007 |
matt | Sync with HEAD.
|
1.71.6.2 |
| 23-Mar-2008 |
matt | sync with HEAD
|
1.71.6.1 |
| 06-Nov-2007 |
matt | sync with HEAD
|
1.72.16.2 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
1.72.16.1 |
| 03-Apr-2008 |
mjf | Sync with HEAD.
|
1.72.12.1 |
| 24-Mar-2008 |
keiichi | sync with head.
|
1.73.4.1 |
| 16-May-2008 |
yamt | sync with head.
|
1.73.2.1 |
| 18-May-2008 |
yamt | sync with head.
|
1.74.22.1 |
| 05-Mar-2011 |
rmind | sync with head
|
1.75.4.1 |
| 17-Feb-2011 |
bouyer | Sync with HEAD
|
1.75.2.1 |
| 06-Jun-2011 |
jruoho | Sync with HEAD.
|
1.76.2.1 |
| 23-Jun-2011 |
cherry | Catchup with rmind-uvmplock merge.
|
1.77.6.1 |
| 18-Feb-2012 |
mrg | merge to -current.
|
1.77.2.2 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.77.2.1 |
| 17-Apr-2012 |
yamt | sync with head
|
1.78.10.1 |
| 18-May-2014 |
rmind | sync with head
|
1.78.6.2 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.78.6.1 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.82.10.1 |
| 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
1.82.6.1 |
| 05-Feb-2017 |
skrll | Sync with HEAD
|
1.83.16.2 |
| 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.83.16.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.83.14.1 |
| 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.99.4.1 |
| 17-Apr-2021 |
thorpej | Sync with HEAD.
|
1.101.2.1 |
| 01-Aug-2021 |
thorpej | Sync with HEAD.
|