Age | Commit message (Collapse) | Author |
|
2 spc(4/luna88k)'s share the same level 3 interrupt on LUNA-88K2. So
returns earlier when the device is not the source of interrupt.
NetBSD has the same code.
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/ic/mb89352.c#rev1.34
"it is the right thing to do" miod@
|
|
|
|
no binary change
|
|
no binary change.
|
|
|
|
-Wstack-larger-than-. This is what modern GCC supports as well as LLVM.
ok miod@
|
|
Also add more comments on *int_mask_reg[CPU], delete possibly
unnecessary flush_pipeline().
Additional suggestion and ok miod@
|
|
|
|
|
|
Reported to tech@ by THEvoid at openmailbox dot org
ok doug@
|
|
from hibernate code that were already defined in pte.h (with different
names). No functional change.
ok sf@, deraadt@
|
|
RAMDISK kernels have reduced functionality compared to GENERIC. which
kind of sucks but so it is. At least if we are going to reduce functionality,
reduce it in the same way on all architectures, because that makes our
debugging burden less (the margin is too narrow for me to prove this)
|
|
This is straightforward port of Izumi Tsutsui's work on NetBSD/luna68k:
http://mail-index.netbsd.org/source-changes/2014/09/28/msg058972.html
>> Put dumb optimizations to avoid conditionals in putchar drawing loops.
This makes 4bpp wscons putchar ~8% faster on luna88k.
ok miod@
|
|
ok miod@
|
|
pre-existing atomics to match.
tested on sgi (octane) and octeon (erl)
ok miod@ dlg@
|
|
sparc lacks cool opcodes, but is only uniprocessor, so these are done with
simple critical sections.
tested by miod@ bcook@
ok miod@
|
|
ok deraadt@ miod@
|
|
|
|
|
|
|
|
It makes 4bpp wscons putchar ~20% faster.
ok @miod
|
|
Tested by jasper@.
|
|
reboot or when restaring ldomd(8).
|
|
clock_reg[] is only used in clock.c, so move its definition from
machdep.c to clock.c.
ok miod@
|
|
|
|
ok tedu@, deraadt@
|
|
ok claudio@
|
|
|
|
ok miod@ deraadt@ jsing@
|
|
Makes a loongson kernel buildable without -Wno-format.
ok miod@ jsg@
|
|
|
|
|
|
to an atomic_swap_ptr.
|
|
|
|
fixes from and ok miod@
|
|
ok deraadt@
|
|
We need a register here, and not a generic memory reference. We get lucky
with GCC that it chooses a register for "p", but we can't blame clang for
choosing a memory reference if we allow it to do so.
Pointed out by LLVM.
time.c:80:17: error: unexpected token in memory operand
ok kettenis@
|
|
atomic_{add,sub}_{int,long}_nv. sys/atomic.h turns these into the
rest of the atomic api.
on uniprocessor hppa systems "atomic" operations are implemented
as a non-interruptable sequence by disabling all interrupts on the
cpu, doing the operation, and then restoring the interrupt mask.
this isnt enough on MP systems, so we added a global atomic memory
mutex that is taken inside the interrupt disabling above to coordinate
operations between cpus.
this is a lot of overhead though cos mutexes dance around with ipls,
which is unecessary in our case because of the interrupt disabling
that is already done. also, hppa spinlocks are implemented with
ldcw which requires the word it operates on to be 16 byte aligned.
mutexes arent guaranteed to have this alignment so they compensate
by having lots of words inside themselves so they can hit the
appropriate one to use for the ldcw op.
with this in mind, this change pulls __cpu_simple_locks, which are
simply ldcw spinlocks with a 16 byte aligned word, out of
src/sys/arch/hppa/include/lock.h into src/sys/arch/hppa/include/atomic.h
so atomic.h can use them. lock.h includes atomic.h, so it still
gets and provides the same functionality as before.
finally, this also pulls the rwlock cas implementation apart. cas
ops now share the same serialising lock on MP systems as the other
memory operations, and rw_cas is defined as a wrapper around
atomic_cas_uint.
ok kettenis@
|
|
ok miod@
|
|
read/write operations.
|
|
Pointed out by LLVM.
db_disasm.c:1018:13: error: format string is not a string literal (potentially insecure)
ok miod@
|
|
CMMU-to-CPU ratio case. This is necessary at least on the AV530 family.
|
|
Depending on DIAGNOSTICS, i82489_icr_wait() will either spin or panic in
this case. Therefore there is no need to check the flag again.
On virtualization, this saves one VMEXIT per IPI.
ok kettenis@
|
|
|
|
|
|
the inteldrm code. Fix this by adding new interfaces that can map a single
page without sleeping and use that in the execbuffer fast path that needs
this "atomic" behaviour. Should fix the panic I've seen under memory pressure
on i386.
|
|
ok mpi@, uebayasi@, dlg@
|
|
|
|
|
|
|