Hi,
Scenario:
- I used Hwi_create to trigger my interrupt service routine (RXISR) everytime the board receives an ethernet packet.
- HWI params - eventId is the event when EMAC rx triggers, maskSetting is Hwi_MaskingOption_ALL (also tried with SELF)
- This is the only interrupt configured
Problem:
When the device is hit with a packet burst, device stops on a ISR stack overflow. On ROV, hwiStackPeak will always reach hwiStackSize no matter how high I set the program stack.
Setup:
- C6472
- BIOS 6.34.02.18
- NDK 2.22.3.20
Question:
I believe the SELF or ALL mask setting should prevent the ISR from re-entering until the function returns. As a test case, I added a rxcount++ at the beginning of my RXISR, and a rxcount-- at the end. For normal operation, rxcount will be 0 (or 1, if you're lucky enough to hit pause in the ISR). In the case of a packet burst, I can see the rxcount go up to as high as ~100 when it crashes. Is there a way to prevent the interrupt service routine from being executed multiple times?
I'm more or less DDOSing my device via hping3 --flood or opening mutiple TCP connections to stream data. I'm open to any ideas.
Thanks,
-Ivan