| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make the alias list a SLIST.
Drop the "fast recycling" optimization of vnodes (including
the returning of a prexisting but stale vnode from checkalias).
It doesn't buy us anything now that we don't hardlimit
vnodes anymore.
Rename checkalias2() and checkalias() to addalias() and
addaliasu() - which takes dev_t and udev_t arg respectively.
Make the revoke syscalls use vcount() instead of VALIASED.
Remove VALIASED flag, we don't need it now and it is faster
to traverse the much shorter lists than to maintain the
flag.
vfs_mountedon() can check the dev_t directly, all the vnodes
point to the same one.
Print the devicename in specfs/vprint().
Remove a couple of stale LFS vnode flags.
Remove unimplemented/unused LK_DRAINED;
|
|
|
|
|
|
|
|
|
|
|
| |
creation of /dev/drum via calling swapon. However, the make_dev has a
bogus (insofar that it hasn't been added yet) cdevsw, so later we end
up crashing with a null pointer dereference on the swap vp's specinfo.
The specinfo points to a dev_t with a major of 254 (uninitialized), and
we get a crash on its d_strategy being called.
The simple solution to this is to call cdevsw_add before the make_dev
is ever used. This fixes the panic which occurred upon swapping.
|
|
|
|
|
|
| |
misprinting with %lx.
Cast pointers to intptr_t instead of casting them to long. Cosmetic.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Diskslice/label code not yet handled.
Vinum, i4b, alpha, pc98 not dealt with (left to respective Maintainers)
Add the correct hook for devfs to kern_conf.c
The net result of this excercise is that a lot less files depends on DEVFS,
and devtoname() gets more sensible output in many cases.
A few drivers had minor additional cleanups performed relating to cdevsw
registration.
A few drivers don't register a cdevsw{} anymore, but only use make_dev().
|
|
|
|
| |
Addendum to rev 1.47: submitted by dillon.
|
|
|
|
|
|
| |
The lock structure cannot be the first element of the vm_map
because this can result in livelock between two or more system
processes trying to kmem_alloc_wait.
|
| |
|
|
|
|
|
|
| |
Verify that free pages are not dirty.
Submitted by: dillon
|
| |
|
|
|
|
| |
but MAP_LOCK_DIAGNOSTIC wasn't.
|
|
|
|
|
| |
exported (notably vm_page_undirty()). Also, let vm_page_dirty() work
in a KLD.
|
|
|
|
|
| |
Update the comment to reflect the demise of PQ_ZERO and
remove a (now) useless test.
|
|
|
|
| |
from the previous commit.
|
|
|
|
|
|
|
| |
Clear the dirty bit mask (vm_page_undirty) before adding the page
to the free page queue.
Submitted by: dillon
|
|
|
|
|
|
|
|
| |
of a vm_page.
Use it.
Submitted by: dillon
|
|
|
|
|
|
| |
Remove dead code.
Submitted by: dillon
|
|
|
|
|
|
|
|
| |
Remove semicolons or add "do { } while (0)" as necessary
to enable the use of these macros in arbitrary statements.
(There are no functional changes.)
Submitted by: dillon
|
|
|
|
| |
since i386/i386/machdep rev 1.310, i.e., the demise of BOUNCE_BUFFERS.
|
|
|
|
| |
since i386/i386/pmap rev 1.190. (The alpha never used it.)
|
|
|
|
|
| |
to tell a valid "struct vm_page" from an invalid one in the vm_page_array.
This isn't a very robust method.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
A complete rewrite by dillon and myself to separate
the implementation of behaviors that effect the vm_map_entry
from those that effect the vm_object.
A result of this change is that madvise(..., MADV_FREE);
is much cheaper.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This setting is also acceptable for Celerons and Pentium Pros
with less than 1MB L2 caches.
Note: PQ_L2_SIZE is a misnomer. The correct number of colors is
a function of the cache's degree of associativity as well as its size.
Submitted by: bde and alc
|
|
|
|
|
|
| |
Update the comments to match the implementation.
Submitted by: dillon
|
|
|
|
|
|
|
| |
Support MADV_DONTNEED and MADV_WILLNEED on object types
besides OBJT_DEFAULT and OBJT_SWAP.
Submitted by: dillon
|
|
|
|
|
| |
If a page is found in the wrong queue, panic instead
of silently ignoring the problem.
|
|
|
|
|
| |
which free routine to use and people are tempted to use free() (which
doesn't work)
|
|
|
|
|
|
|
|
| |
Now that behaviors are stored in the vm_map_entry rather than
the vm_object, it's no longer necessary to instantiate a vm_object
just to hold the behavior.
Reviewed by: dillon
|
|
|
|
| |
may not compile, I can't test it.
|
|
|
|
|
|
| |
a few lines into <sys/vnode.h>.
Add a few fields to struct specinfo, paving the way for the fun part.
|
|
|
|
|
|
| |
from the vm_object to the vm_map.
Submitted by: dillon
|
|
|
|
| |
served no purpose.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove the initialization of PQ_NONE's cnt and lcnt. They aren't
used.
vm_page_insert:
Remove an unnecessary dereference.
vm_page_wire:
Remove the one and only (and thus pointless) reference
to PQ_NONE's lcnt.
|
|
|
|
|
| |
by one: PQ_PRIME2 and PQ_PRIME3 are used to accomplish the same
thing at different places in the kernel. Drop PQ_PRIME3.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When creating new processes (or performing exec), the new page
directory is initialized too early. The kernel might grow before
p_vmspace is initialized for the new process. Since pmap_growkernel
doesn't yet know about the new page directory, it isn't updated, and
subsequent use causes a failure.
The fix is (1) to clear p_vmspace early, to stop pmap_growkernel
from stomping on memory, and (2) to defer part of the initialization
of new page directories until p_vmspace is initialized.
PR: kern/12378
Submitted by: tegge
Reviewed by: dfr
|
|
|
|
|
|
|
| |
working, broken, working) and savecore (working, working, broken, working,
working).
Sorta Reviewed by: phk
|
|
|
|
| |
Submitted by: dillon@backplane.com
|
| |
|
|
|
|
| |
so obviously I gave it the wrong name. s/umakedev/makeudev/g
|
|
|
|
|
|
| |
not by the new one, i.e., vm/swap_pager.c rev 1.108.
Reviewed by: dillon@backplane.com
|
|
|
|
|
|
|
|
|
|
|
|
| |
vm_map.c:
Don't set OBJ_ONEMAPPING on arbitrary vm objects. Only default
and swap type vm objects should have it set. vm_object_deallocate
already handles these cases.
vm_object.c:
If OBJ_ONEMAPPING isn't already clear in vm_object_shadow,
we are in trouble. Instead of clearing it, make it
an assertion that it is already clear.
|
|
|
|
|
| |
to be the same as that used in the vm_page. (This change also
shrinks the vm_object.)
|
| |
|
| |
|
|
|
|
| |
back to a dev_t when the value is actually used.
|
| |
|
|
|
|
|
|
| |
swap device name reporting.
Submitted by: Bill Swingle <unfurl@freebsd.org>
|