Commit Graph

26 Commits

Author SHA1 Message Date
eeh 8e5075103f This seems to fix the interrupt lossage of non-debug kernels. 2000-09-29 17:02:38 +00:00
eeh 1090c8a9cf probeget() actually handles 64-bit values so fix the prototype. 2000-09-28 19:16:35 +00:00
thorpej 4db6fc7542 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.
2000-08-25 01:04:06 +00:00
eeh 968524445a Prevent interrupts from being posted if they are active and deprecate polled
interrupts.  This seems to eliminate the spurious interrupts.
2000-07-03 17:56:06 +00:00
eeh f504adf782 Clean up interrupt handling some more. 2000-07-02 16:13:21 +00:00
eeh 707e41f21e Fix interrupt delivery on UltraSPARC IIi machines. 2000-06-30 22:58:01 +00:00
eeh 245619bad4 Have separate data and text segments, make text read-only. 2000-06-19 23:30:32 +00:00
eeh fb0404cc75 Start reorganizing the kernel for MULTIPROCESSOR support. 2000-06-12 23:32:46 +00:00
mrg fdfb59b4b9 ih_map & ih_clr are volatile. 2000-06-12 05:29:43 +00:00
thorpej a7d0570e67 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.
2000-05-26 21:19:19 +00:00
eeh 3b51289caa Revamp interrupts again:
Fix a bug causing interrmittent panics in interrupt dispatch.
	Use interrupt vectors for softints.
	Add a new send_softint interface.
	Improved D$ flushing.
	Improve traptrace and other debugging enhancements.
2000-03-16 02:36:56 +00:00
eeh 58379b85fa Make CLKF_INTR() more intelligent. 1999-12-30 16:26:18 +00:00
eeh 7b60d6a0ed Provide explicit 64-bit and 32-bit types for compatibility with sparc
userland.
1999-11-06 20:13:49 +00:00
eeh 793cc7a41b Update to post 1.4. 1999-10-11 01:57:43 +00:00
thorpej 28fb7c1eb8 Define cpu_number() as discussed on tech-smp. 1999-08-10 21:08:05 +00:00
eeh 9cf2782159 Move the DVMA mapin/mapout functions from the SBus driver to the iommu driver. 1999-06-20 00:51:29 +00:00
eeh 1884f05354 Another general cleanup:
Remove the entire idea of fasttrap interrupts since V9 traps are really cheap,
the CPUs are really fast, and the completely different trap frames would make
these handlers really difficult to implement.

pmap_changeprot() was only used by the clock and one other place; deprecate it.

probeget() and probeset() now take 64-bit addresses even in 32-bit mode so we
can probe IO locations by physical addresses.

Some pmap cleanup.

Some more copyright cleanup.
1999-06-07 05:28:03 +00:00
eeh 186c3eba2b Make pbrobeget() and probeset() work for 64-bit values as well. To do this
the arguments are changed so the address is first and the ASI second so we
can have the address in %o0:%o1 and not worry about unused registers.

Also a bit of copyright cleanup.
1999-06-05 21:58:16 +00:00
eeh 3f7968c736 Fix things up so they compile again. 1999-06-05 20:38:24 +00:00
eeh 64b891fc8d Add code to support using %tick as the system clock if no "counter-timer" node
is found.
1999-05-30 19:13:33 +00:00
mrg 1b384c6911 clone intr.h from the SPARC. 1999-05-30 02:37:10 +00:00
mrg b066708a2e add protos for switchtoctx, fixalign and emulinstr. XXX should all these be here? 1998-11-24 12:49:14 +00:00
thorpej cabecee13c 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.
1998-11-11 06:43:49 +00:00
thorpej 5006dbf868 cpu_set_kpc() prototype is already in <sys/systm.h>. 1998-10-05 22:11:15 +00:00
eeh a112a2a4cc It slices. It dices. It does everything except exec a sparc32_compat init. 1998-09-05 23:57:24 +00:00
eeh 01e2e698b6 Import of sparc64. 1998-06-20 04:58:50 +00:00