summaryrefslogtreecommitdiff
path: root/sys/arch/hppa
AgeCommit message (Collapse)Author
2015-07-17remove obsolete INET kernel optionTed Unangst
2015-07-14First stab at making the hppa mpsafe. Not quite there yet though.Mark Kettenis
2015-07-13First stab at making the hppa mpsafe. Not quite there yet though.Mark Kettenis
2015-07-13Remove DIAGNOSTIC code that cleans up the pmap in pmap_destroy(). Replace itMark Kettenis
with a single KASSERT that checks whether the RB tree is empty. Seems uvm was fixed some time ago and no longer leaves mappings behind. ok deraadt@
2015-07-02introduce srp, which according to the manpage i wrote is short forDavid Gwynne
"shared reference pointers". srp allows concurrent access to a data structure by multiple cpus while avoiding interlocking cpu opcodes. it manages its own reference counts and the garbage collection of those data structure to avoid use after frees. internally srp is a twisted version of hazard pointers, which are a relative of RCU. jmatthew wrote the bulk of a hazard pointer implementation and changed bpf to use it to allow mpsafe access to bpfilters. however, at s2k15 we were trying to apply it to other data structures but the memory overhead of every hazard pointer would have blown out significantly in several uses cases. a bulk of our time at s2k15 was spent reworking hazard pointers into srp. this diff adds the srp api and adds the necessary metadata to struct cpuinfo on our MP architectures. srp on uniprocessor platforms has alternate code that is optimised because it knows there'll be no concurrent access to data by multiple cpus. srp is made available to the system via param.h, so it should be available everywhere in the kernel. the docs likely need improvement cos im too close to the implementation. ok mpi@
2015-06-22document that boot.conf can contain comments;Jason McIntyre
from tilo stritzky thanks miod for help with the diff, and who also noted that leading whitespace gets stripped too;
2015-05-24Follow the recent pckbc@isa changes and always establish all the necessaryMiod Vallat
interrupts at pckbc attach time, and get rid of the `intr_establish' pckbc callback. Tested on hppa (gsckbc) and sgi (pckbc@hpc); not tested on sparc64 (pckbc@ebus) but this attachment was already behaving this way and its intr_establish callback was an empty function.
2015-05-11Remove all audio format conversion code from the kernel (btw holdingAlexandre Ratchov
the kernel_lock), as we already do better conversions in user-mode. Yet, no need for every single driver to fiddle with the conversion code as they are done transparently by common MI code. With help from armani and miod, support from mpi ok armani@
2015-05-07fix indentationJonathan Gray
ok miod@
2015-05-05emul_native is only used for kernel threads which can't dump core, soPhilip Guenther
delete coredump_trad(), uvm_coredump(), cpu_coredump(), struct md_coredump, and various #includes that are superfluous. This leaves compat_linux processes without a coredump callback. If that ability is desired, someone should update it to use coredump_elf32() and verify the results... ok kettenis@
2015-05-02rework hppa mutexes.David Gwynne
this is largely based on src/sys/arch/alpha/alpha/mutex.c r1.14 and src/sys/arch/sgi/sgi/mutex.c r1.15 always and explicitely record which cpu owns the lock (or NULL if noone owns it). improve the mutex diagnostics/asserts so they operate on the mtx_owner field rather than mtx_lock. previously the asserts would assume the lock cpu owns the lock if any of them own the lock, which blows up badly. hppa hasnt got good atomic cpu opcodes, so this still relies on ldcws to serialise access to the lock. while im here i also shuffled the code. on MULTIPROCESSOR systems instead of duplicating code between mtx_enter and mtx_enter_try, mtx_enter simply loops on mtx_enter_try until it succeeds. this also provides an alternative implementation of mutexes on !MULTIPROCESSOR systems that avoids interlocking opcodes. mutexes wont contend on UP boxes, theyre basically wrappers around spls. we can just do the splraise, stash the owner as a guard value for DIAGNOSTIC and return. similarly, mtx_enter_try on UP will never fail, so we can just call mtx_enter and return 1. tested by and ok kettenis@ jsing@
2015-04-30Remove SIZE_MAX from limits.h. It was added years ago before weTodd C. Miller
had a proper stdint.h. No ports fallout. OK guenther@ miod@
2015-04-28Don't grab the kernel lock for clock interrupts. The way we use mutexesMark Kettenis
these days is incompatible with that practice and leads to deadlocks. ok jsing@
2015-04-16Enable ualea(4) where we have uhub(4), these USB device lists cry forMartin Pieuchot
unification...
2015-02-15Change pmap_remove_holes() to take a vmspace instead of a map as its argument.Miod Vallat
Use this on vax to correctly pick the end of the stack area now that the stackgap adjustment code will no longer guarantee it is a fixed location.
2015-02-11dont need lockmgr for pmap things, so we dont need sys/lock.hDavid Gwynne
2015-02-11sys/lock.h and machine/lock.h dont provide anything this code uses.David Gwynne
2015-02-11intr.c needs atomic.h for atomic_setbits_int to say softints are pending.David Gwynne
2015-02-11Needs <sys/atomic.h> now.Miod Vallat
2015-02-11make the rwlock implementation MI.David Gwynne
each arch used to have to provide an rw_cas operation, but now we have the rwlock code build its own version. on smp machines it uses atomic_cas_ulong. on uniproc machines it avoids interlocked instructions by using straight loads and stores. this is safe because rwlocks are only used from process context and processes are currently not preemptible in our kernel. so alpha/ppc/etc might get a benefit. ok miod@ kettenis@ deraadt@
2015-02-10Convert to uiomove().Miod Vallat
ok guenther@
2015-02-10First step towards making uiomove() take a size_t size argument:Miod Vallat
- rename uiomove() to uiomovei() and update all its users. - introduce uiomove(), which is similar to uiomovei() but with a size_t. - rewrite uiomovei() as an uiomove() wrapper. ok kettenis@
2015-02-10increase min address to page size for all remaining min == 0 systems.Ted Unangst
not necessary, but consistent with other platforms. ok deraadt
2015-02-09No need to export USRSTACKMiod Vallat
2015-01-24correct the syntax description of the boot command; ok jmc@Christian Weisgerber
2015-01-20Move ps_strings "after" the random stackgap. This makes its location aMark Kettenis
per-process value, and therefpore turns the VM_PSSTRINGS sysctl into a per-process one as well. This gets rid of a pointer to the bottom of the stack at a fixed location. Also clears the road for unmapping the stackgap. ok deraadt@
2015-01-15remove .Tn; from Jan Stary <hans at stare dot cz>Ingo Schwarze
2015-01-13for the install: target, use cmp as a rough attempt for avoiding repeatedTheo de Raadt
make install from Simon Nicolussi ok jsing tedu
2015-01-11switch prototype warnings to implicit-declaration warnings.Ted Unangst
This should catch all the same bad cases, but be a little less aggravating in circumstances where a prototype isn't necessary ok deraadt
2015-01-03add new driver uslhcom(4) USB HID based UART.uaa
2014-12-17remove simplelocksTheo de Raadt
ok kettenis
2014-12-16primary change: move uvm_vnode out of vnode, keeping only a pointer.Ted Unangst
objective: vnode.h doesn't include uvm_extern.h anymore. followup changes: include uvm_extern.h or lock.h where necessary. ok and help from deraadt
2014-12-11dragonflybsd has added a urio driver. conservation of urios requiresTed Unangst
that we delete ours, which isn't actually useful. ok mpi sthen
2014-12-10retire shutdown hooks; ok deraadt, krwMike Belopuhov
2014-12-09Replace some malloc(n*size,...) calls with mallocarray().Doug Hogan
ok tedu@ deraadt@
2014-11-24use the correct capitalization for Realtek.Brad Smith
2014-11-18(except for the arm architectures...) unify the way the ld.script isTheo de Raadt
used and depended, mimicking new changes by guenther to amd64.
2014-11-16Replace a plethora of historical protection options with justTheo de Raadt
PROT_NONE, PROT_READ, PROT_WRITE, and PROT_EXEC from mman.h. PROT_MASK is introduced as the one true way of extracting those bits. Remove UVM_ADV_* wrapper, using the standard names. ok doug guenther kettenis
2014-10-31remove a duplicate pckbdvar.h include under NGSCKBD > 0Jonathan Gray
gsckbd was removed back in 2008 so this was never defined.
2014-10-26Don't forget to free() the malloc()s.Miod Vallat
2014-10-25Remove vmmap; it isn't used.Mark Kettenis
ok jsing@
2014-10-25Another uvm_km_valloc(9) -> km_alloc(9) conversion.Mark Kettenis
2014-10-23Correctly set up the HPMC trap entry: according to the PA-RISC FirmwareMiod Vallat
Architecture Reference Specification, the sum of the 8 trap entry words *and* of the payload which address and length are to be set at well-known positions in the aforementioned trap entry, needs to be zero; the existing code was only enforcing that the sum of the trap entry words is zero. This matches what Linux and NetBSD do. ok kettenis@
2014-10-23In the various desidhash_*() functions, make sure we clear the `set to clear'Miod Vallat
bit fields with their right sizes (the L2PARERR field on PCXL processors being 4 bits wide, not 1 bit), and make comments consistent accross these functions. ok kettenis@
2014-10-23Revert limiting physmem to 2GB; the culprit was likely in uvm and uvm hasMiod Vallat
changed a lot in the last 5 years; verified to work on a 3GB system, in snapshots for a few weeks already.
2014-10-15Do not panic when attempting to decode invalid condition codes, or ifMiod Vallat
the disassembler initialization fails. Correctly compute the destination of pc-relative branches.
2014-10-14Do not skip saving callee-saved registers in trap frames if compiling withoutMiod Vallat
option DDB; some parts of trap() depend upon the whole frame being populated (especially when running on PCXS processors). ok kettenis@
2014-10-10Significant unification of RAMDISK* config files, making them diffable.Theo de Raadt
This makes it easier to remove components not required to do an install, and subsequently add other desireable components ... In snapshots (in various forks) for about a week. Do some upgrades and installs, please.
2014-10-09mechanical translation of dev_lkm_dummy() to dev_notdef()Ted Unangst
2014-10-09revert unintentional commit unrelated to LKMTed Unangst