Re: bge(4) one packet wedge



On Wed, Aug 23, 2006 at 12:53:49PM -0700, David Christensen wrote:
This "lost interrupt" type of problem is addressed by the use of the
status_tag
field in the status block. (Listed as bge_rsvd0 in the bge_status_block
structure).
Everytime the status block is updated a new tag value is written to the
status block.
When the ISR starts the driver should record the status_tag value. At
the end
of the ISR, the driver should compare the current status_tag value is
the status
block with the value recorded on entry to the ISR. If the values are
the same
then no additional status block updates have occurred so there shouldn't
be
any packets hanging around. If the values are different then additional
packets
or completions are waiting around so the ISR should loop around again.
At the
end of the ISR the driver will write the status_tag value it last
handled to a
mailbox register, letting the hardware know the last status block update
handled.
If necessary the hardware will generate a new interrupt and start the
process over
again.

This entire process should be included in the Linux driver, I don't see
it being
used in the bge driver (bge_intr()).


Hi,

I have a question too.
How we know generated interrupt is ours?
It seems that status block could be updated before/after generation
of an interrupt. If the interrupt is shared with other devices
what is correct way to know the origion of the interrupt?

--
Regards,
Pyun YongHyeon
_______________________________________________
freebsd-net@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscribe@xxxxxxxxxxx"



Relevant Pages

  • Re: Assembling Visual Studio generated listing files
    ... card issues an interrupt each time it has a new position for any one ... An ISR is constrained to act in < 10us, and for most modern machines, 12.5us is a very ... Without MASM and in pure C or C++ and without any Windows API/MFC, ... This is a device driver. ...
    (microsoft.public.vc.mfc)
  • Re: Polling for ath driver
    ... but we've found polling to be extremely valuable on low-end hardware as described here. ... We use it only on fxp drivers, but it moved throughput on 133Mhz hardware from something around 8Mbps to 20Mbps on regular layer-3 packet forwarding and also bumped VPN performance up significantly when used with hardware VPN accelerators. ... Unless you've significantly restructured the interrupt handling in the ... Adding polling to this driver does increase performance on embedded ...
    (freebsd-net)
  • Re: Interrupt Problem in Our custom Serial Driver
    ... interrupt, your ISR is correctly activated and returns the right SYSINTR. ... you can focus on the IST and the driver ... required for the serial port. ...
    (microsoft.public.windowsce.platbuilder)
  • Re: interrupt cycles time
    ... > I wrote a firewire driver. ... This function driver would not have an isr ... > each of these intervals all cameras send one packet of data to the computer. ... > use to do this color conversion inside the interrupt. ...
    (microsoft.public.development.device.drivers)
  • Re: Synchronization between ISR and IST - I2C Based device
    ... It sounds to me that your system design is a little flawed, your idea of a layered I2C driver is probably better then having the I2C driver in for each of your devices. ... We have implemented ISR that reads the Interrupt Status Register ... The problem we are facing one of the device holds the I2C bus longer ...
    (microsoft.public.windowsce.platbuilder)

Quantcast