summaryrefslogtreecommitdiffstats
path: root/sys/alpha
Commit message (Collapse)AuthorAgeFilesLines
...
* Clear pcb_schednest in cpu_fork() for the child process. This isdfr2000-10-031-0/+7
| | | | | is necessary since the child's call stack only includes one recursive hold of sched_lock.
* Big mbuf subsystem diff #1: incorporate mutexes and fix things up somewhatbmilekic2000-09-301-13/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to accomodate the changes. Here's a list of things that have changed (I may have left out a few); for a relatively complete list, see http://people.freebsd.org/~bmilekic/mtx_journal * Remove old (once useful) mcluster code for MCLBYTES > PAGE_SIZE which nobody uses anymore. It was great while it lasted, but now we're moving onto bigger and better things (Approved by: wollman). * Practically re-wrote the allocation macros in sys/sys/mbuf.h to accomodate new allocations which grab the necessary lock. * Make sure that necessary mbstat variables are manipulated with corresponding atomic() routines. * Changed the "wait" routines, cleaned it up, made one routine that does the job. * Generalized MWAKEUP() macro. Got rid of m_retry and m_retryhdr, as they are now included in the generalized "wait" routines. * Sleep routines now use msleep(). * Free lists have locks. * etc... probably other stuff I'm missing... Things to look out for and work on later: * find a better way to (dynamically) adjust EXT_COUNTERS * move necessity to recurse on a lock from drain routines by providing lock-free lower-level version of MFREE() (and possibly m_free()?). * checkout include of mutex.h in sys/sys/mbuf.h - probably violating general philosophy here. The code has been reviewed quite a bit, but problems may arise... please, don't panic! Send me Emails: bmilekic@freebsd.org Reviewed by: jlemon, cp, alfred, others?
* Move MAXCPU from machine/smp.h to machine/param.h to fix breakageps2000-09-235-12/+12
| | | | | with !SMP kernels. Also, replace NCPUS with MAXCPU since they are redundant.
* #include <sys/proc.h> in order to get curproc. This seems to be the lesserjasone2000-09-231-2/+1
| | | | | of two evils; the greater evil is requiring sys/proc.h to be included before including machine/mutex.h.
* Remove the NCPU, NAPIC, NBUS, NINTR config options. Make NAPIC,ps2000-09-221-2/+0
| | | | | | NBUS, NINTR dynamic and set NCPU to a maximum of 16 under SMP. Reviewed by: peter
* Remove atomic_*_{32,64} since they are now inline. If you haven't rebuiltdfr2000-09-221-81/+0
| | | | modules since atomic.h was updated, now is the time.
* Add a new driver for the AMD PCnet/FAST, FAST+ and Home PCI adapters.wpaul2000-09-202-0/+2
| | | | | | | | | | | | | | Previously, these cards were supported by the lnc driver (and they still are, but the pcn driver will claim them first), which is fine except the lnc driver runs them in 16-bit LANCE compatibility mode. The pcn driver runs these chips in 32-bit mode and uses the RX alignment feature to achieve zero-copy receive. (Which puts it in the same class as the xl, fxp and tl chipsets.) This driver is also MI, so it will work on the x86 and alpha platforms. (The lnc driver is still needed to support non-PCI cards. At some point, I'll need to newbusify it so that it too will me MI.) The Am79c978 HomePNA adapter is also supported.
* Remove a few leftover CLBYTES related bits.phk2000-09-161-7/+0
| | | | | This was in the good old days to patch up a logical pagesize on hardware with stupid VM pagesize. Vaxen I belive.
* Grab the scheduler lock before calling setrunqueue() and mi_switch().jhb2000-09-141-0/+2
|
* Remove the mtx_t, witness_t, and witness_blessed_t types. Instead, justjhb2000-09-143-37/+35
| | | | | | use struct mtx, struct witness, and struct witness_blessed. Requested by: bde
* Don't release Giant for db_nofault exceptions since it isn't held whendfr2000-09-141-1/+0
| | | | kdb_trap is called.
* - Remove the inthand2_t type and use the equivalent driver_intr_t type fromjhb2000-09-132-3/+1
| | | | | | | | | | | | | newbus for referencing device interrupt handlers. - Move the 'struct intrec' type which describes interrupt sources into sys/interrupt.h instead of making it just be a x86 structure. - Don't create 'ithd' and 'intrec' typedefs, instead, just use 'struct ithd' and 'struct intrec' - Move the code to translate new-bus interrupt flags into an interrupt thread priority out of the x86 nexus code and into a MI ithread_priority() function in sys/kern/kern_intr.c. - Remove now-uneeded x86-specific headers from sys/dev/ata/ata-all.c and sys/pci/pci_compat.c.
* - Fix spinlock exiting to handle recursion properly and only enablejhb2000-09-131-5/+7
| | | | | | interrupts at the proper time. - Remove an uneeded test and just always set the MTX_RECURSE bit when recursing on a sleep lock.
* - Fix spinlock exits to properly handle the recursion count and onlyjhb2000-09-131-43/+59
| | | | | | | | | | | | | | | re-enable interrupts when actually releasing the lock. - Bring across some fixes to propagate_priority from the x86 code. (It still doesn't work properly, however.) - Use the SMTX state when putting a process that blocks on a mutex to sleep. - Use mi_switch instead of cpu_switch so that accounting works properly as well as other things. - Bring across DDB protection of the spinlock timeout panic which is useful in a multiple CPU system when 1 CPU enters the debugger holding the sched_lock so that the other CPU doesn't panic as well resulting in all sorts of fun things. - Bring across various other small changes in format strings and comments to sync up with the x86 code.
* Import the global sched_lock variable instead of using a private copy. Thisjhb2000-09-131-0/+1
| | | | | fixes a problem where cpu_switch() wasn't properly saving and restoring the recursion count for sched_lock.
* Fix a comment, we have mutexes now instead of a single lock.jhb2000-09-131-1/+1
|
* Add back in obtaining/releasing Giant around interrupt handlers.jhb2000-09-131-0/+10
|
* Merge changes from the i386 port to allow userret() to be called bothdfr2000-09-121-11/+37
| | | | with and without holding the Giant mutex.
* * Redo the cmpset inlines to use one less register. This incidentallydfr2000-09-121-22/+156
| | | | | | | | | | | fixes a serious problem with the previous version where an input could have been placed in the same register as an output which would stop the inline from working properly. * Redo atomic_{set,clear,add,subtract}_{32,64} as inlines since the code sequence is shorter than the call sequence to the code in atomic.s. I will remove the functions from atomic.s after a grace period to allow people to rebuild kernel modules.
* Really disable interrupts for spin mutexes instead of just pretending.dfr2000-09-121-8/+6
|
* Turn the /dev/random device into a (pseudo-)device, not an option.markm2000-09-122-2/+2
| | | | | (I didn't realise that it was this easy!) Submitted by: jhb
* Add tx to the list of miibus using network drivers. We already build tx inbillf2000-09-112-0/+2
| | | | /sys/modules for alpha, and it compiles on beast.
* Well, this works for me and I can now boot my PC164 again.mjacob2000-09-111-34/+41
| | | | Nobody said it broke their system.
* The alpha doesn't have a eflags register, so don't refer to it here.jhb2000-09-111-2/+0
|
* Don't tell printf() to output a sign when printing out a value as hex.jhb2000-09-111-1/+1
| | | | kvprintf() doesn't print out a sign for hex anyways.
* - Remove duplicate cp_time declaration.jhb2000-09-111-4/+2
| | | | - Use extended printf format string version of KTR trace points.
* Relocate sys/systm.h #include to quiet warning.jhb2000-09-111-1/+1
|
* Remove the manipulation of the Giant mutex from the interrupt entrydfr2000-09-101-10/+0
| | | | points. This can't work right anyway and needs to happen in the irq thread.
* Fix printf warnings.dfr2000-09-101-2/+2
|
* Fix printf warnings in CTRx calls.dfr2000-09-101-15/+15
|
* Update to work with the current version of KTR.dfr2000-09-101-74/+43
|
* Style cleanups. No functional changes.jasone2000-09-091-71/+63
|
* Add file and line arguments to WITNESS_ENTER() and WITNESS_EXIT, sincejasone2000-09-091-16/+16
| | | | | | __FILE__ and __LINE__ don't get expanded usefully in inline functions. Add const to all witness*() arguments that are filenames.
* LINT -> NOTESalex2000-09-091-2/+2
|
* Add missing \'s to multline macros used for assertions.jhb2000-09-091-2/+2
|
* Use inline functions instead of macros for mtx_enter(), mtx_try_enter(),jasone2000-09-081-146/+160
| | | | | | | | | | | and mtx_exit(). This change tracks the i386 version. Rename mtx_enter(), mtx_try_enter(), and mtx_exit() and wrap them with cpp macros that expand to pass filename and line number information. This is necessary since we're using inline functions instead of macros now. Add const to the filename pointers passed througout the mtx and witness code.
* Only call kdb_trap() if the DDB config option is specified.jasone2000-09-081-0/+2
|
* Minimal set of diffs from the i386 bits to the AlphaLinux.obrien2000-09-071-406/+127
| | | | Submitted by: gallatin (content, minimization by me)
* Major update to the way synchronization is done in the kernel. Highlightsjasone2000-09-0730-196/+3111
| | | | | | | | | | | | | | | include: * Mutual exclusion is used instead of spl*(). See mutex(9). (Note: The alpha port is still in transition and currently uses both.) * Per-CPU idle processes. * Interrupts are run in their own separate kernel threads and can be preempted (i386 only). Partially contributed by: BSDi (BSD/OS) Submissions by (at least): cp, dfr, dillon, grog, jake, jhb, sheldonh
* Add KTR, a facility that logs kernel events in order to to facilitatejasone2000-09-071-0/+148
| | | | | | | debugging. Acquired from: BSDi (BSD/OS) Submitted by: dfr, grog, jake, jhb
* Minimal set of diffs from the i386 bits to the AlphaLinux.obrien2000-09-063-499/+217
| | | | Submitted by: gallatin (content, minimization by me)
* Add the AlphaLinux locore support.obrien2000-09-061-0/+50
| | | | Submitted by: gallatin
* Revive these files in their new location. These were repo copied frompeter2000-09-061-0/+437
| | | | | | the old files before Marcel lost the history on them. Requested by: obrien
* Introduce atomic_cmpset_int() and atomic_cmpset_long() from SMPng aphk2000-09-061-19/+86
| | | | | | | | | | | few hours earlier than the rest. The next DEVFS commit needs these functions. Alpha versions by: dfr i386 versions by: jakeb Approved by: SMPng
* When sigaltstack is called with a stack size that's not smallermarcel2000-09-062-1/+5
| | | | | | | than LINUX_MINSIGSTKSZ but smaller than MINSIGSTKSZ, cheat and pass MINSIGSTKSZ to the kernel. This is a workaround. Submitted through: nate
* Add AS1200 (Tincup) to descriptionwilko2000-09-042-2/+2
|
* LINT -> NOTESwilko2000-09-042-6/+6
|
* Complain if we cannot find loader(8) metadata.peter2000-09-031-0/+2
|
* Find the module metadata before the console init rather than after.peter2000-09-031-2/+4
| | | | This should repair consoles on the Alpha when using dynamic hints.
* A quick fix to get around a problem (described below) with cia basedgallatin2000-09-022-3/+5
| | | | | | | | | | | | | | | | | machines. The patch uses an existing global variable in place of the newbus accessor to get at use_bwx. This is a quick fix to get miatas booting again; somebody with more newbus skills than I can muster will have to correct it. Matt Jacob's description of the problem from the -alpha list: The IVAR accessor stuff for pcib is incompletely specified for CIA. There's only one accessor defined, and that's to get the BUS instance number. <..> The device methods that try and get at the use_bwx get overriden because there's only one ivar for CIA's pcib, and that's for hose #, and it's always zero.
OpenPOWER on IntegriCloud