Commit Graph

1835 Commits

Author SHA1 Message Date
petrov
2f1de3c8b2 More on fbnode to prom_stdout_node rename. 2004-03-19 21:10:31 +00:00
pk
d6f1cac110 zs_console_flags: use prom_getoption(). 2004-03-19 15:42:46 +00:00
pk
7417e05ce6 Drop fbnode & stdinnode. 2004-03-19 15:31:04 +00:00
pk
af0050c56b Drop optionsnode, fbnode and stdinnnode. 2004-03-19 15:22:43 +00:00
pk
6c02638ef2 Sync with sparc: rename
stdinnode => prom_stdin_node,
	fbnode => prom_stdout_node.
2004-03-19 15:21:42 +00:00
pk
90dbcf4919 Use prom_getoptionsnode(). 2004-03-19 14:42:01 +00:00
pk
ea53363e84 Rename PROM_getprop*() => prom_getprop*(). 2004-03-17 17:04:58 +00:00
pk
fcac5c14aa Pass the buffer size to PROM_getpropstringA(), as in sparc. 2004-03-17 15:22:57 +00:00
pk
370bb883e5 Print the host Id in mainbus_attach() instead of clock_attach(). 2004-03-17 14:35:53 +00:00
pk
00aaee7ade Drop myetheraddr(); 2004-03-17 14:26:59 +00:00
pk
8512c4b642 Use prom_getoption() and drop home-grown string-to-integer conversion code. 2004-03-17 14:03:22 +00:00
pk
6c325ce299 ffb_attach: Use prom_getoption() and drop home-grown string-to-integer
conversion code.
2004-03-17 13:58:14 +00:00
pk
aafd051f4f For now, implement prom_getoption() in autoconf.c. 2004-03-16 23:05:45 +00:00
pk
9c0a7ff277 For now, implement prom_getidprom() and prom_getether() in autoconf.c 2004-03-16 13:14:34 +00:00
simonb
55965d25ad Use "#define<tab>" consistently. 2004-03-14 21:12:08 +00:00
chs
cec587ddf6 checkpoint of MP work from dennis and myself. includes cross-processor
interrupt framework, a sledgehammer TLB invalidation and misc MP fixes.
doesn't work at all yet.
2004-03-14 18:18:54 +00:00
cl
ea5ec0212d add kernel part of concurrency support for SA on MP systems
- move per VP data into struct sadata_vp referenced from l->l_savp
  * VP id
  * lock on VP data
  * LWP on VP
  * recently blocked LWP on VP
  * queue of LWPs woken which ran on this VP before sleep
  * faultaddr
  * LWP cache for upcalls
  * upcall queue
- add current concurrency and requested concurrency variables
- make process exit run LWP on all VPs
- make signal delivery consider all VPs
- make timer events consider all VPs
- add sa_newsavp to allocate new sadata_vp structure
- add sa_increaseconcurrency to prepare new VP
- make sys_sa_setconcurrency request new VP or wakeup idle VP
- make sa_yield lower current concurrency
- set sa_cpu = VP id in upcalls
- maintain cached LWPs per VP
2004-03-14 01:08:47 +00:00
drochner
9cd594d535 report SIGSEGV/SEGV_ACCERR if code execution on stack is attempted,
tested by Martin Husemann
2004-03-12 13:27:03 +00:00
petrov
b062992f9d Correct VA_ALIAS_MASK. From Chuck Silvers. 2004-02-26 20:24:29 +00:00
petrov
c8c8407406 Correct ffb attachment. 2004-02-26 20:23:17 +00:00
drochner
289fa68010 provide a definition NETBSD32_MID_MACHINE which tells for the a.out MID
to look for in 32-bit emulation
2004-02-20 16:11:44 +00:00
snj
d02c32fcce s/rediculous/ridiculous/ 2004-02-13 22:47:04 +00:00
wiz
d20841bb64 Uppercase CPU, plural is CPUs. 2004-02-13 11:36:08 +00:00
chs
3865de5a5a pmap_activate() on pmap_kernel() should be a no-op.
needed for now while exiting processes "borrow" vmspace0,
but it's reasonable to check anyway.
2004-02-12 03:25:48 +00:00
jdolecek
3eb13d5e8f whitespace police 2004-02-10 16:43:43 +00:00
petrov
e7595eb1ce For pci devices without ofw mapping find ino by pci bus/slot/device
information, from OpenBSD.
2004-01-21 07:16:07 +00:00
jdolecek
6c14651ea0 cleanup old lpt(4) attachment, and glue ppbus in so that they can coexist:
* lpt device is defined in MI place (dev/ppbus/files.ppbus), dev/ic/lpt.c
  is included there too; dev/ic/lpt.c is not included if ppbus is
  configured or if there is alternative platform lpt (like for pc532)
* g/c MD lpt definitions and custom puc/upc attachments,
  glue moved to conf/files and dev/pci/files.pci respectively; remove
  device lpt definition from dev/isa/files.isa
* add ppbus parport attribute, atppc device attachments, adjust plip and lpt
  glue
2004-01-20 19:58:00 +00:00
martin
cada3deec9 Rename switchexit to cpu_exit and g/c the old C implementation of cpu_exit. 2004-01-19 10:39:49 +00:00
martin
dc94fda17b Add missing paranthesis. Fixes PR 24144. 2004-01-19 08:42:20 +00:00
martin
b7fcfc0137 Support RAS for 32bit kernels too. 2004-01-18 19:41:06 +00:00
martin
3d03085b79 Use mi_userret() to do most of our userret() work. 2004-01-18 17:14:46 +00:00
martin
9a80a6dc4b In proc_trampoline don't bother to clear condition codes in the trap
frame, since we no longer rely on this.
While there fix a few comments.
2004-01-16 12:43:43 +00:00
martin
3b86738bf3 Don't rely on proc_trampoline to clear condition codes for a new
child process on fork - it could be overtaken by a signal delivery
and then use the stale condition code in the trap frame.
Instead, set tf_tstate aproprietaly right from the start.
Fixes PR sparc64/20675.
Many thanks to Paul Kranenburg for hints on a similar problem he fixed
for the sparc port.
2004-01-16 12:42:41 +00:00
martin
c89e32bbcc Minor comment fix. 2004-01-16 09:10:10 +00:00
mrg
23884e8622 clean up a little:
- delete ktrsyscall32()
- add a check #ifdef _LP64 to do the conversion if P_32 is set to the
standard ktrsyscall()
- add a couple of similar _LP64/P_32 checks to the systrace code.

this should get systrace working for 32 bit apps as well as complete
ktrace support for "trace_enter/trace_exit" using platforms such as amd64.

XXX: systrace isn't supported on sparc64 currently... (it doesn't use
trace_enter/trace_exit, or have it's own calls to systrace_xxx()...)
2004-01-16 05:03:02 +00:00
mrg
273220e38e call ktrsyscall32() for 64 bit kernels and 32 bit syscalls. 2004-01-15 14:57:20 +00:00
mrg
1d9c8161a0 begin to implement some ifreq ioctls... long long way to go. 2004-01-15 14:36:28 +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
petrov
704586c08c Fix 32bit kernel build, pointed by Juergen Hannken-Illjes. 2004-01-12 21:16:01 +00:00
martin
4641631823 Avoid ras_lookup call if compiling 32bit kernel (which does not have
__HAVE_RAS). Avoids a compile failure pointed out by Juergen Hannken-Illjes.
2004-01-11 15:56:28 +00:00
chs
e6d7ceae15 make sure we free the context for the pmap in pmap_destroy().
this usually isn't necessary since we freed it earlier in pmap_remove_all(),
but since uvmspace_free() is now called in the context of the exiting
process, a new context might be allocated if uvm_unmap_detach() decides
to sleep (since cpu_switch() will allocate a new context when it switches
back to the exiting process).
2004-01-09 08:49:42 +00:00
martin
10e9430c36 Minor cleanup 2004-01-08 13:34:04 +00:00
martin
1cfee605ee Implement restartable atomic sequences (RAS) for sparc64. 2004-01-06 21:35:18 +00:00
petrov
d63b2431fa Some cleanup and move ddb_regs declaration to db_interface.c 2004-01-06 20:41:23 +00:00
martin
4a0ea0eafd Cosmetics 2004-01-06 14:13:33 +00:00
petrov
e459d2a294 Spinup secondary cpus. Based on codes sent to me by Dennis Chernoivanov
and Chuck Silvers.
2004-01-06 09:38:19 +00:00
jdolecek
3547ab4b48 update to recent changes - exit2() doesn't exist anymore and the
exit path always calls lwp_exit2()
pointed out Martin Husemann
2004-01-04 19:37:01 +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
martin
bbd16f6828 Don't set ksi_errno - other archs don't bother, so avoid being different.
OK'd by Christos. This makes sparc64 pass the siginfo regression tests.
2004-01-02 20:49:18 +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