Messages in this thread | | | Date | Thu, 23 May 2013 02:36:22 -0400 | From | Alan Ott <> | Subject | Re: [PATCH beta 1] 0/3] Fix race conditions in mrf24j40 interrupts |
| |
On 5/22/13 4:32 PM, David Hauweele wrote: > I cannot use level-triggered interrupts with GPIO on the RPi, so I > cannot test this specific patch.
Is there another interrupt line you can tie into which does support level-trigger interrupts (INT0 or something)?
> However I agree with the idea of level-triggered interrupts, that > would fix all major problems related to missed interrupts. > > Beside this I'm running a ping -f since more than two hours now and it > seems to work well. >
So that surprises me. I thought level-trigger interrupts were the thing that would fix this problem, and if you're not running with that patch, you just have the INIT_COMPLETION() fix (which you said didn't fix your issue) and the threaded interrupts patch, which I was fairly sure I had determined wasn't fixing any actual race-condition-related problems.
I'm glad, but surprised that you're no longer seeing issues.
Alan.
> > 2013/5/22 Alan Ott <alan@signal11.us>: >> On 05/21/2013 10:01 PM, Alan Ott wrote: >>> David Hauweele noticed that the mrf24j40 would hang arbitrarily after some >>> period of heavy traffic. Two race conditions were discovered, and the >>> driver was changed to use threaded interrupts, since the enable/disable of >>> interrupts in the driver has recently been a lighning rod whenever issues >>> arise related to interrupts (costing engineering time), and since threaded >>> interrupts are the right way to do it. >>> >>> Alan Ott (3): >>> mrf24j40: Move INIT_COMPLETION() to before packet transmission >>> mrf24j40: Use threaded IRQ handler >>> mrf24j40: Use level-triggered interrupts >>> >>> drivers/net/ieee802154/mrf24j40.c | 31 +++++++++---------------------- >>> 1 file changed, 9 insertions(+), 22 deletions(-) >> >> I forgot to add, I ran ping -f both ways all afternoon (6.5 hours), and >> it seems solid. >>
| |