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>