Home | History | Annotate | Download | only in include
History log of /src/sys/arch/vax/include/cpu.h
RevisionDateAuthorComments
 1.108  19-Dec-2023  kalvisd vax: PR port-vax/55415

Remove VAX-specific workaround to force pre-emption, as it is now
no longer needed.

tested by oster@
 1.107  10-Sep-2023  oster With the overhaul of the scheduler code the semantics of
ci_want_resched have changed, and for some reason vax
still requires ci_want_resched set to 1 in order to do
preemption. This commit contains a workaround for the
preemption issued discussed in PR#55415.

XXX pullup-10
 1.106  11-Dec-2022  oster branches: 1.106.2;

Support save/restore of AST levels in the PCB for context switching.

Code written by ragge@ , tested by oster@.
 1.105  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.104  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.103  23-Nov-2019  ad cpu_need_resched():

- Remove all code that should be MI, leaving the bare minimum under arch/.
- Make the required actions very explicit.
- Pass in LWP pointer for convenience.
- When a trap is required on another CPU, have the IPI set it locally.
- Expunge cpu_did_resched().
 1.102  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.101  16-Jun-2017  jdolecek branches: 1.101.4; 1.101.6;
dumpconf(void) long doesn't exist, remove the prototype

PR kern/39714 by Henning Petersen
 1.100  22-May-2017  ragge Update copyright notice for Ludd (remove clause 3 & 4).
 1.99  19-May-2014  rmind branches: 1.99.4;
Implement MI IPI interface with cross-call support.
 1.98  10-Nov-2013  christos branches: 1.98.2;
use __unused instead of __USE and void cast to mark iterator variable unused
where needed (from phone)
 1.97  09-Nov-2013  christos __USE cii
 1.96  19-Oct-2013  christos make cpu_need_resched() macros consistent; __USE flags
 1.95  27-Oct-2012  chs branches: 1.95.2;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.94  27-Feb-2012  matt branches: 1.94.2;
Change cpu_idle to be an inline which sets IPL to 1 and then back to 0
so simh can recognize the kernel is idle.
 1.93  05-Jun-2011  matt branches: 1.93.2; 1.93.6; 1.93.8;
device_t, cfdata_t, etc.
CFATTACH_DECL -> CFATTACH_DECL_NEW for sizeof(struct device).
 1.92  14-Apr-2011  matt branches: 1.92.2;
Support LWP_PC
 1.91  14-Dec-2010  matt branches: 1.91.2;
Switch to use <sys/device_if.h>
 1.90  13-Nov-2010  matt Implement CAS using a RAS for non-MP VAX systems. This technique uses the
atomicity of indirect addressing for correctness. It also uses the knowledge
of dereferencing an address outside the page table length will cause a PTELEN
trap. [Tested on netbsd-5]
 1.89  01-Jul-2010  ragge A big bunch of bugfixes from Johnny Billquist. Highlights:
- Makes the VAX8600 work as expected (500kg of hardware :-)
- Fix a hard-tracked bug causing VAXen to hang at splhigh.
 1.88  22-Jun-2010  rmind Implement high priority (XC_HIGHPRI) xcall(9) mechanism - a facility
to execute functions from software interrupt context, at SOFTINT_CLOCK.
Functions must be lightweight. Will be used for passive serialization.

OK ad@.
 1.87  12-Dec-2009  tsutsui branches: 1.87.2; 1.87.4;
Remove `volatile' qualifier from argument types of
struct timeval passed to todr_gettime(9) and todr_settime(9).
We no longer have an ancient and volatile struct timeval `time'
global since we have switched to MI timercounter(9) on all port.

XXX1: some of these RTC drivers still assume 32bit time_t
XXX2: some of these should be rewritten to use todr_[gs]ettime_ymdhms()
XXX3: todr(9) man page doesn't mention todr_[gs]ettime_ymdhms()
 1.86  24-Oct-2009  rmind Provide cpu_lwp_free* stubs in vax and powerpc.
Reported by <he>.
 1.85  11-Mar-2008  matt branches: 1.85.4; 1.85.14;
Rototill the vax code. Switch to devicet/PRIV_ALLOC. Cleanup vax autoconf
code. Move to prototype definitions. staticfy, constify, avoid casting.
Use device_* accessors.
 1.84  27-Feb-2008  xtraeme Remove CTL_MACHDEP_NAMES, it's not used anywhere.

Ok by martin@.
 1.83  23-Feb-2008  matt A number of performance changes:
Change internal register SSP to contain curlwp insread curcpu(). This
shrinks the GENERIC by 2KB.
Add rwlock stubs (rw_enter, rw_exit, rw_tryenter).
Simplify simple lock code for uniprocessors.
Do SPL raise/lower in cpu_handle_ipi instead of simple_locks.
 1.82  20-Feb-2008  matt branches: 1.82.2; 1.82.6;
Make NetBSD/vax work again. Add support for __HAVE_FAST_SOFTINTS.
Add a few small optimizations.
 1.81  03-Feb-2008  matt Add cpu_intr_p (checks PSL_IS in PSL).
Change badaddr to take a volatile pointer
 1.80  05-Jan-2008  ad Don't need sys/lock.h
 1.79  17-Oct-2007  garbled branches: 1.79.2; 1.79.8;
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.78  01-Oct-2007  ad ci_need_resched -> ci_want_resched
 1.77  17-May-2007  yamt branches: 1.77.8; 1.77.10; 1.77.12;
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.76  04-Mar-2007  christos branches: 1.76.2; 1.76.4; 1.76.10;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.75  16-Feb-2007  matt branches: 1.75.2;
Partially adapt the VAX port to the newlock2 changes. These are untested
but they do at least compile.
 1.74  05-Sep-2006  matt Switch VAX over to generic TODR
 1.73  28-Mar-2006  thorpej Add a comment indicating that the cpuid (derived from the autoconfiguration
unit number of the CPU) should be cached in the cpu_info.
 1.72  11-Dec-2005  christos branches: 1.72.4; 1.72.6; 1.72.8; 1.72.10; 1.72.12;
merge ktrace-lwp.
 1.71  20-Jul-2005  he Fixes to make GENERIC.MP build again. Several changes:
o Rename global variable "tramp" to "vax_mp_tramp" to avoid warning
with -Wshadow when compiling the signal code.
o Rename a macro-local variable _s to __s in __cpu_simple_lock()
to avoid -Wshadow warning when MALLOC() is used (also declares _s).
o Follow up -Wcast-qual by making a number of function arguments const char*
where string literals are used.
 1.70  22-Sep-2004  yamt branches: 1.70.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.69  19-Mar-2004  matt Add CPU_INFO_INTERATOR/FOREACH support.
 1.68  22-Jan-2004  matt Add #define cpu_lwp_free do { } while (/*CONSTCOND*/0)
(VAX systems don't need to do anything in cpu_lwp_free)
 1.67  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.66  01-Mar-2003  matt branches: 1.66.2;
Add machdep sysctl support. Support booted_device, consdev, and
printfataltraps.
 1.65  27-Feb-2003  matt Need to forward declare struct buf and struct pte for function prototypes.
 1.64  18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.63  06-Sep-2002  gehenna Merge the gehenna-devsw branch into the trunk.

This merge changes the device switch tables from static array to
dynamically generated by config(8).

- All device switches is defined as a constant structure in device drivers.

- The new grammer ``device-major'' is introduced to ``files''.

device-major <prefix> char <num> [block <num>] [<rules>]

- All device major numbers must be listed up in port dependent majors.<arch>
by using this grammer.

- Added the new naming convention.
The name of the device switch must be <prefix>_[bc]devsw for auto-generation
of device switch tables.

- The backward compatibility of loading block/character device
switch by LKM framework is broken. This is necessary to convert
from block/character device major to device name in runtime and vice versa.

- The restriction to assign device major by LKM is completely removed.
We don't need to reserve LKM entries for dynamic loading of device switch.

- In compile time, device major numbers list is packed into the kernel and
the LKM framework will refer it to assign device major number dynamically.
 1.62  10-Mar-2002  ragge branches: 1.62.4;
Major update of the vax pmap:
- Reinstall the "dynamic page table length" that was removed some
years ago.
- Limit the user page table submap to max 5% of available memory.
- Free the page table space when a process is swapped out.
- If the UPT submap runs out of space, throw away pmap mappings
using the same algorithm as for swapping processes.

As a result of this, 4MB machines are useable again and it's even possible
to compile a kernel for 2MB machines (but it will be slow... :-)

Still to do:
- Multiprocessor fixes.
- More profiling.
 1.61  14-Jun-2001  thorpej branches: 1.61.2; 1.61.8;
Don't need to prototype child_return() here, it's in <sys/proc.h>.
 1.60  04-Jun-2001  ragge Add rudimentary multiprocessor support for DDB.
 1.59  04-Jun-2001  ragge Add IPI_TBIA to flush the translation buffer.
 1.58  03-Jun-2001  ragge Break out the MP-dependent calls. Add definitions for the IPI functions.
 1.57  30-May-2001  mrg use _KERNEL_OPT
 1.56  29-May-2001  ragge Add ci_cpuid.
Change the CLKF_ macros because the idle loop is now running at IPL1.
 1.55  02-Dec-2000  ragge branches: 1.55.2;
Add prototype.
 1.54  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.53  26-Jul-2000  ragge Add badaddr() field.
 1.52  11-Jun-2000  ragge Allow printf's from slave CPUs by stealing the v_putc function.
Easier than expected because the printout lock is hold in the higher levels.
 1.51  10-Jun-2000  ragge Code to spin up other CPUs on a VAX 8200 system.
Haven't solved the printf() problem yet, though.
 1.50  02-Jun-2000  matt Move spl macros from <machine/param.h> to <machine/intr.h>
Fix botch on my part and make the IPL_* match reality on VAX.
Redefine spl macro using the symbolic IPL_ instead of being hardcoded.
Move schedsoftnet, schedsoftclock from <machine/cpu.h> to <machine/intr.h>
Add a _setsirr macro for schedsoft*.
Add softintr function and framework.
 1.49  31-May-2000  matt Eliminate booted_from. extern'ed booted_device (for raidframe). nothing
outside autoconf.c in sys/arch/vax needs to deal with booted_device).
 1.48  29-May-2000  ragge Use the cpu_info struct to store cpu-specific data in the same way in
both uniprocessor and multiprocessor environments. Use the otherwise
unused internal CPU register SSP to store the cpu_info pointer.
The macros curcpu(), curproc, cpu_number() and need_resched() are now the
same in both uniprocessor and multiprocessor environments.
 1.47  27-May-2000  ragge Rewrite cpu_fork(), it now looks like and works as other ports' cpu_fork()
(calling child_return() etc...). Have fun, Jason!
 1.46  27-May-2000  matt branches: 1.46.2;
This need <sys/sched.h> to compile.
 1.45  26-May-2000  thorpej 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  22-May-2000  matt Add prototype for findcpu in _STANDALONE.
 1.43  22-Apr-2000  ragge Ops, forgot to commit this.
 1.42  19-Mar-2000  ragge First cut of multiprocessor support for vax. Still much to do before
other CPUs than the master can spin up.
 1.41  21-Oct-1999  ragge Protect against multiple includes.
 1.40  17-Sep-1999  thorpej branches: 1.40.2; 1.40.4; 1.40.6;
Centralize the declaration and clearing of `cold'.
 1.39  10-Aug-1999  thorpej Define cpu_number() as discussed on tech-smp.
 1.38  07-Aug-1999  ragge Clean up all bus handling stuff, it has become a mess the latest years.
Add a new bus; "ibus" that is the internal MicroVAX bus.
 1.37  23-May-1999  ragge Better and more understandable way to find out CPU type.
 1.36  01-May-1999  ragge Real-time clock is started on the same way on all CPUs, there is no
need for a special CPU-dependent hook for this.
 1.35  17-Apr-1999  ragge Use "access_type" in pmap_enter() more intelligent.
Allocate device register space bigger than the logical page size
from the kernel map, thus decreasing the pre-allocated page table memory.
 1.34  02-Feb-1999  ragge branches: 1.34.4;
Another giant change: Allocate register space dynamic instead of compiled-in.
This is done on a physical page size basis, instead of virtual (as the
(on vax yet non-existing) bus_* routines does). This is similar to the
way uba allocation is done.
 1.33  19-Jan-1999  ragge Allocate (almost) all interrupt vectors dynamically. Simplifies much
work when adding support for new machines and devices.
 1.32  27-Oct-1998  matt Latent support for revamped "local bus" support.
 1.31  06-Oct-1998  thorpej configure() prototype is in <sys/device.h>
 1.30  05-Oct-1998  thorpej cpu_set_kpc() prototype is already in <sys/systm.h>.
 1.29  10-Aug-1998  ragge Basic support for VS4000/60.
 1.28  09-Jun-1998  ragge #ifdef _KERNEL whole this file.
 1.27  22-May-1998  ragge Remove unnecessary code for interrupt vector handling.
 1.26  13-Apr-1998  ragge Wall cleaning.
 1.25  02-Nov-1997  ragge Fix clearing of redundant restart flag; CPU specific.
Also clean up a bit.
 1.24  26-Jul-1997  ragge Actually do 'halt' or 'reboot' on MicroVAX.
 1.23  15-Mar-1997  ragge Add definitions for DEC HW device numbers.
 1.22  19-Feb-1997  ragge Basic change to cpu-config code. This will make support of new
cpu types much easier.
 1.21  12-Feb-1997  ragge Remove bogus prototypes.
 1.20  31-Jan-1997  thorpej branches: 1.20.4;
Update prototypes to match new calling convention of functions that
find the boot device.
 1.19  20-Jul-1996  ragge branches: 1.19.2;
Numerous changes to be able to put Bertram Barth's VAXstation support in.
(Some) Support for VAXstation 2000/MicroVAX 2000, VAXstation 3100/76.
 1.18  11-Jul-1996  ragge Automatic changing of root device after boot now works.
 1.17  19-May-1996  ragge Fixed all (proto)type errors. Fixes PR 2377.
 1.16  08-Apr-1996  ragge Added prototypes to everything. Made all files compile with -Wall.
 1.15  02-Mar-1996  ragge Changes due to 11/780 support. Raise splimp() to BR7.
 1.14  02-Feb-1996  mycroft Fix #includes.
 1.13  13-Dec-1995  ragge MicroVAX III support added.
 1.12  05-Jun-1995  ragge New file pcb.h. USRTEXT changed to 0x400.
 1.11  05-May-1995  ragge BROKEN_SWAP removed, swapping verified OK.
pmap_collect(pmap) added as null define.
 1.10  05-May-1995  ragge Removed cpu_set_init_frame() use.
Increased default limits of memory use, ridiculously small before.
 1.9  05-May-1995  cgd define BROKEN_SWAP and/or cpu_swapout as appropriate.
 1.8  03-May-1995  ragge mtpr support for 11/780 added. DELAY added. mcount() corrected.
trapframe fixed to support all registers.
 1.7  30-Mar-1995  ragge Some bug fixes & update of pcb.
 1.6  23-Feb-1995  ragge Def's for uVAXII added.
 1.5  13-Feb-1995  ragge Lots of fixes...
 1.4  25-Nov-1994  ragge Lots of updates & fixes.
 1.3  26-Oct-1994  cgd new RCS ID format.
 1.2  08-Oct-1994  ragge Changes to make files more 4.4/1.0B working.
 1.1  02-Aug-1994  ragge branches: 1.1.2;
Initial VAX port merging.
 1.1.2.2  02-Aug-1994  ragge Initial VAX port merging.
 1.1.2.1  02-Aug-1994  ragge file cpu.h was added on branch netbsd-1-0 on 1994-08-02 20:20:14 +0000
 1.19.2.1  14-Jan-1997  thorpej Snapshot of work-in-progress, committed to private branch.

These changes implement machine-independent root device and file system
selection. Notable features:

- All ports behave in a consistent manner regarding root
device selection.
- No more "options GENERIC"; all kernels have the ability
to boot with RB_ASKNAME to select root device and file system
type.
- Root file system type can be wildcarded; a machine-independent
function will try all possible file systems for the selected
root device until one succeeds.
- If the root file system fails to mount, the operator will
be given the chance to select a new root device and file
system type, rather than having the machine simply panic.
- nfs_mountroot() no longer panics if any part of the NFS
mount process fails; it now returns an error, giving the
operator a chance to recover.
- New, more consistent, config(8) grammar. The constructs:

config netbsd swap generic
config netbsd root on nfs

have been replaced with:

config netbsd root on ? type ?
config netbsd root on ? type nfs

Additionally, the operator may select or wildcard root file
system type in the kernel configuration file:

config netbsd root on cd0a type cd9660

config(8) now requires that a "root" specification be
made. "root" may be wired down or wildcarded. "swap" and
"dump" specifications are optional, and follow previous
semantics.

- config(8) has a new "file-system" keyword, used to configure
file systems into the kernel. Eventually, this will be used
to generate the default vfssw[].

- "options NFSCLIENT" is obsolete, and is replaced by
"file-system NFS". "options NFSSERVER" still exists, since
NFS server support is independent of the NFS file system
client.

- sys/arch/<foo>/<foo>/swapgeneric.c is no longer used, and
will be removed; all information is now generated by config(8).

As of this commit, all ports except arm32 have been updated to use
the new setroot(). Only SPARC, i386, and Alpha ports have been
tested at this time. Port masters should test these changes on their
ports, and report any problems back to me.

More changes are on their way, including RB_ASKNAME support in
nfs_mountroot() (to prompt for server address and path) and, potentially,
the ability to select rarp/bootparam or bootp in nfs_mountroot().
 1.20.4.1  12-Mar-1997  is Merge in changes from Trunk
 1.34.4.1  21-Jun-1999  thorpej Sync w/ -current.
 1.40.6.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.40.4.1  15-Nov-1999  fvdl Sync with -current
 1.40.2.2  08-Dec-2000  bouyer Sync with HEAD.
 1.40.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.46.2.1  22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.55.2.1  21-Jun-2001  nathanw Catch up to -current.
 1.61.8.5  17-Sep-2002  nathanw Catch up to -current.
 1.61.8.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.61.8.3  01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.61.8.2  29-Mar-2002  ragge Initial nathanw_sa kernel support for vax.
 1.61.8.1  14-Jun-2001  ragge file cpu.h was added on branch nathanw_sa on 2002-03-29 23:31:42 +0000
 1.61.2.2  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.61.2.1  16-Mar-2002  jdolecek Catch up with -current.
 1.62.4.1  19-May-2002  gehenna Remove unnecessary prototype.
 1.66.2.5  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.66.2.4  24-Sep-2004  skrll Sync with HEAD.
 1.66.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.66.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.66.2.1  03-Aug-2004  skrll Sync with HEAD
 1.70.12.9  17-Mar-2008  yamt sync with head.
 1.70.12.8  27-Feb-2008  yamt sync with head.
 1.70.12.7  04-Feb-2008  yamt sync with head.
 1.70.12.6  21-Jan-2008  yamt sync with head
 1.70.12.5  27-Oct-2007  yamt sync with head.
 1.70.12.4  03-Sep-2007  yamt sync with head.
 1.70.12.3  26-Feb-2007  yamt sync with head.
 1.70.12.2  30-Dec-2006  yamt sync with head.
 1.70.12.1  21-Jun-2006  yamt sync with head.
 1.72.12.1  31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.72.10.1  19-Apr-2006  elad sync with head - hopefully this will work
 1.72.8.2  14-Sep-2006  yamt sync with head.
 1.72.8.1  01-Apr-2006  yamt sync with head.
 1.72.6.1  22-Apr-2006  simonb Sync with head.
 1.72.4.1  09-Sep-2006  rpaulo sync with head
 1.75.2.3  07-Apr-2007  matt Remove ci_exit, remove idlepcb and exitstack.
 1.75.2.2  04-Apr-2007  matt Not quite functional idlelwp adaption for VAX. lwp fork works but the
kernel never seems to return/stay in usermode.
 1.75.2.1  12-Mar-2007  rmind Sync with HEAD.
 1.76.10.2  03-Oct-2007  garbled Sync with HEAD
 1.76.10.1  22-May-2007  matt Update to HEAD.
 1.76.4.1  11-Jul-2007  mjf Sync with head.
 1.76.2.2  09-Oct-2007  ad Sync with head.
 1.76.2.1  27-May-2007  ad Sync with head.
 1.77.12.1  07-Oct-2007  yamt sync with head.
 1.77.10.3  23-Mar-2008  matt sync with HEAD
 1.77.10.2  09-Jan-2008  matt sync with HEAD
 1.77.10.1  06-Nov-2007  matt sync with HEAD
 1.77.8.1  02-Oct-2007  joerg Sync with HEAD.
 1.79.8.1  08-Jan-2008  bouyer Sync with HEAD
 1.79.2.1  18-Feb-2008  mjf Sync with HEAD.
 1.82.6.1  03-Apr-2008  mjf Sync with HEAD.
 1.82.2.1  24-Mar-2008  keiichi sync with head.
 1.85.14.1  22-Aug-2012  bouyer Pull up following revision(s) (requested by abs in ticket #1780):
sys/arch/vax/include/cpu.h: revision 1.94 via patch
Change cpu_idle to be an inline which sets IPL to 1 and then back to 0
so simh can recognize the kernel is idle.
 1.85.4.2  11-Aug-2010  yamt sync with head.
 1.85.4.1  11-Mar-2010  yamt sync with head
 1.87.4.4  12-Jun-2011  rmind sync with head
 1.87.4.3  21-Apr-2011  rmind sync with head
 1.87.4.2  05-Mar-2011  rmind sync with head
 1.87.4.1  03-Jul-2010  rmind sync with head
 1.87.2.1  17-Aug-2010  uebayasi Sync with HEAD.
 1.91.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.92.2.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.93.8.1  12-Jul-2012  riz Pull up following revision(s) (requested by abs in ticket #407):
sys/arch/vax/include/cpu.h: revision 1.94
Change cpu_idle to be an inline which sets IPL to 1 and then back to 0
so simh can recognize the kernel is idle.
 1.93.6.3  06-Mar-2012  mrg sync to -current
 1.93.6.2  06-Mar-2012  mrg sync to -current
 1.93.6.1  04-Mar-2012  mrg sync to latest -current.
 1.93.2.3  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.93.2.2  30-Oct-2012  yamt sync with head
 1.93.2.1  17-Apr-2012  yamt sync with head
 1.94.2.3  03-Dec-2017  jdolecek update from HEAD
 1.94.2.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.94.2.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.95.2.1  18-May-2014  rmind sync with head
 1.98.2.1  10-Aug-2014  tls Rebase.
 1.99.4.1  28-Aug-2017  skrll Sync with HEAD
 1.101.6.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.101.6.1  10-Jun-2019  christos Sync with HEAD
 1.101.4.1  06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.106.2.2  19-Dec-2023  martin Pull up following revision(s) (requested by kalvisd in ticket #509):

sys/arch/vax/include/cpu.h: revision 1.108

vax: PR port-vax/55415

Remove VAX-specific workaround to force pre-emption, as it is now
no longer needed.

tested by oster@
 1.106.2.1  11-Sep-2023  martin Pull up following revision(s) (requested by oster in ticket #365):

sys/arch/vax/include/cpu.h: revision 1.107

With the overhaul of the scheduler code the semantics of
ci_want_resched have changed, and for some reason vax
still requires ci_want_resched set to 1 in order to do
preemption. This commit contains a workaround for the
preemption issued discussed in PR#55415.

RSS XML Feed