summaryrefslogtreecommitdiff
path: root/sys/arch/m88k
AgeCommit message (Collapse)Author
2013-02-20Increase maximum text and data size limits, and double the default data sizeMiod Vallat
limit. This allows c++ memory hogs, such as pcre's pcrecpp_unittest.cc, to compile on m88k.
2013-02-19Introduce a new cmmu method to return the preferred cache mode bits for theMiod Vallat
kernel APR. Return write-back for every design but those involving 88410, where write through is returned. Apparently the use of writeback on single-processor kernels using 88410 (197SP, 197DP) has only been working by fat chance, and the last two years of uvm changes, as well as the switch to ELF (causing kernel rodata to move `up') exposes silent memory corruption on (88410-size) aliased addresses. (I am guilty of not using my 197DP board much after making 197LE write-back capable, as 197LE turned out to be faster and more stable, for I would have noticed this earlier). Further thought needs to happen about this. It might be possible to switch to writeback by default again as long as bus_dma maps things write-through on 88410 designs, and perhaps with a part of the kernel mapped with a write-through BATC, since BATC have precedence upon page tables. Right now I'm trying to get a stable release out of the door.
2013-02-17Constify struct cmmu.Miod Vallat
2013-02-17Missing end-of-commentMiod Vallat
2013-02-14A really working version of MCOUNT.Miod Vallat
2013-02-14Be sure to writeback D$ in addition to invalidate I$ in pmap_proc_iflush(),Miod Vallat
or I$ may reload with stale data. It used to work without this because the kernel used to run in write-through mode. Repairs gdb single-stepping.
2013-02-12Back out per-CPU kernel profiling, it shouldn't modify a public headerMartin Pieuchot
at this moment.
2013-02-11Fix kernel profiling on MP systems by using per-CPU buffer. PreviouslyMartin Pieuchot
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@
2013-02-09No longer define the a.out relocation format struct.Miod Vallat
2013-01-26Make sure new processes get a clean FPU configuration upon startup, byMiod Vallat
resetting the appropriate register in setregs(). Similar in spirit to what m68k does (restoring a null frame), and necessary since m88k doesn't do lazy fpu switching.
2013-01-16cpu_coredump() also needs to invoke vn_rdwr() without IO_NODELOCKED; onlyMiod Vallat
affects a.out binaries' core dumps.
2013-01-11Do not use `#' to introduce comments anymore, as(1) will no longer supportMiod Vallat
this RSN.
2013-01-11Make ENTRY() generate a .type @function declaration as well if __ELF__.Miod Vallat
Add an END() macro, to be used to match ENTRY(), which produces a .size directive.
2013-01-07Correctly signal SIGSEGV, instead of SIGBUS, for faults caused by access toMiod Vallat
pages mapped without read (or write) permissions. The existing logic would incorrectly match uvm_fault() returning EACCES with the CMMU fault logic reporting a bus error (which will still cause SIGBUS to be sent).
2013-01-05Switch m88k ports to ELF.Miod Vallat
2013-01-01Crank NMBCLUSTERS to 4096 to match other 32-bit platforms.Miod Vallat
2013-01-01Add a "memory" clobber to the flush_pipeline() assembly construct, to make sureMiod Vallat
the compiler won't try to outsmart me.
2012-12-31Remove emulation errno mapping code from platforms that no longer havePhilip Guenther
non-native emulations. ok miod@
2012-12-30Prevent a branch-with-delay-slot instruction to be the delay slot of a previousMiod Vallat
branch-with-delay-slot instruction, in the 88100 exception code path, in kernels configured without DDB. This is undefined behaviour, but we have apparently be lucky enough since RAMDISK is known to work on 88100.
2012-12-04Remove the gcc 2 m88k varargs logic. You gave me a lot of trouble and no pony,Miod Vallat
therefore I don't mind you rotting in the Attic for eternity (scheduled to start on the 21st anyway, according to MayaBSD developers). reminded by deraadt@
2012-12-02Determine whether we're currently on the alternative signal stackPhilip Guenthe
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@
2012-09-15Adapt ieee.h, gdtoa and libc to the fact that we don't have 80-bitMartynas Venckus
floats on m88k. Agreed by miod@.
2012-09-15m88k does not have the m68k long double type actually (long double == doubleMiod Vallat
on this platform), so don't pretend it does, and don't build long double libm routines.
2012-08-22sigpid should be of type pid_t (only visable with DEBUG).Okan Demirmen
ok miod@ (who found others to fix as well)
2012-08-07<sys/ktrace.h> is now pulled in via <sys/syscall_mi.h>, so drop it from herePhilip Guenthe
2012-08-07Move the common bits of syscall invocation and return handling intoPhilip Guenthe
an MI file, <sys/syscall_mi.h>, correcting inconsistencies and the handling when copyin() of arguments fails. Tested on i386, amd64, sparc64, and alpha (thanks naddy@) Any issues with other platforms will be fixed in tree. header name from millert@; ok miod@
2012-06-26create new machine/_float.h which is namespace clean. create a newTheo de Raadt
MI float.h which pulls in and defines the values that are needed from there, and repair sys/limits.h so that it defines the values it needs as well (depending on POSIX version, XPG version, etc). guenther has a more exact selection of that coming for limits.h. this also fixes a few mistakes for the vax. reviewed by kettenis and guenther.
2012-05-09Do not include <machine/reg.h> and pollute userland namespace with struct regMiod Vallat
in <machine/signal.h>.
2012-04-11The first ktrace record for a newly spawned thread is a returnMike Belopuhov
from a fork syscall done by the parent. Use __tfork, not rfork here to match the ktrace records for the parent (CALL __tfork, RET __tfork). ok guenther
2012-03-23Make rusage totals, itimers, and profile settings per-process insteadPhilip Guenthe
of per-rthread. Handling of per-thread tick and runtime counters inspired by how FreeBSD does it. ok kettenis@
2011-11-16Make userret() MI. On architectures which jammed stuff into it in theTheo de Raadt
past, pull that code out seperately. ok guenther miod
2011-11-15label_t is the kernel setjmp buffer. It should simply be an array ofTheo de Raadt
the right type, noone will ever fiddle with the internals. discussed with jsing
2011-10-27Specify the TLS variant for each platform.Philip Guenthe
2011-10-25Replace the naive 88110 tlb update code, which would always invalidate theMiod Vallat
whole tlb (32 of 'em), with smarter `tlb probe and update with new pte if tlb match found' code. This makes the 88110-specific pmap_update() unnecessary, as updates are no longer aggregated to avoid the number of flushes. This also makes tlb handling similar between 88100 and 88110, from the pmap's point of view, so there is no need to use different routines. No impact on 88100, no user-noticeable performance change on 88100 GENERIC, slight improvement on 88110 GENERIC.MP.
2011-10-09Let BUS_DMA_COHERENT allocations return cache-inhibited pages.Miod Vallat
2011-10-09Finally fix the kernel mode apr to remove the forced write-through cacheMiod Vallat
control, and enjoy the joys of write back (16% performance improvement for non-cpu bound workloads). While there, there is no need to map the page tables cache inhibited on 88100 systems; they only need to be write-through, and snooping will do the rest. Kernel WB is still disabled on 88110 SMP kernels, until the last MP bootstrap bug is understood and fixed.
2011-10-09Split the tlb invalidate routines into 88100 and 88110 specific routines, ↵Miod Vallat
and use function pointers to invoke them (if they can't be choosen at compile-time depending upon the kernel configuration). The routines now get the new pte value as an extra argument; they don't use it yet, but code I am working on will soon on 88110.
2011-10-09Correctly handle invalidate of partial cache lines, for the Nth time.Miod Vallat
2011-10-09Rework secondary processor initialization. cmmu initialization is nowMiod Vallat
performed much earlier in the processor startup. No visible change, paves the way for the much important diff three commits from here.
2011-09-08Provide namespace-safe alignment macros in <machine/_types.h>, withPhilip Guenthe
compat names kept in <machine/param.h>. In <sys/socket.h>, pull in <sys/_types.h> instead of the namespace polluting <machine/param.h> and completely eliminate __CMSG_ALIGN, replaced by _ALIGN ok deraadt@
2011-09-08Make the INT_FAST*_{MIN,MAX} macros match the types they're defined to.Philip Guenthe
Since the underlying types of the int_fast types are set by machine/_types.h, put internal macros in that same file and define the exposed INT_FAST*_{MIN,MAX} macros from those. ok millert@, kettenis@
2011-08-29Only provide FLT_EVAL_METHOD for C99. Add missing DECIMAL_DIG for C99.Mark Kettenis
ok guenther@
2011-07-11Revert art@'s moving around of the KERNEL_LOCK()/KERNEL_UNLOCK() calls,Philip Guenthe
as it causes hangs in some ports, including libsigsegv's configure script confirmed by krw@, landry@
2011-07-07There is a bunch of places in the kernel entry points where we don'tArtur Grabowski
hold the kernel lock, but still need call one function that needs it. Instead of grabbing the lock all over the place, move the locks into the affected functions: trapsignal, scdebug*, ktrsyscall, ktrsysret, systrace_redirect and ADDUPROF. In the cases we already hold the biglock we'll just recurse. kettenis@, beck@ ok
2011-07-06Clean up after P_BIGLOCK removal.Artur Grabowski
KERNEL_PROC_LOCK -> KERNEL_LOCK KERNEL_PROC_UNLOCK -> KERNEL_UNLOCK oga@ ok
2011-07-05Recommit the reverted sigacts change now that the NFS use-after-freePhilip Guenthe
problem has been tracked down. This fixes the sharing of the signal handling state: shared bits go in sigacts, per-rthread bits goes in struct proc. ok deraadt@
2011-05-30Remove the freelist member from vm_physsegOwain Ainsworth
The new world order of pmemrange makes this data completely redundant (being dealt with by the pmemrange constraints instead). Remove all code that messes with the freelist. While touching every caller of uvm_page_physload() anyway, add the flags argument to all callers (all but one is 0 and that one already used PHYSLOAD_DEVICE) and remove the macro magic to allow callers to continue without it. Should shrink the code a bit, as well. matthew@ pointed out some mistakes i'd made. ``freelist death, I like. Ok.' ariane@ `I agree with the general direction, go ahead and i'll fix any fallout shortly'' miod@ (68k 88k and vax i could not check would build)
2011-05-25Also enclose variable names with external linkage in __BEGIN_DECLS.Martynas Venckus
Doesn't matter much since C++ ABI used by GCC doesn't mangle variable names; however technically is required by Section 7.5 of the C++ spec. Discussed with/OK guenther@, matthew@.
2011-04-28fenv improvements and cleanupsMartynas Venckus
2011-04-21Revert the ``remove the `skip splraise/splx for IPL_NONE mutexes' optimization''Miod Vallat
change. It seems to have unexpected side effects, especially on MP systems, and drahn@ disagrees with the way this change has been done and think there is a better way to solve the original problem of msleep() fiddling with mutex internals.