Re: Possible to software trigger an interrupt?

From: Jonathan Cameron
Date: Thu Apr 07 2011 - 09:29:21 EST


On 04/07/11 14:20, Steven Rostedt wrote:
> On Sun, Apr 03, 2011 at 05:34:13PM +0100, Jonathan Cameron wrote:
>> On 04/03/11 17:04, Jonathan Cameron wrote:
>>> Hi,
>>>
>>> Having produced a proof of concept for using gpio chips
>>> to handle the triggers in IIO I am looking at converting
>>> over our sysfs trigger. This trigger is used to initialize
>>> capture on devices in a similar way to dataready interrupts.
>>> The key point is we want to handle this in the same way within
>>> drivers as the hardware event triggers.
>>>
>>> It is a very useful tool. So the upshot is, what is the best
>>> way to handle causing an interrupt to occur from userspace?
>>>
>>> Any pointers on how to do this would be most welcome.
>>
>> For what it is worth, the incredibly dumb approach of just
>> calling handle_nested_irq seems to 'work'. I dread to think
>> what that might be quietly breaking though...
>
> I think you are fine in calling that. It's made to be called from a
> threaded context. But if you are testing code that will someday be
> called in an interrupt context, it may not catch everything you need.
That's not the primary aim. Some of these triggers really are only called
from userspace and there are devices that some users will only ever
trigger that way. It's also step one in allowing a bridge to input for
polled devices (via uinput).
>
> For example, a mutex is allowed to be called from a threaded context,
> but not from a hard irq one. There may be other subtle locking issues as
> well. These could be caught with lockdep, but only when the code is
> really been executed from hard irq context.
Cool. We have plenty of real irq triggers as well. I'll just pester
people to make sure they have tested with both if at all possible!

Thanks for the reassurance that isn't all that likely to blow up
in my face ;)

Jonathan
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/