On 4/10/07, Tom Chen <[EMAIL PROTECTED]> wrote:
I am thinking to use a hi level interrupt to claim each interrupt and trigger a soft interrupt to process received packets, but most network drivers(like rge) in OpenSolaris open source directly handle received packets in same handler. So, for a giga bit high speed network driver, is it necessary to process received packets and other tx completion notifications in soft interrupt? If benefit is very little, then I will not use.
Is your device a PCI network device? If so, unless you start playing with properties, you are unlikely to get a high level interrupt assigned to it. In general you don't want to be using a high level handler unless your device is *extremely* latency sensitive e.g. has practically no buffering capability. Interrupt handling in Solaris is quite disimilar from Linux. Most high speed network drivers just use a single level of interrupt handling which is essentially 'soft' as it's run below lock level (i.e. below scheduling priority). The high level handling (i.e. the code that's actually hooked into the device interrupt vector) is done by the system. Your device driver is invoked, as I said before, at a lower priority at which you can do pretty much anything a normal kernel thread can do e.g. block on locks, allocate memory, etc. Paul -- Paul Durrant http://www.linkedin.com/in/pdurrant _______________________________________________ networking-discuss mailing list [email protected]
