dragonfly.git
15 years agoAnother terrible hack to leave interrupts disabled until the USB bus
Matthew Dillon [Fri, 10 Jun 2005 18:33:04 +0000 (18:33 +0000)]
Another terrible hack to leave interrupts disabled until the USB bus
has completed initialization.

15 years agoAttempt to avoid a livelocked USB interrupt during boot by not enabling
Matthew Dillon [Fri, 10 Jun 2005 18:21:11 +0000 (18:21 +0000)]
Attempt to avoid a livelocked USB interrupt during boot by not enabling
the EHCI interrupt until after all the companion controllers have been
attached.

15 years agoRemove spl*() in dev/raid/{mlx,mly,pst,twa,twe} and replace them
Sascha Wildner [Fri, 10 Jun 2005 17:10:26 +0000 (17:10 +0000)]
Remove spl*() in dev/raid/{mlx,mly,pst,twa,twe} and replace them
with critical sections.

15 years agoRemove a useless assignment. Move callout_reset into critical section.
Joerg Sonnenberger [Fri, 10 Jun 2005 16:19:41 +0000 (16:19 +0000)]
Remove a useless assignment. Move callout_reset into critical section.

15 years agoUse epic_detach for error cleanup during attach. Make attach interrupt
Joerg Sonnenberger [Fri, 10 Jun 2005 16:16:51 +0000 (16:16 +0000)]
Use epic_detach for error cleanup during attach. Make attach interrupt
safe by hooking the interrupt in last.

15 years agoMove the callout_reset into the critical section.
Joerg Sonnenberger [Fri, 10 Jun 2005 16:10:42 +0000 (16:10 +0000)]
Move the callout_reset into the critical section.

15 years agoUse the PCI helper functions and nuke now unused macros.
Joerg Sonnenberger [Fri, 10 Jun 2005 16:05:34 +0000 (16:05 +0000)]
Use the PCI helper functions and nuke now unused macros.

Submitted-by: Sepherosa Ziehau <sepherosa@gmail.com>
15 years agoif_printf / device_printf
Joerg Sonnenberger [Fri, 10 Jun 2005 16:02:47 +0000 (16:02 +0000)]
if_printf / device_printf

Submitted-by: Sepherosa Ziehau <sepherosa@gmail.com>
15 years agoRemove spl*() in dev/raid/{dpt,ida,iir} and replace them
Sascha Wildner [Fri, 10 Jun 2005 15:46:31 +0000 (15:46 +0000)]
Remove spl*() in dev/raid/{dpt,ida,iir} and replace them
with critical sections.

15 years agoRemove unused variables.
Sascha Wildner [Fri, 10 Jun 2005 15:29:17 +0000 (15:29 +0000)]
Remove unused variables.

15 years agoReorder critical sections to be as short as possible by moving invariants out.
Joerg Sonnenberger [Fri, 10 Jun 2005 15:13:37 +0000 (15:13 +0000)]
Reorder critical sections to be as short as possible by moving invariants out.

15 years agoAdd /usr/pkg/etc/rc.d to the rcNG search list.
Joerg Sonnenberger [Fri, 10 Jun 2005 12:53:45 +0000 (12:53 +0000)]
Add /usr/pkg/etc/rc.d to the rcNG search list.

15 years agoFix ctype::is() by using the right array
Simon Schubert [Thu, 9 Jun 2005 23:38:00 +0000 (23:38 +0000)]
Fix ctype::is() by using the right array

15 years agoRemove spl*() in dev/raid/{aac,amr,asr,ciss} and replace them
Sascha Wildner [Thu, 9 Jun 2005 20:55:05 +0000 (20:55 +0000)]
Remove spl*() in dev/raid/{aac,amr,asr,ciss} and replace them
with critical sections.

15 years agoUnbreak LINT by including <sys/thread2.h> where proper and remove some
Sascha Wildner [Thu, 9 Jun 2005 20:47:37 +0000 (20:47 +0000)]
Unbreak LINT by including <sys/thread2.h> where proper and remove some
unused s variables.

15 years agoFix typo that turns out to be harmless by accident, as MT_HEADER and
Jeffrey Hsu [Thu, 9 Jun 2005 20:17:53 +0000 (20:17 +0000)]
Fix typo that turns out to be harmless by accident, as MT_HEADER and
M_PKTHDR have the same value, 2.

15 years agoConvert to critical sections. No need to protect the interupt from racing
Joerg Sonnenberger [Thu, 9 Jun 2005 20:04:44 +0000 (20:04 +0000)]
Convert to critical sections. No need to protect the interupt from racing
against itself.

15 years agoConvert to critical sections, move timer reset into the protection.
Joerg Sonnenberger [Thu, 9 Jun 2005 19:45:12 +0000 (19:45 +0000)]
Convert to critical sections, move timer reset into the protection.

15 years agoExplicitly note that updating from pre-1.2 to PREVIEW or HEAD is not
Joerg Sonnenberger [Thu, 9 Jun 2005 19:39:18 +0000 (19:39 +0000)]
Explicitly note that updating from pre-1.2 to PREVIEW or HEAD is not
supported, the intermediate step to 1.2 is required.

15 years agoUse M_WAITOK for contigmalloc now that the attach path is interrupt-save.
Joerg Sonnenberger [Thu, 9 Jun 2005 19:29:00 +0000 (19:29 +0000)]
Use M_WAITOK for contigmalloc now that the attach path is interrupt-save.

15 years agoDon't bzero the softc, it is already zero.
Joerg Sonnenberger [Thu, 9 Jun 2005 19:26:55 +0000 (19:26 +0000)]
Don't bzero the softc, it is already zero.
Use ste_detach for cleanup if attach fails.
Setup interrupt last to prevent possible races.

Submitted-by: Sepherosa Ziehau <sepherosa@gmail.com>
Inspired-by: related changes to wb(4)
15 years agoReplace the hand rolled linked list with a SLIST.
Eirik Nygaard [Thu, 9 Jun 2005 19:14:12 +0000 (19:14 +0000)]
Replace the hand rolled linked list with a SLIST.

15 years agoUse ether_crc32_be.
Joerg Sonnenberger [Thu, 9 Jun 2005 19:13:34 +0000 (19:13 +0000)]
Use ether_crc32_be.

Obtained-from: FreeBSD
Submitted-by: Sepherosa Ziehau <sepherosa@gmail.com>
15 years agoUse PCI helper functions instead of hand-rolling them. Remove now
Joerg Sonnenberger [Thu, 9 Jun 2005 19:10:04 +0000 (19:10 +0000)]
Use PCI helper functions instead of hand-rolling them. Remove now
unused macros.

Submitted-by: Sepherosa Ziehau <sepherosa@gmail.com>
15 years agodevice_printf / if_printf and some minor nits.
Joerg Sonnenberger [Thu, 9 Jun 2005 19:05:16 +0000 (19:05 +0000)]
device_printf / if_printf and some minor nits.

Submitted-by: Sepherosa Ziehau <sepherosa@gmail.com>
15 years agoDeprecate MCLGET() in favor of m_getl() in order to take advantage
Jeffrey Hsu [Thu, 9 Jun 2005 18:39:05 +0000 (18:39 +0000)]
Deprecate MCLGET() in favor of m_getl() in order to take advantage
of cluster caching.

15 years agoFix a bug in the mbstats accounting. m_mbufs was being decremented for
Matthew Dillon [Thu, 9 Jun 2005 18:26:22 +0000 (18:26 +0000)]
Fix a bug in the mbstats accounting.  m_mbufs was being decremented for
normal mbufs converted to clustered mbufs, but in fact it should not be
because we decrement it properly when the normal-mbuf-with-cluster is
freed.

Change most of the m_getl()'s back to m_get()'s or m_gethdr()'s in order
to guarentee that the mbuf does NOT have a cluster associated with it
since we are going to try to share the old mbuf's cluster later on
(in m_copym()).  This bug was causing the system to run out of mbuf
clusters.

Add a number of assertions for correct operation.

15 years agoAlso preserve all the non-copied flags in the target mbuf when duplicating a
Jeffrey Hsu [Thu, 9 Jun 2005 17:14:13 +0000 (17:14 +0000)]
Also preserve all the non-copied flags in the target mbuf when duplicating a
packet header.

Requested by: Matt Dillon

15 years agoFix some bugs in the last commit. We have to call ether_ifdetach if we
Joerg Sonnenberger [Thu, 9 Jun 2005 17:09:34 +0000 (17:09 +0000)]
Fix some bugs in the last commit. We have to call ether_ifdetach if we
couldn't setup the interrupt. We should always try to detach the children.

Noticed-by: Sepherosa Ziehau <sepherosa@gmail.com>
15 years agoPreserve the target M_EXT_CLUSTER flag when duplicating a packet header.
Jeffrey Hsu [Thu, 9 Jun 2005 16:53:11 +0000 (16:53 +0000)]
Preserve the target M_EXT_CLUSTER flag when duplicating a packet header.

15 years agoAdd a missing lwkt_reltoken() in the NULL return path. Do not count NULL
Matthew Dillon [Thu, 9 Jun 2005 16:53:10 +0000 (16:53 +0000)]
Add a missing lwkt_reltoken() in the NULL return path.  Do not count NULL
returns in the gets_cumulative statistic.

15 years agoAdd directories for gcc40
Simon Schubert [Thu, 9 Jun 2005 14:35:29 +0000 (14:35 +0000)]
Add directories for gcc40

15 years agoThe header type of a mbuf doesn't change when appended onto a chain.
Jeffrey Hsu [Thu, 9 Jun 2005 02:03:39 +0000 (02:03 +0000)]
The header type of a mbuf doesn't change when appended onto a chain.

15 years agoA packet header without any packet tags is still a packet header.
Jeffrey Hsu [Thu, 9 Jun 2005 01:55:12 +0000 (01:55 +0000)]
A packet header without any packet tags is still a packet header.

15 years agoOnly duplicate packet headers into mbuf packet headers.
Jeffrey Hsu [Wed, 8 Jun 2005 23:50:35 +0000 (23:50 +0000)]
Only duplicate packet headers into mbuf packet headers.

15 years agoGet an mbuf packet header to begin with instead of getting an mbuf and then
Jeffrey Hsu [Wed, 8 Jun 2005 23:45:00 +0000 (23:45 +0000)]
Get an mbuf packet header to begin with instead of getting an mbuf and then
immediately changing it into an mbuf packet header.

15 years agoOnly allow packet headers to be copied into a packet header mbuf.
Jeffrey Hsu [Wed, 8 Jun 2005 23:39:08 +0000 (23:39 +0000)]
Only allow packet headers to be copied into a packet header mbuf.

15 years agoShould have allocated a mbuf packet header to begin with.
Jeffrey Hsu [Wed, 8 Jun 2005 23:29:29 +0000 (23:29 +0000)]
Should have allocated a mbuf packet header to begin with.

15 years agoAllocate the right type of mbuf to begin with rather than switching types
Jeffrey Hsu [Wed, 8 Jun 2005 23:14:29 +0000 (23:14 +0000)]
Allocate the right type of mbuf to begin with rather than switching types
afterwards.

15 years agoConvert to use m_getl() in order to take advantage of cluster caching and
Jeffrey Hsu [Wed, 8 Jun 2005 23:10:27 +0000 (23:10 +0000)]
Convert to use m_getl() in order to take advantage of cluster caching and
to avoid switching the mbuf type from non-packet header to packet header.

15 years agoRollup mbuf/objcache fixes.
Matthew Dillon [Wed, 8 Jun 2005 22:22:59 +0000 (22:22 +0000)]
Rollup mbuf/objcache fixes.

* Completely replace the blocking algorithm that is used to stall when the
  depot has insufficient resources.

* Use __offsetof() to calculate variable length structural sizes.

* #if 0 out balancing code for now.  There isn't actually much of a need for
  it since each cpu can hold no more then two magazines anyway.  The depot
  will have the rest.

* Increase the magazine capacity from 5 to 256 elements to improve
  performance.

* The mbufs were being returned to a different objcache then they had been
  allocated from, due to a dependance on M_PKTHDR  and M_EXT.  But these
  flags can change unexpectedly and this led to lockups in the objcache
  code and other issues.  Also the share count on the cluster may mean
  that it is not possible to release an mbuf+cluster back to its original
  mbuf+cluster cache... it may have to be DTORed instead.

* Change the way ref counts are handled in the mclmeta_cache.  The cache
  returns and expects a ref count of 0 now, and the link code deals with
  bumping it.

15 years agoHandle the case where the version file might be empty, which can occur
Matthew Dillon [Wed, 8 Jun 2005 22:14:37 +0000 (22:14 +0000)]
Handle the case where the version file might be empty, which can occur
if a machine crashes while building the kernel.

15 years agoTemporary hack to fix interrupt race when decrementing a shared
Matthew Dillon [Wed, 8 Jun 2005 19:29:32 +0000 (19:29 +0000)]
Temporary hack to fix interrupt race when decrementing a shared
mbuf cluster count.

15 years agoReorder initialisation to make protection unnecessary.
Joerg Sonnenberger [Wed, 8 Jun 2005 19:20:09 +0000 (19:20 +0000)]
Reorder initialisation to make protection unnecessary.

Use device_printf in wb_attach. Leave critical section ASAP in wb_detach.
Use M_WAITOK for contigmalloc.

Partly-obtained-from: FreeBSD (first part).

15 years agoFix detach order: We have to unhook the interrupt first and leave the
Joerg Sonnenberger [Wed, 8 Jun 2005 19:03:10 +0000 (19:03 +0000)]
Fix detach order: We have to unhook the interrupt first and leave the
critical section afterwards.

15 years agoReorder code in m_chtype() to properly decrement the mbtype stats. Before
Matthew Dillon [Wed, 8 Jun 2005 16:30:47 +0000 (16:30 +0000)]
Reorder code in m_chtype() to properly decrement the mbtype stats.  Before
it was assigning the new type before (attempting to) decrement the old, and
decrementing the new instead.

15 years agoRemove spl*() in src/sys/dev/serial/{cy,rc,rp,si,sio,stl,stli}
Max Okumoto [Wed, 8 Jun 2005 08:25:50 +0000 (08:25 +0000)]
Remove spl*() in src/sys/dev/serial/{cy,rc,rp,si,sio,stl,stli}
and replace them with critical sections.

15 years agoClean up some of the worst style issues:
Sascha Wildner [Tue, 7 Jun 2005 20:21:23 +0000 (20:21 +0000)]
Clean up some of the worst style issues:

o Remove whitespace (around parentheses, at the end of lines, etc.).
  Why do people waste so much whitespace??

o Use tabs where possible.

o Put function return types on a single line.

o Remove empty lines after {.

o Remove argument names from prototypes.

15 years agoRe-implement the mbuf allocator using the object cache.
Jeffrey Hsu [Tue, 7 Jun 2005 19:08:55 +0000 (19:08 +0000)]
Re-implement the mbuf allocator using the object cache.

15 years agoGeneric cache of pre-initialized objects. It uses per-cpu caches
Jeffrey Hsu [Tue, 7 Jun 2005 19:07:11 +0000 (19:07 +0000)]
Generic cache of pre-initialized objects.  It uses per-cpu caches
for MP-safety, was designed to be NUMA-aware, and works on top of
any storage allocator.  The object cache is largely inspired by the
object cache portion of Sun's slab allocator.

15 years agoPrefer the clearer m_getc() API over m_getm().
Jeffrey Hsu [Tue, 7 Jun 2005 19:06:08 +0000 (19:06 +0000)]
Prefer the clearer m_getc() API over m_getm().

15 years agoremove an unused struct
YONETANI Tomokazu [Tue, 7 Jun 2005 00:52:34 +0000 (00:52 +0000)]
remove an unused struct

15 years agoReplace spl*() with critical sections.
YONETANI Tomokazu [Tue, 7 Jun 2005 00:51:13 +0000 (00:51 +0000)]
Replace spl*() with critical sections.

15 years agoRemove spl*() in src/sys/dev/netif/wi
Max Okumoto [Mon, 6 Jun 2005 23:13:26 +0000 (23:13 +0000)]
Remove spl*() in src/sys/dev/netif/wi
and replace them with critical sections.

15 years agoRemove spl*() in src/sys/dev/netif/{ste,ti,tl,tx,txp,vr,vx,wb,wl,xe}
Max Okumoto [Mon, 6 Jun 2005 23:12:07 +0000 (23:12 +0000)]
Remove spl*() in src/sys/dev/netif/{ste,ti,tl,tx,txp,vr,vx,wb,wl,xe}
and replace them with critical sections.

15 years agoconvert spl* to critical sections
Simon Schubert [Mon, 6 Jun 2005 22:51:54 +0000 (22:51 +0000)]
convert spl* to critical sections

15 years agoAdd entry for disk/mpt, "LSI '909 FC adapters"
Simon Schubert [Mon, 6 Jun 2005 22:45:39 +0000 (22:45 +0000)]
Add entry for disk/mpt, "LSI '909 FC adapters"

15 years agoremove bs, a pc98-only driver
Simon Schubert [Mon, 6 Jun 2005 22:18:13 +0000 (22:18 +0000)]
remove bs, a pc98-only driver

15 years agoremove ct, a pc98-only driver
Simon Schubert [Mon, 6 Jun 2005 22:03:20 +0000 (22:03 +0000)]
remove ct, a pc98-only driver

15 years agoDeprecate MCLGET() in favor of m_getcl() or m_getl() in order to
Jeffrey Hsu [Mon, 6 Jun 2005 21:50:28 +0000 (21:50 +0000)]
Deprecate MCLGET() in favor of m_getcl() or m_getl() in order to
take advantage of cluster caching.

15 years agoMore spl_* removal from dev/disk/, replacing them with critical sections.
Eirik Nygaard [Mon, 6 Jun 2005 21:48:16 +0000 (21:48 +0000)]
More spl_* removal from dev/disk/, replacing them with critical sections.

15 years ago- We should use inet_ntoa which returns an ASCII string of representing the
Liam J. Foy [Mon, 6 Jun 2005 18:17:09 +0000 (18:17 +0000)]
- We should use inet_ntoa which returns an ASCII string of representing the
  address in '.' notation.

15 years agoConvert splimp to criticial sections for now. Cleanup the critical
Joerg Sonnenberger [Mon, 6 Jun 2005 16:32:28 +0000 (16:32 +0000)]
Convert splimp to criticial sections for now. Cleanup the critical
sections a bit.

15 years agoLet the system deal with device shutdown, don't do it yourself.
Joerg Sonnenberger [Mon, 6 Jun 2005 16:16:13 +0000 (16:16 +0000)]
Let the system deal with device shutdown, don't do it yourself.

15 years agoUse WAITOK allocation, fix some arguments and remove a now unused
Joerg Sonnenberger [Mon, 6 Jun 2005 15:59:06 +0000 (15:59 +0000)]
Use WAITOK allocation, fix some arguments and remove a now unused
variable.

15 years agoAlways hook the interrupt up last, we don't have to worry about
Joerg Sonnenberger [Mon, 6 Jun 2005 15:53:17 +0000 (15:53 +0000)]
Always hook the interrupt up last, we don't have to worry about
ISR access that way.

15 years agoReplace splimp with critical sections for now. Fix a bug in xl_init,
Joerg Sonnenberger [Mon, 6 Jun 2005 15:42:18 +0000 (15:42 +0000)]
Replace splimp with critical sections for now. Fix a bug in xl_init,
when the TX ring couldn't be initialized, we must not continue.

15 years agoGet rid of an unused variable due to the last commit.
Matthew Dillon [Mon, 6 Jun 2005 15:35:28 +0000 (15:35 +0000)]
Get rid of an unused variable due to the last commit.

15 years agoAdd some missing #include's from the last commit.
Matthew Dillon [Mon, 6 Jun 2005 15:35:09 +0000 (15:35 +0000)]
Add some missing #include's from the last commit.

15 years agoRemove splimp in xl_attach, the interrupt is created last and
Joerg Sonnenberger [Mon, 6 Jun 2005 15:27:28 +0000 (15:27 +0000)]
Remove splimp in xl_attach, the interrupt is created last and
therefore protection needed.

15 years agoReplace spl with critical sections.
David Rhodus [Mon, 6 Jun 2005 15:09:38 +0000 (15:09 +0000)]
Replace spl with critical sections.

15 years agoRemove spl*() calls from kern, replacing them with critical sections.
Matthew Dillon [Mon, 6 Jun 2005 15:02:28 +0000 (15:02 +0000)]
Remove spl*() calls from kern, replacing them with critical sections.
Change the meaning of safepri from a cpl mask to a thread priority.
Make a minor adjustment to tests within one of the buffer cache's
critical sections.

15 years agoMerge from vendor branch SENDMAIL:
Gregory Neil Shapiro [Mon, 6 Jun 2005 04:25:51 +0000 (04:25 +0000)]
Merge from vendor branch SENDMAIL:
Import sendmail 8.13.4 into a new contrib directory as the first step
towards upgrading sendmail in DragonFly.  The build infrastructure will
follow over the next couple of days.

15 years agoImport sendmail 8.13.4 into a new contrib directory as the first step
Gregory Neil Shapiro [Mon, 6 Jun 2005 04:25:51 +0000 (04:25 +0000)]
Import sendmail 8.13.4 into a new contrib directory as the first step
towards upgrading sendmail in DragonFly.  The build infrastructure will
follow over the next couple of days.

15 years agoAdd gcc40 infrastructure, but don't tie it to the build yet.
Simon Schubert [Sun, 5 Jun 2005 22:43:21 +0000 (22:43 +0000)]
Add gcc40 infrastructure, but don't tie it to the build yet.

15 years agoAdd infrastructure to build (static) libs for the host system
Simon Schubert [Sun, 5 Jun 2005 19:23:10 +0000 (19:23 +0000)]
Add infrastructure to build (static) libs for the host system

15 years agoMerge from vendor branch GCC:
Simon Schubert [Sun, 5 Jun 2005 18:26:15 +0000 (18:26 +0000)]
Merge from vendor branch GCC:
Import of virgin gcc 4.0.0 distribution.
Unneccessary files and dirs have been deleted and recorded in
README.DELETED.

15 years agoImport of virgin gcc 4.0.0 distribution.
Simon Schubert [Sun, 5 Jun 2005 18:26:15 +0000 (18:26 +0000)]
Import of virgin gcc 4.0.0 distribution.
Unneccessary files and dirs have been deleted and recorded in
README.DELETED.

15 years agoMake call to arc_ioctl the default case.
Joerg Sonnenberger [Sun, 5 Jun 2005 16:05:33 +0000 (16:05 +0000)]
Make call to arc_ioctl the default case.

15 years agoMerge the pointer to the link-layer address into ifnet and remove
Joerg Sonnenberger [Sun, 5 Jun 2005 12:35:24 +0000 (12:35 +0000)]
Merge the pointer to the link-layer address into ifnet and remove
ifnet_addrs. Change the rest of the code accordingly.

15 years agounbreak world: only include sys/thread2.h in kernel, not in userland
Simon Schubert [Sun, 5 Jun 2005 12:17:46 +0000 (12:17 +0000)]
unbreak world: only include sys/thread2.h in kernel, not in userland

15 years agoAdd f_owner (user who mounted the filesystem), f_type (filesystem type ID),
Joerg Sonnenberger [Sun, 5 Jun 2005 12:16:53 +0000 (12:16 +0000)]
Add f_owner (user who mounted the filesystem), f_type (filesystem type ID),
f_(a)sync(reads,writes) (counters for sync and async read / writes).
Also add some spare fields for latter additions.

15 years agoAdd include file protection wrapper.
Jeroen Ruigrok/asmodai [Sun, 5 Jun 2005 09:40:46 +0000 (09:40 +0000)]
Add include file protection wrapper.

Wrap function definition in #if 0/#endif until they are added.

15 years agoInstead of using ifnet_addrs and following ifa_ifp, use ifindex2ifnet
Joerg Sonnenberger [Sun, 5 Jun 2005 00:25:10 +0000 (00:25 +0000)]
Instead of using ifnet_addrs and following ifa_ifp, use ifindex2ifnet
directly.

15 years ago- int -> pid_t for pid
Liam J. Foy [Sat, 4 Jun 2005 20:35:06 +0000 (20:35 +0000)]
- int -> pid_t for pid

15 years agoInstead of checking for ifnet_addrs[ifp->index - 1] == NULL to detect
Joerg Sonnenberger [Sat, 4 Jun 2005 14:41:57 +0000 (14:41 +0000)]
Instead of checking for ifnet_addrs[ifp->index - 1] == NULL to detect
running from if_detach, introduce in_ifdetach and call that after the
address list has been processed. This reduces the differences between
IPv4 and IPv6 stack.

15 years agoconvert spl*() to critical sections.
Simon Schubert [Sat, 4 Jun 2005 14:25:45 +0000 (14:25 +0000)]
convert spl*() to critical sections.

15 years ago * Include string.h to get strlen() prototype.
Eirik Nygaard [Sat, 4 Jun 2005 13:42:28 +0000 (13:42 +0000)]
 * Include string.h to get strlen() prototype.
 * Shut up gcc warning.

15 years agoThe acpi module was failing to load due to exposed crit_*() functions. Add
Matthew Dillon [Sat, 4 Jun 2005 03:22:08 +0000 (03:22 +0000)]
The acpi module was failing to load due to exposed crit_*() functions.  Add
a missing #include to get the crit_*() inlines.

Found by: Matt Dillon when his power button stopped working, click click click!

15 years agoReplace cpu_mb1() and cpu_mb2() with cpu_mfence(), cpu_lfence(), cpu_sfence(),
Matthew Dillon [Fri, 3 Jun 2005 23:57:34 +0000 (23:57 +0000)]
Replace cpu_mb1() and cpu_mb2() with cpu_mfence(), cpu_lfence(), cpu_sfence(),
and cpu_ccfence().  These provide memory and compiler fences to guarentee
read/write ordering of memory and to prevent the compiler itself from
generating reordered code in particular cases.

Most of the cases where care must be taken are tail-chasing FIFO cases,
especially in the IPI messaging code.

At the moment on SMP boxes we use a locked bus cycle on (%%esp) for the
lfence and mfence.  The only other choices are to use a cpuid instruction
or one of the {S,L,M}FENCE instructions.  cpuid is usually horrible, and
the *FENCE instructions do not exist on older cpus.

Linux seems to use the locked bus cycle or *FENCE instruction method.

Although I have no conclusive evidence, a number of crash dumps provided
by David Rhodus has led me to believe that speculative reads by modern cpus,
in particular in HTT situations with Intel cpus, can survive many more
instructions then previously believed.  The only safe solution is to use
an instruction sequence which guarentees proper operation.

I would prefer to avoid the use of a locked bus cycle but at least in the
IPIQ case (the most common case we have to worry about), only one locked
bus cycle is required and then the entire IPIQ can be processed without
further locked cycles.

15 years agoAnother instance of IF_LLSOCKADDR.
Joerg Sonnenberger [Fri, 3 Jun 2005 23:31:36 +0000 (23:31 +0000)]
Another instance of IF_LLSOCKADDR.

15 years agoAdd a new macro IF_LLSOCKADDR which maps a ifnet pointer to the
Joerg Sonnenberger [Fri, 3 Jun 2005 23:23:03 +0000 (23:23 +0000)]
Add a new macro IF_LLSOCKADDR which maps a ifnet pointer to the
associated link layer sockaddr. Use it to implement IF_LLADDR.
Replace most references of ifnet_addrs with one of those macros.

This makes the sometimes explicitly encoded assumption of each
interface having a link-layer address implicit and is the
preparation for removing ifnet_addrs.

15 years agoExpand itjc_bus_setup, it declares variables.
Joerg Sonnenberger [Fri, 3 Jun 2005 23:14:26 +0000 (23:14 +0000)]
Expand itjc_bus_setup, it declares variables.

15 years agoRename label to not collidate with local variable. Conditionalize error,
Joerg Sonnenberger [Fri, 3 Jun 2005 23:10:23 +0000 (23:10 +0000)]
Rename label to not collidate with local variable. Conditionalize error,
it's not yet used. Use #ifdef instead of depending on 0 for undefined
macros.

15 years agoInclude sys/thread2.h to unbreak build.
Joerg Sonnenberger [Fri, 3 Jun 2005 23:06:31 +0000 (23:06 +0000)]
Include sys/thread2.h to unbreak build.

15 years agoAdd missing parameter.
Joerg Sonnenberger [Fri, 3 Jun 2005 23:05:22 +0000 (23:05 +0000)]
Add missing parameter.

15 years agovm_contig_pg_free() must busy the page before freeing it in the case
Matthew Dillon [Fri, 3 Jun 2005 22:58:09 +0000 (22:58 +0000)]
vm_contig_pg_free() must busy the page before freeing it in the case
of a contigmalloc failure.

15 years agoreorder declarations
Joerg Sonnenberger [Fri, 3 Jun 2005 22:57:56 +0000 (22:57 +0000)]
reorder declarations

15 years agoAugment the panic when attempting to switch from a FAST interrupt to include
Matthew Dillon [Fri, 3 Jun 2005 22:57:27 +0000 (22:57 +0000)]
Augment the panic when attempting to switch from a FAST interrupt to include
the thread address, since it may not be readily apparent from the kernel
dump.

15 years agoUse IF_DRAIN.
Joerg Sonnenberger [Fri, 3 Jun 2005 22:56:26 +0000 (22:56 +0000)]
Use IF_DRAIN.