Age | Commit message (Collapse) | Author |
|
it in the piglet during unhibernate. Missed this block during the previous
commit. We'll panic, which will likely just reboot the machine, but that's
better than trashing a chunk and causing mystery errors later.
|
|
original retguard data to the piglet and bcopys it back in place
immediately before resuming via the ACPI Sx trampoline.
ok deraadt, guenther, tested by many.
|
|
let people know what changed.
ok kettenis, phessler
|
|
so that an unhibernate kernel can detect if it is running with the
kernel it booted.
ok mlarkin
|
|
work.
ok mlarkin kettenis
|
|
|
|
vm_page structs go into three trees, uvm_objtree, uvm_pmr_addr, and
uvm_pmr_size. all these have been moved to RBT code.
this should give us a decent chunk of code space back.
|
|
Committing for guenther@ because he is on United and apparently
they break ssh (as well as guitars)
ok deraadt@ in the car from cambridge
|
|
OK mlarkin@
|
|
|
|
entropy after resuming.
Tested on i386 and amd64.
ok deraadt@
|
|
boot.
ok mlarkin
|
|
may not have been mapped previously (in the failure to hibernate case).
Also ensure that the lowmem ptp is mapped in all cases (not just MP).
ok kettenis
|
|
must do that. otherwise, pmap_kremove is called twice. i386 in particular
does not tolerate that, found by sebastia
ok mlarkin kettenis
|
|
(which we never did, but it was a bug nonetheless).
ok kettenis, deraadt
|
|
era. fix uvm including c files to include lock.h or atomic.h as necessary.
ok deraadt
|
|
PROT_NONE, PROT_READ, PROT_WRITE, and PROT_EXEC from mman.h.
PROT_MASK is introduced as the one true way of extracting those bits.
Remove UVM_ADV_* wrapper, using the standard names.
ok doug guenther kettenis
|
|
ordering regions mapped executable, so remove those permissions.
ok deraadt@
|
|
ok deraadt, kettenis
|
|
|
|
redundant copies of the same information. No functional change.
Also add some comments as to how these globals are used.
|
|
hibernate anymore.
|
|
|
|
|
|
deep down in the suspend path, where it is really hard to recover from
allocation failure. So allocate the piglet early on in the suspend path.
Also change the piglet and piglet allocation functions to use km_alloc(9)
instead of doing pmemrange magic. This removes a bunch of code which, in the
case of the piglet allocation, is broken since it results in a NULL pointer
dereference. Also switch the piglet allocation to not wait. If we can't
allocate 16MB of phys contig memory on a halfway modern machine we're almost
certainly under a lot of memory pressure and we're better off not trying to
hibernate anyway.
ok mlarkin@
|
|
|
|
|
|
much help and ok from deraadt@
|
|
|
|
dprintfs to help debugging in the field (disabled by default)
|
|
easier and much less error-prone to just identity map it in the resuming
kernel as we have more control over the VA space layout there (otherwise
we are at the mercy of the suspending kernel's placement of the piglet VA).
This diff also increases the size of the piglet to 4 chunks, to avoid an
overwrite issue seen in m2k14 where the start of the kernel text was
overwritten with a bounced chunk before unpack.
|
|
Chunks are now sorted by ascending PA and all chunks are bounced before
unpack. This fixes an issue where the trampoline chunks were being placed
at the end of the unpack ordering, causing overwrite during unpack.
|
|
ok deraadt@
|
|
Noticed by Josh Grosse.
|
|
PAGE_SIZE bytes. Completes the MAXPHYS optimizations in the read path.
with input from guenther@ who suggested a version that was a little easier
to understand. Tested on i386 and amd64.
|
|
a warning/comment in zlib.h that Z_PARTIAL_FLUSH "will be removed, use
Z_SYNC_FLUSH instead".
|
|
reads.
Also fix a VA leak in the chunktable read error path.
|
|
|
|
|
|
PG_PMAPMASK as all the possible pmap-specific bits (similar to the other
PG_fooMASK) to make sure MI code does not need to be updated, the next time
more bits are allocated to greedy pmaps.
No functional change, soon to be used by the (greedy) mips64 pmap.
|
|
"mainbus" device. this breaks when mpath is enabled because it
attaches before mainbus and therefore takes the head position.
have autoconf provide device_mainbus() which looks up mainbus_cd,
and use that instead.
discussed with deraadt who just wants mpath stuff to move forward
despite there being many ways to shine this particular turd.
|
|
hibernate unpack - these were added a while ago when we were fighting
different issues that have now been solved.
Tested by myself and dcoppa on a variety of machines
|
|
|
|
|
|
overloading of that thing.
the only hardware that seems to care about cylinders in our tree
are floppy drives, and the drivers for those calculate their own
cylinders from logical block addresses and ignore whatever the rest
of the kernel thought b_cylinders should be.
most of this diff is moving the floppy drivers to using b_resid as
a resid and using that as part of the calculation for real cylinder
values.
the rest of the diff is getting rid of the useless assignments to
b_cylinder that dont get used by anything (now that disksort is
gone).
ok miod@
|
|
anyway as we move toward a streamed implmentation)
|
|
is now possible to move the chunktable right after the chunks, not at
the end of the swap.
ok mlarkin
|
|
|
|
of absolute, so that we can add range checking.
ok mlarkin
|
|
|