Commit Graph

136 Commits

Author SHA1 Message Date
martin
da4e67accc Do not export __HAVE_RAS to userland. Applications are supposed to try
rasctl() and detect failure with EOPNOTSUPP.
2004-01-18 18:23:19 +00:00
jonathan
abb59e6f0c Add support for opencrypto, PCI accelerators to sys/arch/*/conf/GENERIC
files for machines I know to have genuine PCI slots.  As sent to tech-kern
for feedback in December 2003. Based on feedback, opencrypto is commented
out in the macppc GENERIC (due to absense of GENERIC_SOFTINT support),
and added to the sparc64 config (sys/arch/sparc64/conf/GENERIC32).
2004-01-14 22:29:03 +00:00
yamt
7246e2cc80 issue memory read barrier for BUS_DMASYNC_POSTREAD operation.
PR/21665 from Stephan Uphoff.
2004-01-14 11:31:55 +00:00
jdolecek
0ee51a3dec finish previous (removal of 'reaper' kernel thread):
* move tss_free() call to the new cpu_lwp_free()
* g/c cpu_wait()

fixes PR kern/24067 by Nicolas Joly
2004-01-12 14:31:46 +00:00
jdolecek
089abdad44 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
2004-01-04 11:33:29 +00:00
pk
70f20a1217 Replace the traditional buffer memory management -- based on fixed per buffer
virtual memory reservation and a private pool of memory pages -- by a scheme
based on memory pools.

This allows better utilization of memory because buffers can now be allocated
with a granularity finer than the system's native page size (useful for
filesystems with e.g. 1k or 2k fragment sizes).  It also avoids fragmentation
of virtual to physical memory mappings (due to the former fixed virtual
address reservation) resulting in better utilization of MMU resources on some
platforms.  Finally, the scheme is more flexible by allowing run-time decisions
on the amount of memory to be used for buffers.

On the other hand, the effectiveness of the LRU queue for buffer recycling
may be somewhat reduced compared to the traditional method since, due to the
nature of the pool based memory allocation, the actual least recently used
buffer may release its memory to a pool different from the one needed by a
newly allocated buffer. However, this effect will kick in only if the
system is under memory pressure.
2003-12-30 12:33:13 +00:00
thorpej
2f2ca9e66b Split the Intel i31244 SATA controller ("Artisea") driver out of piixide
into its own driver (artsata).
2003-12-14 01:32:01 +00:00
thorpej
98f7d12017 Split out the Silicon Image SATALink support into its own driver,
"satalink".
2003-12-13 23:13:40 +00:00
jmc
695a2a2f9f Change reference at bottom from sys/dev/majors to sys/conf/majors to match
reality
2003-12-10 02:04:00 +00:00
fvdl
e16473e240 Segment registers are only 16 bits wide, so only check 16 bits worth of
them for validity in check_mcontext.
2003-12-06 17:35:44 +00:00
atatat
13f8d2ce5f Dynamic sysctl.
Gone are the old kern_sysctl(), cpu_sysctl(), hw_sysctl(),
vfs_sysctl(), etc, routines, along with sysctl_int() et al.  Now all
nodes are registered with the tree, and nodes can be added (or
removed) easily, and I/O to and from the tree is handled generically.

Since the nodes are registered with the tree, the mapping from name to
number (and back again) can now be discovered, instead of having to be
hard coded.  Adding new nodes to the tree is likewise much simpler --
the new infrastructure handles almost all the work for simple types,
and just about anything else can be done with a small helper function.

All existing nodes are where they were before (numerically speaking),
so all existing consumers of sysctl information should notice no
difference.

PS - I'm sorry, but there's a distinct lack of documentation at the
moment.  I'm working on sysctl(3/8/9) right now, and I promise to
watch out for buses.
2003-12-04 19:38:21 +00:00
keihan
29c72c57f0 netbsd.org -> NetBSD.org
All "netbsd.org" is now gone from src/sys/arch.
2003-12-04 13:05:15 +00:00
fvdl
c7242676d3 Don't use an alternate stack for the trace/breakpoint trap. It can be
called from userspace, and that messes things up.

Thanks to Mark Kettenis to pointing out that not using an alt stack
solved the "loop on gdb sig continuation" issue.
2003-12-01 00:00:07 +00:00
fvdl
22bb1f01c7 Reenable interrupts sooner in the idle_exit case. 2003-11-30 23:58:51 +00:00
fvdl
d8ec3cb507 Keep mxcsr and mxcsr_mask across the fake init in process_read_fpregs.
From Mark Kettenis.
2003-11-30 12:59:30 +00:00
fvdl
ebc6dbad07 Define the mcount function in assembler, and have it save all registers
used for argument passing, plus %rax (used to pass the number of float
arguments to varargs functions), to avoid having it clobber caller-saved
registers. mcount is emitted "under the radar", so the compiler doesn't
know it should do this.

Change the kernel mcount entry/exit macros to use plain cli/sti, like on i386.
2003-11-28 23:22:45 +00:00
christos
a21fdf3b43 bye, bye _MCONTEXT_TO_SIGCONTEXT and vice versa. 2003-11-25 23:11:52 +00:00
fvdl
6f7ba6556b Add and enable sk/skc drivers. 2003-11-22 14:20:47 +00:00
wiz
ee1b406595 Spell address with two d's. Inspired by similar changes in OpenBSD,
originating from Jonathon Gray and forwarded by jmc@openbsd.
2003-11-10 08:51:51 +00:00
fvdl
0a3fa4cdb1 Trim ramdisk and remove some unneeded options. 2003-11-10 00:52:28 +00:00
fvdl
f601ca945b Add POSIX 1003.1b semaphores. 2003-11-08 21:38:18 +00:00
fvdl
664bce39ae Remove extraneous ( 2003-11-05 13:58:00 +00:00
fvdl
51c222e5a2 Add igphy. 2003-11-05 13:51:29 +00:00
dsl
2ffbd2ab99 Remove p_nras from struct proc - use LIST_EMPTY(&p->p_raslist) instead.
Remove p_raslock and rename p_lwplock p_lock (one lock is enough).
Simplify window test when adding a ras and correct test on VM_MAXUSER_ADDRESS.
Avoid unpredictable branch in i386 locore.S
(pad fields left in struct proc to avoid kernel bump)
2003-11-04 10:33:15 +00:00
cl
ef56cc40ab Reduce code duplication by adding mi_userret() in sys/userret.h
containing signal posting, kernel-exit handling and sa_upcall processing.

XXX the pc532, sparc, sparc64 and vax ports should have their
XXX userret() code rearranged to use this.
2003-10-31 16:44:34 +00:00
simonb
6d85c5e0d5 Don't pass the (unused) return value args to the
trace_enter()/systrace_enter() functions.
2003-10-31 03:28:12 +00:00
fvdl
0e7c77bbd4 Add ahd, bce, ataraid 2003-10-25 20:41:36 +00:00
fvdl
d0d0179583 Add ahd, bce, ataraid. 2003-10-25 20:26:54 +00:00
fvdl
b9d0173421 Call check_mcontext to validate a register set passed in by ptrace. 2003-10-23 17:45:14 +00:00
fvdl
118d6961e7 Add auvia. 2003-10-23 01:14:43 +00:00
fvdl
878ae8047e Remove use of NULL as an integer value. 2003-10-22 22:51:36 +00:00
jdolecek
958d4a6d68 add kttcp major 2003-10-22 17:12:54 +00:00
jdolecek
51c4eb4597 add majors for mly, dpti, dpt, twe, joy, radio, cir 2003-10-22 17:08:13 +00:00
jdolecek
ee510816af add wsfont major to archs which have the other wscons devices 2003-10-22 16:53:22 +00:00
kleink
5d1a2f48d2 Use a common <machine/math.h> for amd64 and i386. 2003-10-22 11:54:23 +00:00
fvdl
80d06975ab Fix int vs. NULL comparison. 2003-10-21 01:45:25 +00:00
fvdl
a7ee73261e Correct argument to preempt(). 2003-10-21 00:46:09 +00:00
fvdl
e9ee9a82c7 Don't use err and trapno from a copied in mcontext. 2003-10-19 18:14:42 +00:00
cl
ed9c2d7075 don't uvm_swapout LWPs which are LSONPROC on another cpu.
uvm_swapout_threads will swapout LWPs which are running on another CPU:
- uvm_swapout_threads considers LWPs running on another CPU for swapout
  if their l_swtime is high
- uvm_swapout_threads considers LWPs on the runqueue for swapout if their
  l_swtime is high but these LWPs might be running by the time uvm_swapout
  is called

symptoms of failure: panic in setrunqueue

fixes PR kern/23095
2003-10-19 17:45:35 +00:00
briggs
1c36c6dcdb Add SIGTRAMP_VALID(). 2003-10-18 18:34:09 +00:00
lukem
7d84b90c92 Use one 'atabus* at ata?' instead of multiple 'atabus* at FOOide? channel ?'
Use  'atapibus* at atapi?'  instead of  'atapibus* at atabus?'
2003-10-18 08:30:12 +00:00
fvdl
c8c91c50dd Correct VM_MAXUSER_ADDRESS definitions, it was wasting a few pages. 2003-10-17 20:27:00 +00:00
fvdl
5b12e0425d Put the ucontext pointer in %r15 for signal delivery, so that it is
saved across the handler call.
2003-10-17 16:24:31 +00:00
jdolecek
6b5eef9a33 add major for nsmb, at #98 to be in sync with i386 2003-10-15 18:27:20 +00:00
drochner
ecbadcc56c fix typo (harmless as long as pmap_update() is a noop) 2003-10-15 09:44:55 +00:00
fvdl
14cdf7ae6d Proper checks for kmem reads beyond _end 2003-10-14 22:33:29 +00:00
fvdl
8639708413 Pass the right argument pointer to trace_enter/trace_exit. 2003-10-14 18:54:34 +00:00
fvdl
759027f9ca Define a 32bit compat version of the siginfo sendsig, and rename the
old one to reflect it's COMPAT_16 status.
2003-10-13 18:47:10 +00:00
fvdl
6781db3e2a Do checks on passed in context values (sigreturn/setcontext) explicitly;
can't rely on catching the trap on iret for a few reasons.
2003-10-13 18:45:59 +00:00
fvdl
0deb20a334 Define 32bit versions of signal frames and contexts. 2003-10-13 18:41:11 +00:00