Age | Commit message (Collapse) | Author |
|
ok deraadt
|
|
Found, fix tested & thus ok ajacoutot@
|
|
|
|
kernel text, PTEs, .rodata, data, bss and the symbol regions. This has
been in snaps for a while with no reported fallout.
The APTE space and MP/ACPI trampolines will be fixed next.
ok deraadt@
|
|
|
|
|
|
change but using paddr_t here wasn't correct - better to clean it up.
|
|
7 years (for some parts, 9 years), and was only ever referenced in i386
anyway.
ok jsg@, matthieu@, armani@
|
|
ok miod@, millert@, deraadt@
|
|
sections that may be encountered when using larger than normal ramdisks.
No binary change.
Requested by and diff provided by
Nathanael Rensen <nathanael at list.polymorpheus.com>
|
|
PAGE_SIZE boundaries. This is required to enforce proper separation of
sections when adding page protections (coming shortly).
This was in snaps before release with no reported side effects.
ok deraadt@
|
|
uses it. On ramdisk kernels built with -Os, (accidental termination) did
not occur, leading to heisenbug occurances....
|
|
physmem on i386, which we don't support anymore. And since we removed the
physmem ranges above 4GB in machdep.c, this code did nothing anyway.
ok beck@, deraadt@
|
|
Requested by deraadt@
|
|
Tested on VMware-GENERIC-i386.
OK mlarkin@
|
|
maybe related to the small size of such media)
|
|
|
|
vmt(4) is moved from mainbus0 to pvbus0, more devices will follow.
OK sf@ deraadt@
|
|
since they are now relative to chunks. Use 'blkno' as normal variable
name for daddr_t items rather than mix of 'blkno, blk, offset.
Change field name ssd_data_offset to ssd_data_blkno since it is a
block and not byte quantity.
No intentional functional change.
|
|
Nobody uses its return value.
|
|
|
|
where appropriate. Noop for disks with 512-byte sectors. i.e. the
only kind currently allowed in softraid volumes. But starts laying
the groundwork to allow disks with other sector sizes.
ok jsing@
|
|
They always returned 0
ok mlarkin@ kettenis@
|
|
They always returned 0
ok mlarkin@ kettenis@
|
|
ok jsg@ mlarkin@
|
|
|
|
memory addresses in their BIOS memory map making us believe they are
available. However these addresses will never actually be routed to the
PCI bus and therefore guaranteed not to work.
ok krw@, mlarkin@
|
|
over from someone's debugging.
|
|
done in this region using PAE w/NX caused #PFs (as they lacked the exec
permission previously).
Also unmap the region when we're finished. No sense in leaving extra
executable regions lying around.
Fixes non-ACPI uniprocessor i386 machines that have NX/PAE (these would
previously panic in pcibiosattach).
ok deraadt@
|
|
kernels and we no longer have any.
|
|
ago to "workaround MP timeout/splhigh/scsi race at reboot time".
Probably the issue has been fixed by now. And if not, the relevant scsi
controller drivers should add a workaround in their DVACT_POWERDOWN
hook.
While there, change the default final reset delay on amd64 to 0. People
who like looking at the final reboot message may still set the
CPURESET_DELAY define.
OK deraadt@ kettenis@ mlarkin@ uebayasi@
|
|
wrong to begin with.
|
|
softintr_dispatch(). Delete traces of long superseded stats code.
ok beck@ mpi@ uebayasi@
|
|
|
|
Don't call pool_put(9) while holding a mutex. Instead collect pv entries in
a list and put them back into the pool after releasing the mutex. This
prevents a lock ordering problem between the per-pmap mutexes and the kernel
lock that arises because pool_put(9) may grab the kernel lock when it decides
to free a pool page.
This seems to make the i386 pmap mpsafe enough to run the reaper without
holding the kernel lock.
ok sthen@ (who helped me a lot debugging this)
|
|
a list and put them back into the pool after releasing the mutex. This
prevents a lock ordering problem between the per-pmap mutexes and the kernel
lock that arises because pool_put(9) may grab the kernel lock when it decides
to free a pool page.
This seems to make the i386 pmap mpsafe enough to run the reaper without
holding the kernel lock.
ok sthen@ (who helped me a lot debugging this)
|
|
a list and put them back into the pool after releasing the mutex. This
prevents a lock ordering problem between the per-pmap mutexes and the kernel
lock that arises because pool_put(9) may grab the kernel lock when it decides
to free a pool page.
This seems to make the i386 pmap mpsafe enough to run the reaper without
holding the kernel lock.
ok sthen@ (who helped me a lot debugging this)
|
|
|
|
at the owner. every other arch does it the same, so this is to
reduce differences between our platforms.
ok miod@
|
|
lists and the apte with a mutex. Rearrange some code to avoid
sleeping/spinning with one of these locks held. This should make
pmap_enter(9), pmap_remove(9) and pmap_page_protect(9) safe to use without
holding the kernel lock. Unfortunately there still seems to be an issue
that causes deadlocks under pressure. That shouldn't be an issue as
long as uvm still calls the pmap functions with the kernel lock held.
Hopefully committed this will help finding the last bugs.
ok mlarkin@, deraadt@
|
|
"shared reference pointers".
srp allows concurrent access to a data structure by multiple cpus
while avoiding interlocking cpu opcodes. it manages its own reference
counts and the garbage collection of those data structure to avoid
use after frees.
internally srp is a twisted version of hazard pointers, which are
a relative of RCU.
jmatthew wrote the bulk of a hazard pointer implementation and
changed bpf to use it to allow mpsafe access to bpfilters. however,
at s2k15 we were trying to apply it to other data structures but
the memory overhead of every hazard pointer would have blown out
significantly in several uses cases. a bulk of our time at s2k15
was spent reworking hazard pointers into srp.
this diff adds the srp api and adds the necessary metadata to struct
cpuinfo on our MP architectures. srp on uniprocessor platforms has
alternate code that is optimised because it knows there'll be no
concurrent access to data by multiple cpus.
srp is made available to the system via param.h, so it should be
available everywhere in the kernel.
the docs likely need improvement cos im too close to the implementation.
ok mpi@
|
|
testing by krw@, and then many via snapshots
|
|
|
|
done by introducining a magic offset. Pages below this offset are mapped
with default memory attributes. Above this offset pages are mapped write
combining.
ok mlarkin@
|
|
from tilo stritzky
thanks miod for help with the diff, and who also noted that
leading whitespace gets stripped too;
|
|
testing by many, particularly krw@ and jcs@
tweaks by kettenis@
ok deraadt@
|
|
one of the cases was reached. Matches other parts of the mpbios code.
|
|
|
|
truncating trailing zeros.
Testing by many as part of a larger change to use ACPI _CST objects
ok krw@
|
|
|