Commit Graph

1187 Commits

Author SHA1 Message Date
ad
6bb1c8bc6f swappable: invert previous so we check for SACTIVE or SSTOP. 2008-06-09 11:52:34 +00:00
ad
a3196ec57e swappable: return false if l->l_proc->p_stat == SDYING. 2008-06-09 11:51:43 +00:00
ad
0cd7bfa598 uvm_proc_exit: use macros to disable preemption. 2008-06-09 11:49:54 +00:00
ad
f00b42c246 Back out previous. 2008-06-06 14:01:32 +00:00
ad
ad1863a64a Wrap an expensive check in DIAGNOSTIC. 2008-06-06 13:52:56 +00:00
he
7151c31712 Delete what appears to be a spurious assignment to an undeclared
'cpu' variable added in revision 1.133.  Restores buildability for this file.
2008-06-05 08:16:01 +00:00
ad
5d66fa5745 - Switch off the map evcnts by default.
- SAVE_HINT() doesn't need to be atomic.
2008-06-04 17:47:40 +00:00
ad
7a34cb95f0 Replace the global vm_page hash with a per vm_object rbtree.
Proposed on tech-kern@.
2008-06-04 15:06:04 +00:00
ad
4f702c0ce1 udv_fault: pmap_update before releasing locks. 2008-06-04 13:35:24 +00:00
ad
83828e8d22 listq -> listq.queue 2008-06-04 13:23:30 +00:00
ad
cbbf514e2c - vm_page: put listq, pageq into a union alongside a LIST_ENTRY, so we can
use both types of list.

- Make page coloring and idle zero state per-CPU.

- Maintain per-CPU page freelists. When freeing, put pages onto the local
  CPU's lists and the global lists. When allocating, prefer to take pages
  from the local CPU. If none are available take from the global list as
  done now. Proposed on tech-kern@.
2008-06-04 12:45:28 +00:00
ad
06c343ac94 vm_page: put TAILQ_ENTRY into a union with LIST_ENTRY, so we can use both. 2008-06-04 12:41:40 +00:00
ad
da4bdc8954 uvm_mmap: don't lock the map unless we need to. 2008-06-03 21:48:27 +00:00
ad
e1be8408a0 uao_reference, uao_detach: we don't do reference counting on kernel objects,
so don't lock them needlessly.
2008-06-03 11:51:01 +00:00
ad
3a8db3158e Use atomics to maintain v_usecount. 2008-06-02 16:25:34 +00:00
ad
bb29be511d One more. 2008-06-02 16:17:12 +00:00
ad
fb8c6fcc83 Don't needlessly acquire v_interlock. 2008-06-02 16:16:27 +00:00
ad
0d151db6c9 Don't needlessly acquire v_interlock. 2008-06-02 16:00:33 +00:00
ad
1728b3636d UVM_PAGEZERO_TARGET -> UVM_PAGEZERO_LOWAT 2008-06-02 12:24:16 +00:00
ad
6dd8a2b97b uvm_pageidlezero:
- Use high and low water marks to try and reduce power consumption.
- Do trylock on uvm_fpageqlock, and bail if we can't get it.
- Only run on one CPU at a time.
2008-06-02 11:11:14 +00:00
ad
2feabc3836 PR kern/38812 race between lwp_exit_switchaway and exit1/coredump
Move the LWP RUNNING and TIMEINTR flags into the thread-private flag word.
2008-05-31 21:26:01 +00:00
ad
8350e2a9e8 Missing cv_destroy(). 2008-05-31 13:00:03 +00:00
mrg
c2b95373bf remove clause #3 from my license where there are no other
copyright holders involved.
2008-05-29 14:51:25 +00:00
chs
a5e92dac93 if UVMHIST is defined, include headers necessary for its use. 2008-05-25 16:02:08 +00:00
kardel
a70d0e6c97 keep dumpcdev and dumpdev consistent
allows savecore.c@1.72 to find the right dumpdev in case it was changed
from the default - hi ad@
2008-05-11 20:19:27 +00:00
ad
e071d39c84 - Convert hashinit() to use kmem_alloc(). The hash tables can be large
and it's better to not have them in kmem_map.
- Convert a couple of minor items along the way to kmem_alloc().
- Fix some memory leaks.
2008-05-05 17:11:16 +00:00
martin
ce099b4099 Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
ad
7d6bc631b9 Disable preemption while swapping pmap. 2008-04-27 11:39:46 +00:00
yamt
fb0cfeb7dd fix a locking botch. PR/38415 from Wolfgang Solfrank. 2008-04-26 13:44:00 +00:00
ad
6d70f903e6 Network protocol interrupts can now block on locks, so merge the globals
proclist_mutex and proclist_lock into a single adaptive mutex (proc_lock).
Implications:

- Inspecting process state requires thread context, so signals can no longer
  be sent from a hardware interrupt handler. Signal activity must be
  deferred to a soft interrupt or kthread.

- As the proc state locking is simplified, it's now safe to take exit()
  and wait() out from under kernel_lock.

- The system spends less time at IPL_SCHED, and there is less lock activity.
2008-04-24 15:35:27 +00:00
simonb
246143d6c1 Set up uvmhist in uvm_aio_aiodone_pages(). 2008-04-17 05:39:41 +00:00
yamt
1d737efc42 fix the order of printf arguments. 2008-04-11 15:47:15 +00:00
christos
9741037836 - use uarea_swapin, rather than duplicating the code.
- use __func__ where appropriate.
2008-04-11 15:31:37 +00:00
christos
c7a574ed9e make this compile 2008-03-29 20:40:52 +00:00
dholland
132066c541 Fix broken build. hi skrll :-) 2008-03-29 20:15:54 +00:00
skrll
38b9530a91 Fix unsed variable when DEBUG isn't defined. 2008-03-29 18:49:13 +00:00
ad
be04ac4896 Make rusage collection per-LWP and collate in the appropriate places.
cloned threads need a little bit more work but the locking needs to
be fixed first.
2008-03-27 19:06:51 +00:00
yamt
d886e611bd remove a redundant pmap_update and add a comment instead. 2008-03-24 08:52:55 +00:00
bjs
d5e8b5ed97 Allow this to compile if LISTQ is undefined:
- Put '#ifdef LISTQ' ... '#endif' pairs around pageq_insert_head()
	  and clockpro_insert_head().

	- Add missing argument to printf statement.
2008-03-22 05:50:42 +00:00
ad
a9ca7a3734 Catch up with descriptor handling changes. See kern_descrip.c revision
1.173 for details.
2008-03-21 21:54:58 +00:00
martin
813190b43d Swap sysctl -d description of vm.filemin and vm.execmin. Noted by
Raymond Meyer on current-users.
2008-03-07 08:44:51 +00:00
yamt
5f4f3b8ca8 fix "stale map" assertions. PR/38153 from Sarton O'Brien. 2008-03-04 09:32:01 +00:00
yamt
19b9de9868 uvm_swap_io: if pagedaemon, don't wait for iobuf. 2008-02-29 20:35:23 +00:00
yamt
569bb6b4dc update comment 2008-02-29 12:08:04 +00:00
matt
41b4feae9a Convert two inlines from old-style-definitions to ansi. 2008-02-27 19:38:57 +00:00
ad
0fe23ea49b Assert uvm_fpageqlock is held in a few more places. 2008-02-27 14:24:24 +00:00
ad
185d25c158 Minor corrections to comments. 2008-02-27 14:23:33 +00:00
yamt
0a2b10db61 uao_put: fix a race with pageout. 2008-02-27 13:46:20 +00:00
chris
855792073c Add some more missing pmap_update()s following pmap_kremove()s. 2008-02-23 17:27:58 +00:00
yamt
f7048cc403 uvm_uarea_init: fix compilation where PAGE_SIZE is not a constant. (sparc)
reported by Tom Spindler.
2008-02-08 11:49:40 +00:00