cvs commit: src/sys/dev/smc if_smc.c if_smcvar.h

Benno Rice benno at
Wed Jun 11 07:26:16 UTC 2008

benno       2008-06-11 07:26:02 UTC

  FreeBSD src repository

  Modified files:
    sys/dev/smc          if_smc.c if_smcvar.h 
  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

More information about the cvs-src mailing list