summaryrefslogtreecommitdiff
path: root/sys/arch/m88k
AgeCommit message (Collapse)Author
2007-05-29Use atomic operations to operate on netisr, instead of clearing it at splhigh.Miod Vallat
This changes nothing on legacy architectures, but is a bit faster (and simpler) on the interesting ones.
2007-05-28Move the MSIZE, MCLSHIFT, MCLBYTES and the MCLOFSETThordur I. Bjornsson
mbuf constants from MD param.h to MI param.h. Besides being the same on every arch, things will most probly break if any arch has different values then the others. The NMBCLUSTERS constants needs to be MD though; ok miod@,krw@,claudio@
2007-05-27pagemove() is no longer used.Miod Vallat
2007-05-20Since we no longer use 3 bits but the whole 7 to get the processor revisionMiod Vallat
number, we should test for 10, not 2, as the revision for which the xxx.usr errata applies; also, going through the errata, revision 2/10 (1010x) _is_ affected.
2007-05-19Send an IPI in signotify() if the process runs on a different processor,Miod Vallat
similar to the fix which went into i386 and amd64 a few weeks ago.
2007-05-19Force other processors to spin when one is in ddb.Miod Vallat
2007-05-19Simpler asm constraints for simplelock operations.Miod Vallat
2007-05-18Move proc_do_uret() around so that it can fall through no_ast instead ofMiod Vallat
jumping to it. No functional change.
2007-05-18In spl0(), really process soft interrupts at IPL_SOFT instead of whateverMiod Vallat
level we were at.
2007-05-18Revert previous revision, and do it again correctly.Miod Vallat
2007-05-16splassert_ctl defaults to 1 now, so dont wrap the checks forThordur I. Bjornsson
splassert_ctl > 0 in __predict_false(). ok deraadt@
2007-05-16The world of __HAVEs and __HAVE_NOTs is reducing. All architecturesArtur Grabowski
have cpu_info now, so kill the option. eyeballed by jsg@ and grange@
2007-05-15Remove the MI implementation of mutexes and remove the __HAVE_MUTEXArtur Grabowski
option. Every architecture implements mutexes now.
2007-05-14Work in progress IPI mechanism, currently only implemented on MVME188, toMiod Vallat
send clock ticks to secondary processors.
2007-05-14Oops, correctly handle spl-less mutexes.Miod Vallat
2007-05-12Change the 88100 interrupt handlers to process DAEs with interrupts enabled,Miod Vallat
as done for DAEs not occuring during interrupts. Remove the check for unprocessed DAE on return from trap() in eh_common.S, since this can't happen. As a result, the return-from-trap code becomes identical on 88100 and 88110 systems.
2007-05-12On multiprocessor kernels, update p->p_pcu on exit from the scheduler.Miod Vallat
2007-05-11Don't use LK_CANRECURSE for the kernel lock, okay miod@ art@Pedro Martelletto
2007-04-18Use atomic operations to change the pending software interrupt mask.Miod Vallat
2007-03-22In cmmu routines, replace splhigh() with disable_interrupts(), saves a functionMiod Vallat
pointer indirection for a similar result; also move the interrupt disabling code to the public routines, so that we do not end altering the psr more than necessary.
2007-03-21Map the kernel text read only. Because we can.Miod Vallat
2007-03-21Uninitialized variable in db_write_bytes().Miod Vallat
2007-03-21Real atomic_{set,clear}bits_int implementation, ok deraadtMiod Vallat
2007-03-15Since p_flag is often manipulated in interrupts and without biglockArtur Grabowski
it's a good idea to use atomic.h operations on it. This mechanic change updates all bit operations on p_flag to atomic_{set,clear}bits_int. Only exception is that P_OWEUPC is set by MI code before calling need_proftick and it's automatically cleared by ADDUPC. There's no reason for MD handling of that flag since everyone handles it the same way. kettenis@ ok
2007-02-19only make this interface available to the kernel for now, discussed withaTheo de Raadt
rt and such; tested and ok miod drahn
2007-02-11Rework the cache handling routines again. We now try to operate on the exactMiod Vallat
address range we've been given, rounded to cache line boundaries, instead of being lazy and operating on pages as soon as the range was large enough. Also, since the ranges we'll be invoked for are reasonably small, it does not make sense to check for segment sizes - we're always smaller, really. While there, hardcode the size in cmmu_flush_data_cache(), which becomes cmmu_flush_data_page(), since it was always invoked for complete pages.
2007-02-11Shuffle code around so that optimization of the m88110_trap() return getsMiod Vallat
computed correctly.
2007-02-06Add machine/atomic.h to all architectures and define two operationsArtur Grabowski
right now that are supposed to be atomic with respect to interrupts and SMP: atomic_setbits_int and atomic_clearbits_int. All architectures other than i386 and amd64 get dummy implementations since at first we'll be replacing operations that are done with "a |= bit" and "a &= ~bit" today. More proper implementations will follow kettenis@, miod@ ok
2007-01-13Bring back a <machine/frame.h> for m88k platforms, by splitting <machine/pcb.h>Miod Vallat
in its exception-related contents and pcb-related contents.
2007-01-12Change the secondary CMMU's data cache turn on so that do not hog theKenji Aoyama
bus while they spin, as same as 3.8. This have been missed since CMMU initialize cleanup. Also m88k_cpus[] should have 4 elements on luna88k, even in non-MULTIPROCESSOR kernel. ok miod@
2006-12-24Define PROC_PC. Then, since profiling information is being reported inMiod Vallat
statclock(), do not bother doing this in userret() anymore. As a result, userret() does not need its pc and ticks arguments, simplify.
2006-12-24Check for want_resched when processing AST and nowhere else. But then, whenMiod Vallat
doing so, do not check for signals - userret() will do this.
2006-11-29Remove cpu_swapin() and cpu_swapout(), they are no longer necessary (exceptMiod Vallat
for cpu_swapin() on hppa* which is kept).
2006-11-22Be more generous with interrupt disabling in the scheduler.Miod Vallat
2006-11-22The softintr lock needs to be an __mp_lock, not a __cpu_simple_lock.Miod Vallat
2006-11-20In syscall handlers, fix copyin() failure path wrt locking macros.Miod Vallat
2006-11-19You know you're getting too old to code when you're finding stupid bugsMiod Vallat
months later. Here, we would service ast based on p != NULL, instead of p->p_md.md_astpending != 0...
2006-11-18On 88100 systems which do not need the xxx.usr instruction workaround,Miod Vallat
override the DAE helper routines with workaroundless code while the kernel text is still writable.
2006-11-18Rework the PFSR register analysis code on mvme88k: split it into fourMiod Vallat
independent subfunctions, turn PFSR_SAVE into a couple of NOP, and replace them early at runtime with a branch to the selected routine, which will return to pfsr_save. This is really better for 188 systems.
2006-11-18Stop saving and restoring the current ipl in the pcb when switching processes,Miod Vallat
since we know we are at splsched().
2006-11-18Unwaste two delay slots in kcopy().Miod Vallat
2006-11-18In mtx_leave(), jump to the leaf splx() instead of building a frame andMiod Vallat
calling it.
2006-11-18No need to use xmem when unlocking a simple_lock.Miod Vallat
2006-11-17Move m88k memory copy and fill functions to libkern. The copy functions willMiod Vallat
no longer share the same code, but will be instead be duplicated from the same source, so that bcopy() and memcpy() do not need to check for overlap, and memcpy() and memmove() are shorter.
2006-11-16Ratibibugle struct frame and <machine/frame.h>Miod Vallat
2006-11-10Avoid an unnecessary branch for byte-by-byte copyin() and copyout().Miod Vallat
2006-11-10Fetch syscall arguments beyond r9 with copyin() from the userland stack,Miod Vallat
instead of having the userland syscall code put the first three locations from the stack in r10-r12. This will speed-up most of the system calls (but mmap) once these fetches are removed, in a few weeks from now.
2006-06-23consistantly count context switches on exit; miod@ okMichael Shalayeff
2006-06-04When VM_PHYSSEG_MAX is 1, use VM_PSTRAT_RANDOM for VM_PHYSSEG_STRAT, thisMiod Vallat
makes uvm_page.o smaller.
2006-06-01CACHE_GLOBAL is enforced at the APR level, no need to propagate it intoMiod Vallat
the individual PTEs. No functional change.