| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
| |
is necessary since the child's call stack only includes one recursive
hold of sched_lock.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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?
|
|
|
|
|
| |
with !SMP kernels. Also, replace NCPUS with MAXCPU since they are
redundant.
|
|
|
|
|
| |
of two evils; the greater evil is requiring sys/proc.h to be included
before including machine/mutex.h.
|
|
|
|
|
|
| |
NBUS, NINTR dynamic and set NCPU to a maximum of 16 under SMP.
Reviewed by: peter
|
|
|
|
| |
modules since atomic.h was updated, now is the time.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This was in the good old days to patch up a logical pagesize on hardware
with stupid VM pagesize. Vaxen I belive.
|
| |
|
|
|
|
|
|
| |
use struct mtx, struct witness, and struct witness_blessed.
Requested by: bde
|
|
|
|
| |
kdb_trap is called.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
interrupts at the proper time.
- Remove an uneeded test and just always set the MTX_RECURSE bit when
recursing on a sleep lock.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
fixes a problem where cpu_switch() wasn't properly saving and restoring
the recursion count for sched_lock.
|
| |
|
| |
|
|
|
|
| |
with and without holding the Giant mutex.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
(I didn't realise that it was this easy!)
Submitted by: jhb
|
|
|
|
| |
/sys/modules for alpha, and it compiles on beast.
|
|
|
|
| |
Nobody said it broke their system.
|
| |
|
|
|
|
| |
kvprintf() doesn't print out a sign for hex anyways.
|
|
|
|
| |
- Use extended printf format string version of KTR trace points.
|
| |
|
|
|
|
| |
points. This can't work right anyway and needs to happen in the irq thread.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
__FILE__ and __LINE__ don't get expanded usefully in inline functions.
Add const to all witness*() arguments that are filenames.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Submitted by: gallatin (content, minimization by me)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
debugging.
Acquired from: BSDi (BSD/OS)
Submitted by: dfr, grog, jake, jhb
|
|
|
|
| |
Submitted by: gallatin (content, minimization by me)
|
|
|
|
| |
Submitted by: gallatin
|
|
|
|
|
|
| |
the old files before Marcel lost the history on them.
Requested by: obrien
|
|
|
|
|
|
|
|
|
|
|
| |
few hours earlier than the rest.
The next DEVFS commit needs these functions.
Alpha versions by: dfr
i386 versions by: jakeb
Approved by: SMPng
|
|
|
|
|
|
|
| |
than LINUX_MINSIGSTKSZ but smaller than MINSIGSTKSZ, cheat and
pass MINSIGSTKSZ to the kernel. This is a workaround.
Submitted through: nate
|
| |
|
| |
|
| |
|
|
|
|
| |
This should repair consoles on the Alpha when using dynamic hints.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|