| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
The header is being pulled via uvm_extern.h -> uvm_map.h
|
|
|
|
|
|
|
|
|
|
|
| |
This makes sure a kcopy(9) that is a sequence of 64-bit or 32-bit values
that are properly aligned is done atomically. This is needed for kbind(2)
as it needs to update PLT/GOT entries atomically when doing lazy binding.
This seems to fix some random SIGSEGV and SIGTRAP when linking stuff with
ld.lld.
ok deraadt@
|
|
|
|
| |
many POWER8 and POWER9 systems.
|
|
|
|
| |
ok kettenis@
|
|
|
|
|
|
| |
drivers instead of the "midlayer". I had missed a couple of places in
the midlayer and instead of fixing this in several places it is better
to do it in the functions that get invoked in the end.
|
| |
|
| |
|
| |
|
|
|
|
| |
ok deraadt@
|
|
|
|
|
| |
in refreshcreds()
ok kettenis
|
|
|
|
|
|
|
|
| |
This should be sufficient for identifying pivoted ROP. Doing so for other
traps is at best opportunistic for finding a straight-running ROP chain,
but the added (and rare) sleeping point has proven to be dangerous.
Discussed at length with kettenis and mortimer.
ok mortimer kettenis mpi
|
|
|
|
|
|
|
|
|
|
| |
Before, apm -A was speeding up only one core of my POWER9.
Now, apm -A speeds up all cores, so my parallel builds are faster.
I copy the idea from amd64 and i386: mp_setperf() sends an IPI to all
cpus; the interrupt handler calls ul_setperf().
ok deraadt@ kettenis@
|
|
|
|
|
|
|
|
| |
interrupts. This fixes IPIs on machines with certain (newer?) OPAL
firmware. It also allows implementing pci_intr_establish_cpu(9), which
is needed for distributing interrupt handlers across CPUs.
tested by gkoehler@
|
|
|
|
|
|
| |
uvm_map_inentry() may sleep we would have to do the same fixup as after
calling uvm_fault() there. It is just simpler and safer to just rely
on the pointer in SPRG0.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This makes it possible to use more SLB entries for the kernel than the
hardware supports. The design is such that a subset of the hardware SLB
entries can be replaced when needed. This makes sure the entries
mapping kernel code and data and the page tables ar always present.
Traps for missing SLB entries are handled in real-mode and on a special
stack such that it doesn't have to rely on SLB entires mapping kernel
stacks.
With this in place we can increase KVA to 32GB. Hopefully that's enough
to support large memory configurations.
|
| |
|
| |
|
|
|
|
| |
than 8 SLB entries.
|
| |
|
|
|
|
| |
than 8 SLB entries.
|
| |
|
|
|
|
| |
ok kettenis visa
|
|
|
|
|
|
|
| |
Copy signotify() from amd64, so that if proc *p is on another cpu, then
signotify(p) notifies the correct cpu.
ok kettenis@
|
| |
|
| |
|
|
|
|
|
| |
bus_space_mmap(9) implementation to make sure we enter mappings with
the right memory attributes.
|
|
|
|
|
|
| |
handle the priority levels better and guarantee ordering of restoring the
priority level after running an interrupt handler and checking for a new
interrupt.
|
|
|
|
|
|
|
|
|
|
| |
entered by pmap_enter(9). Otherwise kernel stack pages get evicted and
that doesn't end well.
We probably only need to lock in wired pages and I will probably revisit
this at some later stage.
tested by deraadt@
|
|
|
|
|
|
| |
the boot kernel didn't hand us a valid bootduid.
ok visa@
|
|
|
|
|
|
|
| |
get picked up by ddb. This makes the "pp" and "show struct" commands that
depends on CTF work.
ok gkoehler@
|
|
|
|
|
|
| |
matches the bootduid of the boot kernel.
ok visa@
|
|
|
|
| |
OK deraadt@, mpi@
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
on POWER8 CPUs.
|
|
|
|
| |
and earlier CPUs.
|
| |
|
| |
|
|
|
|
|
| |
These lack an "ibm,opal-available-m64-ranges" property, but it seems
we can assume a 0-15 range. At least this is what Linux does.
|
|
|
|
|
|
|
|
|
|
| |
real hardware, but it gets the kernel booting on QEMU emulating a POWER8
CPU so it's a step in the right direction.
This establishes a way to distinguish CPU features based on the AT_HWCAP
and AT_HWCAP2 features documented in the ELF ABI. Also use this to
determine the availability of the DARN instruction instead of keying of
the processor model.
|
| |
|
|
|
|
| |
ok kettenis@, visa@
|
|
|
|
|
| |
(much more) stable. Probably because we could restore an incoherent
SLB cache since there was no locking in the trap return path.
|
|
|
|
|
|
| |
by miod@ where the powerpc64 claimed to be "for all AArch64 platforms".
ok patrick@
|
|
|
|
| |
Spotted by miod@
|
|
|
|
| |
Spotted by miod@
|
| |
|