summaryrefslogtreecommitdiff
path: root/sys/arch/powerpc
AgeCommit message (Collapse)Author
2009-03-26Remove cpu_wait(). It's original use was to be called from the reaper soOwain Ainsworth
MD code would free resources that couldn't be freed until we were no longer running in that processor. However, it's is unused on all architectures since mikeb@'s tss changes on x86 earlier in the year. ok miod@
2009-03-15Let CPU_INFO_UNIT() be used before cpu0 attaches, and make sureMiod Vallat
CPU_INFO_FOREACH() only covers attached cpus. With drahn@, ok kettenis@
2009-03-15Introduce splsoftassert(), similar to splassert() but for soft interruptMiod Vallat
levels. This will allow for platforms where soft interrupt levels do not map to real hardware interrupt levels to have soft ipl values overlapping hard ipl values without breaking spl asserts.
2008-11-22cpu_unidle for macppcArtur Grabowski
ok drahn@
2008-11-21back out the new interrupt subsystem because some little bug still lurks in ↵Theo de Raadt
there
2008-11-08Get rid of va-ppc.h.Mark Kettenis
ok miod@
2008-10-23Move the va_copy define to <sys/stdrag.h> making sure it is uniformalyMark Kettenis
protected by __ISO_C_VISIBLE > 1999. With a little help from miod@. ok miod@
2008-10-17Handle pool allocation failures slightly better. ok kettenis@Dale Rahn
2008-10-15make random(9) return per-cpu values (by saving the seed in the cpuinfo),Theo de Raadt
which are uniform for the profclock on each cpu in a SMP system (but using a different seed for each cpu). on all cpus, avoid seeding with a value out of the [0, 2^31-1] range (since that is not stable) ok kettenis drahn
2008-10-10Define MAXCPUS on all architectures.Artur Grabowski
For now, sparc64 is arbitrarily set to 256 (only architecture that didn't have a practical limit in the code on the number of cpus).
2008-09-19miod pointed out that some items were multiply defined (patched intoDale Rahn
existance too many times).
2008-09-18Redesign of the powerpc interrupt architecture, use true levels intead ofDale Rahn
blocking specific interrupts. Needs signficant testing to prove that one remaining elusive bug has been squashed.
2008-09-16SMP ddb support, with some feedback from kettenis.Dale Rahn
2008-09-13Kernel map is supposed to only allocate from the limited kernel addresses,Dale Rahn
panic if the kernel attempts to map an improper address.
2008-09-07- replace dtoa w/ David's gdtoa, version 2008-03-15Martynas Venckus
- provide proper dtoa locks - use the real strtof implementation - add strtold, __hdtoa, __hldtoa - add %a/%A support - don't lose precision in printf, don't round to double anymore - implement extended-precision versions of libc functions: fpclassify, isnan, isinf, signbit, isnormal, isfinite, now that the ieee.h is fixed - separate vax versions of strtof, and __hdtoa - add complex math support. added functions: cacos, casin, catan, ccos, csin, ctan, cacosh, casinh, catanh, ccosh, csinh, ctanh, cexp, clog, cabs, cpow, csqrt, carg, cimag, conj, cproj, creal, cacosf, casinf, catanf, ccosf, csinf, ctanf, cacoshf, casinhf, catanhf, ccoshf, csinhf, ctanhf, cexpf, clogf, cabsf, cpowf, csqrtf, cargf, cimagf, conjf, cprojf, crealf - add fdim, fmax, fmin - add log2. (adapted implementation e_log.c. could be more acruate & faster, but it's good enough for now) - remove wrappers & cruft in libm, supposed to work-around mistakes in SVID, etc.; use ieee versions. fixes issues in python 2.6 for djm@ - make _digittoint static - proper definitions for i386, and amd64 in ieee.h - sh, powerpc don't really have extended-precision - add missing definitions for mips64 (quad), m{6,8}k (96-bit) float.h for LDBL_* - merge lead to frac for m{6,8}k, for gdtoa to work properly - add FRAC*BITS & EXT_TO_ARRAY32 definitions in ieee.h, for hdtoa&ldtoa to use - add EXT_IMPLICIT_NBIT definition, which indicates implicit normalization bit - add regression tests for libc: fpclassify and printf - arith.h & gd_qnan.h definitions - update ieee.h: hppa doesn't have quad-precision, hppa64 does - add missing prototypes to gdtoaimp - on 64-bit platforms make sure gdtoa doesn't use a long when it really wants an int - etc., what i may have forgotten... - bump libm major, due to removed&changed symbols - no libc bump, since this is riding on djm's libc major crank from a day ago discussed with / requested by / testing theo, sthen@, djm@, jsg@, merdely@, jsing@, tedu@, brad@, jakemsr@, and others. looks good to millert@ parts of the diff ok kettenis@ this commit does not include: - man page changes
2008-07-21- add proper double_t and float_t definitions for each archMartynas Venckus
- math.h shouldn't define FLT_EVAL_METHOD, but float.h should (per C99). remove from math.h, and add proper definitions in float.h ok millert@
2008-07-18Add a macro that clears the want_resched flag that need_resched sets.Artur Grabowski
Right now when mi_switch picks up the same proc, we didn't clear the flag which would mean that every time we service an AST we would attempt a context switch. For some architectures, amd64 being probably the most extreme, that meant attempting to context switch for every trap and interrupt. Now we clear_resched explicitly after every context switch, even if it didn't do anything. Which also allows us to remove some more code in cpu_switchto (not done yet). miod@ ok
2008-06-26First pass at removing clauses 3 and 4 from NetBSD licenses.Ray Lai
Not sure what's more surprising: how long it took for NetBSD to catch up to the rest of the BSDs (including UCB), or the amount of code that NetBSD has claimed for itself without attributing to the actual authors. OK deraadt@
2008-06-14A bunch of pool_get() + bzero() -> pool_get(..., .. | PR_ZERO)Michael Knudsen
conversions that should shave a few bytes off the kernel. ok henning, krw, jsing, oga, miod, and thib (``even though i usually prefer FOO|BAR''; thanks for looking.
2008-06-06Remove long dead meat.Miod Vallat
2008-05-21Remove <machine/elf_abi.h> on platforms which have it. Nothing in the treeMiod Vallat
needs the few MD definitions they (sometimes) provide; only binutils is interested in them, but binutils provide their own include files for that purpose anyway. ok deraadt@ kettenis@
2008-05-21ddb expects the kernel longjmp() to only take a single parameter and alwaysMiod Vallat
return 1 since 12+ years, it's about time to fix the offending ports. Reported by Pierre Riteau (firstname.lastname at gmail)
2008-05-15Remove commented out NetBSD __KERNEL_RCSID macro usage.Brad Smith
ok dlg@ miod@
2008-05-04Manage interrupts based on priority better, still working on this...Dale Rahn
2008-05-03Do not acquire the kernel lock for SY_NOLOCK system calls; ok drahn@ kettenis@Miod Vallat
2008-05-02implement rw_cas, "go for it" miod@Dale Rahn
2008-05-01Implement a nop IPI to signal other CPUs.Mark Kettenis
ok drahn@
2008-04-29PIR is not defined to be a writable register, do not use it.Dale Rahn
2008-04-27FPU/Altivec cleanup and prep for SMP.Dale Rahn
2008-04-27Switch to proc based ast pending for SMP. ok kettenis.Dale Rahn
2008-04-26Changes to get closer to SMP.Dale Rahn
add biglock before interrupt calls into the kernel. switch the clock to using cpuinfo variables instead of globals move cpu_switchto into C code so that on multiprocessor the FPU and Altivec can be saved before switching CPUs. add a lock into pmap when modifying the hash table.
2008-04-25neccessary -> necessary; from Pierre RiteauJason McIntyre
2007-12-04Remove remains of the idle pcb/stack.Mark Kettenis
ok miod@
2007-11-25libkern, begone. Move to a new mechanism where config(8)'s "file"Theo de Raadt
directive can select between MI and MD versions of these files. At the same time, adjust the boot programs to pick exactly what they need, instead of the 7 or 8 mechanisms previously used. There will be some fallout from this, but testing it all by myself is a ridiculously slow process; it will be finished in-tree. Various developers were very nice and avoided making fun of me when I was gibbering in the corner..
2007-11-14prettify the RCS id (less whitespace)Thordur I. Bjornsson
2007-11-14Turn the spl* macros into functions.Thordur I. Bjornsson
Shaves a few bytes of the kernel. No measurable performance loss. ok drahn@, kettenis@
2007-11-04replace even more ctob/btoc with ptoa/atopMartin Reindl
2007-10-27Grab kernel lock for EXC_DSI.Mark Kettenis
Requested by deraadt@
2007-10-21Make certain the output buffer is zeroed before starting processing.Dale Rahn
2007-10-13Remove leftovers art forgot to prune...Miod Vallat
2007-10-10Make context switching much more MI:Artur Grabowski
- Move the functionality of choosing a process from cpu_switch into a much simpler function: cpu_switchto. Instead of having the locore code walk the run queues, let the MI code choose the process we want to run and only implement the context switching itself in MD code. - Let MD context switching run without worrying about spls or locks. - Instead of having the idle loop implemented with special contexts in MD code, implement one idle proc for each cpu. make the idle loop MI with MD hooks. - Change the proc lists from the old style vax queues to TAILQs. - Change the sleep queue from vax queues to TAILQs. This makes wakeup() go from O(n^2) to O(n) there will be some MD fallout, but it will be fixed shortly. There's also a few cleanups to be done after this. deraadt@, kettenis@ ok
2007-09-15[fF]uther -> [fF]urther in comments and man page. First one spotted onKenneth R Westerback
tech@ by Jung.
2007-09-10Introduce a md pmap hook, pmap_remove_holes(), which is supposed to markMiod Vallat
the holes a MMU may have from a given vm_map. This will be automagically invoked for newly created vmspaces. On platforms with MMU holes (e.g. sun4, sun4c and vax), this prevents mmap(2) hints which would end up being in the hole to be accepted as valid, causing unexpected signals when the process tries to access the hole (since pmap can not fill the hole anyway). Unfortunately, the logic mmap() uses to pick a valid address for anonymous mappings needs work, as it will only try to find an address higher than the hint, which causes all mmap() with a hint in the hole to fail on vax. This will be improved later.
2007-09-09Make sure ptrace(2) cannot change any priviliged bits in the Machine StateMark Kettenis
Register. Fixes PR 5574. From Stefan Kempf. ok deraadt@
2007-06-20In vunmapbuf(), explicitely remove mappings before invoking uvm_km_free().Miod Vallat
Even if the latter would end up removing the mappings by itself, it would do so using pmap_remove() because phys_map is not intrsafe; but some platforms use pmap_kenter_pa() in vmapbuf(). By removing the mappings ourselves, we can ensure the remove function used matches the enter function which has been used. Discussed and theoretical ok art@
2007-05-31panic if mtx_leave is called on an unlocked mutex. ok kettenis@Dale Rahn
2007-05-29Panic if the locker is self.Dale Rahn
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-27Move powerpc to vm_page_md, 'throw it in' kettenis@Dale Rahn