Age | Commit message (Collapse) | Author |
|
for the kernel pmap and kill pmap_kremove_pg(). Finally guard the hash
lock code under "MULTIPROCESSOR" to explicit which part of the code
received some MP love.
ok kettenis@
|
|
This changes the logic to prevent a recursion when processing soft
interrupts. Previously a per-CPU flag was set before re-enabling
interrupts. Now the IPL level is raised to SOFTTTY which makes
splsoftassert() happy, greatly inspired by mips64.
As a side effect, the ppc_intr_{disable,enable}() dance is now done
only once instead of twice per splx(9).
While here, make use of dosoftint() instead of having 3 different
functions for dispatching soft interrupts.
Tested by deraadt@ on G4 smp and by myself G5 smp, G3, G4 and socppc.
No objection from the usual (and over busy) suspects.
|
|
to cover the first 8 MB of memory such that it covers kernel .text and not
much else. This is a first step towards W^X in the kernel for machines
with G4 and older processors.
ok mpi@
|
|
while in the manpage add volatile where the code has it too.
ok miod@ guenther@
|
|
ok deraadt@, mlarkin@
|
|
base dance in inline assembly in various places.
tweak and ok miod@
|
|
months that I broke it before the 5.5 release.
confirmed as not being required by ports by sthen@, ajacoutot@, dcoppa@
|
|
sleep bit.
|
|
in the idle loop, in preparation for G5 support.
Only do a disable/enable interrupt dance if the running CPU supports a
sleep mode.
Fix entering ddb(8) from interrupt context by not modifying the return
address of the 'forced' trap frame.
While here, modify the existing logic to terminate prefetching of all
data streams if AltiVec is supported before setting the POW bit.
With inputs/explanations from drahn, looks ok to miod@
|
|
will be used in upcoming MP and idle support.
ok miod@
|
|
* you can #include <sys/endian.h> instead of <machine/endian.h>,
and ditto <endian.h> (fixes code that pulls in <sys/endian.h> first)
* those will always export the symbols that POSIX specified for
<endian.h>, including the new {be,le}{16,32,64}toh() set. c.f.
http://austingroupbugs.net/view.php?id=162
if __BSD_VISIBLE then you also get the symbols that our <machine/endian.h>
currently exports (ntohs, NTOHS, dlg's bemtoh*, etc)
* when doing POSIX compiles (not __BSD_VISIBLE), then <netinet/in.h> and
<arpa/inet.h> will *stop* exporting the extra symbols like BYTE_ORDER
and betoh*
ok deraadt@
|
|
The new CPU_BUSY_CYCLE() may be put in a busy loop body so that CPU can reduce
power consumption, as Linux's cpu_relax() and FreeBSD's cpu_spinwait(). To
start minimally, use PAUSE on i386/amd64 and empty on others. The name is
chosen following the existing cpu_idle_*() functions. Naming and API may be
polished later.
OK kettenis@
|
|
ok miod@, dlg@
|
|
instead a single function ppc_mem_regions() required by the ppc pmap.
ok kettenis@
|
|
ok dlg@ mpi@ deraadt@
|
|
extra restrictions on ordering.
|
|
|
|
native size, so eliminate the #defines.
ok miod@
|
|
archs have instrutions that can do this, and the rest that dont get
to use wrappers around the byteswap(3) api.
this provides MI backends for sparc64 and powerpc which get a big
benefit from this because byteswapping in registers is really hard
for them.
the intended use case is for reading and writing bits of dma memory
handed to and from hardware.
discussed with miod@ guenther@ deraadt@
ok miod@ kettenis@
|
|
<machine/pmap.h> where it belongs, and compensate in <uvm/uvm_extern.h>
by including <uvm/uvm_pmap.h> before <uvm/uvm_page.h>. Tested on all
MACHINE_ARCH but amd64 and i386 (and hppa64).
|
|
we block all interrupts that can grab the kernel lock. The simplest way to
achieve this is to make sure mutexes always raise the ipl to the highest
level that has interrupts that grab the kernel lock. This will allow us
to have "mpsafe" interrupt handlers at lower priority levels.
No change for non-MULTIPROCESSOR kernels.
tested by mpi@, landry@
ok mpi@, dlg@
|
|
|
|
(HID) definitions, from FreeBSD with tweaks, instead of defining
them in different places.
ok kettenis@
|
|
|
|
remove the check for address relocation from MCOUNT_ENTER.
This fix kernel profiling on powerpc architectures, broken since the
buffers are per cpu.
ok miod@
|
|
sure that SIZE_MAX and SSIZE_MAX are defined as constants with a matching
type on all are architectures.
ok millert@, matthew@
|
|
condition code register so mark it s clobbered.
Fixes uvm_page_physload() and who knows what else.
ok jsg@, mpi@
|
|
ok miod kettenis
|
|
type definitions that are the same across all archs from
<machine/_types.h> to <sys/_types.h>
ok deraadt@ kettenis@ otto@
|
|
breakage lurking; ok kettenis@
|
|
the same across all archs from <machine/_types.h> to <sys/_types.h>
ok deraadt@
|
|
|
|
it's now atomic_lock to better reflect its usage, and librthread now
features a new spinlock that's really a ticket lock.
thrlseep can handle both types of lock via a flag in the clock arg.
(temp back compat hack)
remove some old stuff that's accumulated along the way and no longer used.
some feedback from dlg, who is concerned with all things ticket lock.
(you need to boot a new kernel before installing librthread)
|
|
part of the future we have planned. middling ok from a few
|
|
ok miod@, mikeb@
|
|
libm. While at it, remove now unused workarounds for lint.
Agreed by kettenis@, guenther@, matthew@.
|
|
another symbol without weak attribute. To be used in libc and libm
soon. Agreed by kettenis@, guenther@, matthew@.
|
|
|
|
|
|
to keep definitions our of user space. The MD files now follow a consistant
order -- all namespace intrusion is at the tail can be cleaned up
independently. locore, bootblocks, and libkvm still see enough visibility to
build. Checked on 90% of platforms...
|
|
kgmon(8) to deal with them, this time without public header changes.
Previously various CPUs were iterating over the same global buffer at
the same time to modify it and never ended.
This diff includes some ideas submited by Thor Simon to NetBSD via miod@.
ok deraadt@, mikeb@, haesbaert@
|
|
at this moment.
|
|
various CPUs were iterating over the same global buffer at the same
time to modify it and never ended.
This diff includes some ideas submited by Thor Simon to NetBSD via miod@.
ok mikeb@, haesbaert@
|
|
DB_ELFSIZE ought to be defined in <machine/db_machdep.h>, not <machine/exec.h>
|
|
7,3) and let OpenBSD boot on these machines, yay! The 970 are similar to
the 970FX except that they are manufactured in 130nm.
Fix an issue reported by Andrew Fresh and kirby@ on misc@
|
|
dynamically, by comparing the stack pointer against the altstack
base and size, so that you get the correct answer if you longjmp
out of the signal handler, as tested by regress/sys/kern/stackjmp/.
Also, fix alt stack handling on vax, where it was completely broken.
Testing and corrections by miod@, krw@, tobiasu@, pirofti@
|
|
|
|
for all the compat layers which are now gone. Linux compat still works
because it always used another method in any case, and nothing looks at
p_os anymore.
ok jsing
|
|
implementation. For the moment only the BUS_DMA_NOCACHE macro is required
to build drm on macppc but it will be used soon.
ok kettenis@
|
|
invocations. This allows us to use the compiler builtin define __PIC__ to check
for PIC/PIEness rather than passing -DPIC. Simplifies PIE work a lot.
ok matthew@, conceptually ok kurt@
|