Re: killing the interrupt handler

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jun 07, 2002 at 07:34:29PM +0530, Rahul Ravindran wrote:

[rahul, your emails would be easier to read if you wrapped them at 72
characters. I've reformatted your email for easier discussion.]

> I`m modifying a network device driver by adding encrytion and
> decrytion within it.

Cool! This would probably be a cheap way to get private communications,
compared to setting up ipsec hosts.

> The NIC is an interrupt driver one which
> generates an interrupt on arrival of a packet. I find that sometimes,
> the following error occurs : Kernel Panic : Killing interrupt handler
>         In interrupt handler: loosing sync
> 
> The system hangs after this.
> 
> I`m an disabling interrupts at the beginning of the interrupt handler
> (by using spin_lock_store) and reanbling them at the end (by using
> spin_unlock_restore).  I interrupt handler is currently takes a little
> time executing the decrytion code.

Oh my. Interrupt handlers are supposed to be _fast_. Decryption usually
isn't. Are you sure your interrupt is more important than, say, clock
ticks, hard drives, etc? Perhaps disabling interrupts through your
interrupt handler is a bit too much?

> Am using GFP_ATOMIC flag for kmalloc within the handler.

Good :) though if you can figure out how to run your handler without
allocating memory at all, your driver will probably be all the more
stable.

> On searching the net, I find that these errors(killing interrupt etc)
> have been documented before while doing insmod but not while actually
> using the card.

Google is great, but sadly, it hasn't yet developed the ability to find
bug reports from folks who broke the code the exact same way you did :)
It would help me a lot if they added this feature. :)

-- 
http://www.wirex.com/

Attachment: pgp00093.pgp
Description: PGP signature


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux