Date: Wed, 11 Jun 2008 07:26:02 +0000 (UTC) From: Benno Rice <benno@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/dev/smc if_smc.c if_smcvar.h Message-ID: <200806110726.m5B7QGVH055137@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
benno 2008-06-11 07:26:02 UTC
FreeBSD src repository
Modified files:
sys/dev/smc if_smc.c if_smcvar.h
Log:
SVN rev 179719 on 2008-06-11 07:26:02Z by benno
Switch to using a normal mutex instead of a spin mutex.
We still use the interrupt filter due to performance problems that show up if
we don't. The main problem seen is that, due to the interrupt being edge
triggered, we occasionally miss interrupts which leads us to not notice that
we can transmit more packets. Using the new approach, which just schedules
a task on a taskqueue, we are guaranteed to have the task run even if the
interrupt arrived while we were already executing. If we were to use an
ithread the system would mask the interrupt while the handler is run and we'd
miss interrupts.
Revision Changes Path
1.3 +29 -15 src/sys/dev/smc/if_smc.c
1.3 +1 -7 src/sys/dev/smc/if_smcvar.h
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200806110726.m5B7QGVH055137>
