summaryrefslogtreecommitdiffstats
path: root/sys/ia64
Commit message (Collapse)AuthorAgeFilesLines
* oops. prepare_usermode() died in August 2000 in the MI and x86 code.peter2001-06-152-14/+0
| | | | Issue raised by: scottl
* Fix style of defines.obrien2001-06-091-97/+97
|
* Nuke the various poorly maintained copies of ioctl_fd.h. The file isjoerg2001-06-061-126/+0
| | | | | not machine-dependant, thus it has been moved out (repo-copied) into <sys/fdcio.h>.
* Don't hold sched_lock across addupc_task().jhb2001-06-061-1/+1
| | | | | Reported by: David Taylor <davidt@yadt.co.uk> Submitted by: bde
* Properly wrap mtx_intr_enable() macro in "do $bla while (0)"phk2001-06-021-1/+1
|
* Clean up the code exporting interrupt statistics via sysctl a bit:tmm2001-06-011-8/+0
| | | | | | | | | | | | | - move the sysctl code to kern_intr.c - do not use INTRCNT_COUNT, but rather eintrcnt - intrcnt to determine the length of the intrcnt array - move the declarations of intrnames, eintrnames, intrcnt and eintrcnt from machine-dependent include files to sys/interrupt.h - remove the hw.nintr sysctl, it is not needed. - fix various style bugs Requested by: bde Reviewed by: bde (some time ago)
* Catch up to the axeing of MFS and fix the ia64 build.jhb2001-05-301-1/+0
| | | | Forgotten by: a Danish axe-wielder
* - Catch up to the VM mutex changes.jhb2001-05-308-44/+51
| | | | - Sort includes in a few places.
* Remove MFS options from all example kernel configs.phk2001-05-291-1/+0
|
* - FDESC, FIFO, NULL, PORTAL, PROC, UMAP and UNION fileru2001-05-232-2/+2
| | | | | | | | | | | | | | | systems were repo-copied from sys/miscfs to sys/fs. - Renamed the following file systems and their modules: fdesc -> fdescfs, portal -> portalfs, union -> unionfs. - Renamed corresponding kernel options: FDESC -> FDESCFS, PORTAL -> PORTALFS, UNION -> UNIONFS. - Install header files for the above file systems. - Removed bogus -I${.CURDIR}/../../sys CFLAGS from userland Makefiles.
* Style changes -- revert ordering to mostly two revs ago.obrien2001-05-181-56/+54
| | | | | | Embellish some comments, fix tab'ing. Requested by: bde
* - Move the setting of bootverbose to a MI SI_SUB_TUNABLES SYSINIT.jhb2001-05-171-4/+0
| | | | | | | | - Attach a writable sysctl to bootverbose (debug.bootverbose) so it can be toggled after boot. - Move the printf of the version string to a SI_SUB_COPYRIGHT SYSINIT just afer the display of the copyright message instead of doing it by hand in three MD places.
* Consistently define the rune types.obrien2001-05-161-4/+19
| | | | Follow NetBSD's lead and add a _BSD_MBSTATE_T_ type.
* Move the int typedefs to the top so they can be used in defining other types.obrien2001-05-161-24/+24
| | | | | | Ensure every platform has __offsetof. Make multiple inclusion detection consistent with other <platform>/include/*.h files.
* Lock the procfs functions for doing a single step and reading/writingjhb2001-05-161-27/+16
| | | | | | registers better. Hold sched_lock not only for checking the flag but also while performing the actual operation to ensure the process doesn't get swapped out by another CPU while we the operation is being performed.
* "Sir, the deorbit burn completed succesfully."jhb2001-05-151-32/+0
| | | | RIP {sys/machine}/ipl.h.
* Remove unneeded includes of sys/ipl.h and machine/ipl.h.jhb2001-05-152-2/+0
|
* Convert DEVFS from an "opt-in" to an "opt-out" option.phk2001-05-131-1/+0
| | | | | | | | | If for some reason DEVFS is undesired, the "NODEVFS" option is needed now. Pending any significant issues, DEVFS will be made mandatory in -current on july 1st so that we can start reaping the full benefits of having it.
* Simplify the vm fault trap handling code a bit by using if-else instead ofjhb2001-05-111-11/+4
| | | | | duplicating code in the then case and then using a goto to jump around the else case.
* - Split out the support for per-CPU data from the SMP code. UP kernelsjhb2001-05-102-2/+2
| | | | | | | have per-CPU data and gdb on the i386 at least needs access to it. - Clean up includes in kern_idle.c and subr_smp.c. Reviewed by: jake
* Add include of sys/mutex.h and resort include of sys/lock.h.jhb2001-05-091-1/+2
|
* Add needed sys/lock.h include.jhb2001-05-091-0/+1
|
* Actually biofinish(struct bio *, struct devstat *, int error) is more generalphk2001-05-061-2/+1
| | | | | | than the bioerror(). Most of this patch is generated by scripts.
* Overhaul of the SMP code. Several portions of the SMP kernel support havejhb2001-04-279-348/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | been made machine independent and various other adjustments have been made to support Alpha SMP. - It splits the per-process portions of hardclock() and statclock() off into hardclock_process() and statclock_process() respectively. hardclock() and statclock() call the *_process() functions for the current process so that UP systems will run as before. For SMP systems, it is simply necessary to ensure that all other processors execute the *_process() functions when the main clock functions are triggered on one CPU by an interrupt. For the alpha 4100, clock interrupts are delievered in a staggered broadcast fashion, so we simply call hardclock/statclock on the boot CPU and call the *_process() functions on the secondaries. For x86, we call statclock and hardclock as usual and then call forward_hardclock/statclock in the MD code to send an IPI to cause the AP's to execute forwared_hardclock/statclock which then call the *_process() functions. - forward_signal() and forward_roundrobin() have been reworked to be MI and to involve less hackery. Now the cpu doing the forward sets any flags, etc. and sends a very simple IPI_AST to the other cpu(s). AST IPIs now just basically return so that they can execute ast() and don't bother with setting the astpending or needresched flags themselves. This also removes the loop in forward_signal() as sched_lock closes the race condition that the loop worked around. - need_resched(), resched_wanted() and clear_resched() have been changed to take a process to act on rather than assuming curproc so that they can be used to implement forward_roundrobin() as described above. - Various other SMP variables have been moved to a MI subr_smp.c and a new header sys/smp.h declares MI SMP variables and API's. The IPI API's from machine/ipl.h have moved to machine/smp.h which is included by sys/smp.h. - The globaldata_register() and globaldata_find() functions as well as the SLIST of globaldata structures has become MI and moved into subr_smp.c. Also, the globaldata list is only available if SMP support is compiled in. Reviewed by: jake, peter Looked over by: eivind
* When switching backing store during signal delivery, do the switch beforedfr2001-04-242-14/+16
| | | | | | creating the register frame for calling the handler. Also discard that frame before switching back to the old backing store after the handler returns.
* Align stack pointer and backing store pointer to 16 byte boundary whendfr2001-04-241-0/+5
| | | | delivering signals.
* Don't trash the user's pr on syscalls.dfr2001-04-242-2/+4
|
* Don't unwrap the function descriptor used as the callout argument todfr2001-04-191-7/+2
| | | | | fork_exit(). The MI version of fork_exit() needs a real function descriptor, not a simple function pointer.
* Don't take the Giant mutex for clock interrupts.dfr2001-04-191-2/+0
|
* Don't panic when we try to modify the kernel pmap.dfr2001-04-181-2/+2
|
* Print an approximation of the function arguments in the stack trace.dfr2001-04-181-10/+25
|
* Implement a simple stack trace for DDB. This will have to be redonedfr2001-04-183-11/+68
| | | | if/when we change to a more modern toolchain.
* Record the right value for tf_ndirty for kernel interruptions so thatdfr2001-04-182-6/+6
| | | | we can examine the interrupted register stack frame in DDB.
* Turn on kernel debugging support (DDB, INVARIANTS, INVARIANT_SUPPORT, WITNESS)obrien2001-04-151-1/+7
| | | | | | by default while SMPng is still being developed. Submitted by: jhb
* Rename the IPI API from smp_ipi_* to ipi_* since the smp_ prefix is justjhb2001-04-112-20/+20
| | | | | | "redundant noise" and to match the IPI constant namespace (IPI_*). Requested by: bde
* Reduce the emasculation of bounds_check_with_label() by one line, so weobrien2001-03-291-1/+1
| | | | propagate a bio error condition to the caller and above.
* Convert the allproc and proctree locks from lockmgr locks to sx locks.jhb2001-03-281-3/+5
|
* Rework the witness code to work with sx locks as well as mutexes.jhb2001-03-283-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Introduce lock classes and lock objects. Each lock class specifies a name and set of flags (or properties) shared by all locks of a given type. Currently there are three lock classes: spin mutexes, sleep mutexes, and sx locks. A lock object specifies properties of an additional lock along with a lock name and all of the extra stuff needed to make witness work with a given lock. This abstract lock stuff is defined in sys/lock.h. The lockmgr constants, types, and prototypes have been moved to sys/lockmgr.h. For temporary backwards compatability, sys/lock.h includes sys/lockmgr.h. - Replace proc->p_spinlocks with a per-CPU list, PCPU(spinlocks), of spin locks held. By making this per-cpu, we do not have to jump through magic hoops to deal with sched_lock changing ownership during context switches. - Replace proc->p_heldmtx, formerly a list of held sleep mutexes, with proc->p_sleeplocks, which is a list of held sleep locks including sleep mutexes and sx locks. - Add helper macros for logging lock events via the KTR_LOCK KTR logging level so that the log messages are consistent. - Add some new flags that can be passed to mtx_init(): - MTX_NOWITNESS - specifies that this lock should be ignored by witness. This is used for the mutex that blocks a sx lock for example. - MTX_QUIET - this is not new, but you can pass this to mtx_init() now and no events will be logged for this lock, so that one doesn't have to change all the individual mtx_lock/unlock() operations. - All lock objects maintain an initialized flag. Use this flag to export a mtx_initialized() macro that can be safely called from drivers. Also, we on longer walk the all_mtx list if MUTEX_DEBUG is defined as witness performs the corresponding checks using the initialized flag. - The lock order reversal messages have been improved to output slightly more accurate file and line numbers.
* Switch from save/disable/restore_intr() to critical_enter/exit().jhb2001-03-281-4/+3
|
* Catch up to the mtx_saveintr -> mtx_savecrit change.jhb2001-03-281-1/+1
|
* - Switch from using save/disable/restore_intr to using critical_enter/exitjhb2001-03-281-1/+1
| | | | | | | | | | | | | | | | | and change the u_int mtx_saveintr member of struct mtx to a critical_t mtx_savecrit. - On the alpha we no longer need a custom _get_spin_lock() macro to avoid an extra PAL call, so remove it. - Partially fix using mutexes with WITNESS in modules. Change all the _mtx_{un,}lock_{spin,}_flags() macros to accept explicit file and line parameters and rename them to use a prefix of two underscores. Inside of kern_mutex.c, generate wrapper functions for _mtx_{un,}lock_{spin,}_flags() (only using a prefix of one underscore) that are called from modules. The macros mtx_{un,}lock_{spin,}_flags() are mapped to the __mtx_* macros inside of the kernel to inline the usual case of mutex operations and map to the internal _mtx_* functions in the module case so that modules will use WITNESS and KTR logging if the kernel is compiled with support for it.
* - Add the new critical_t type used to save state inside of criticaljhb2001-03-282-9/+11
| | | | | | | | | sections. - Add implementations of the critical_enter() and critical_exit() functions and remove restore_intr() and save_intr(). - Remove the somewhat bogus disable_intr() and enable_intr() functions on the alpha as the alpha actually uses a priority level and not simple bit flag on the CPU.
* Send the remains (such as I have located) of "block major numbers" tophk2001-03-263-4/+0
| | | | the bit-bucket.
* Unbreak build on alpha.ume2001-03-241-3/+0
| | | | | | | - Move in_port_t to sys/types.h. - Nuke in_addr_t from each endian.h. Reported by: jhb
* - Define and use MAXCPU like the alpha and i386 instead of NCPUS.jhb2001-03-242-6/+10
| | | | | - Sort the sys/mutex.h include in mp_machdep.c into a closer to correct location.
* Stick a prototype for handleclock() in machine/clock.h and include itjhb2001-03-242-0/+2
| | | | interrupt.c to quiet a warning.
* Export intrnames and intrcnt as sysctls (hw.nintr, hw.intrnames andtmm2001-03-231-0/+2
| | | | | | hw.intrcnt). Approved by: rwatson
* Use a generic implementation of the Fowler/Noll/Vo hash (FNV hash).peter2001-03-171-1/+1
| | | | | | | | | | | | | | | | | Make the name cache hash as well as the nfsnode hash use it. As a special tweak, create an unsigned version of register_t. This allows us to use a special tweak for the 64 bit versions that significantly speeds up the i386 version (ie: int64 XOR int64 is slower than int64 XOR int32). The code layout is a little strange for the string function, but I was able to get between 5 to 10% improvement over the original version I started with. The layout affects gcc code generation choices and this way was fastest on x86 and alpha. Note that 'CPUTYPE=p3' etc makes a fair difference to this. It is around 45% faster with -march=pentiumpro on a p6 cpu.
* Allow the config file to specify a root filesystem filename.dfr2001-03-091-1/+6
|
* Adjust a comment slightly.dfr2001-03-091-2/+1
|
OpenPOWER on IntegriCloud