DEBUG_STACKOVERFLOW issue on ARM

163 views
Skip to first unread message

trisha yad

unread,
Oct 3, 2012, 7:50:01 AM10/3/12
to
Dear All,
In kernel 3.0.X we find "Check for stackoverflow"
(CONFIG_DEBUG_STACKOVERFLOW) implementation for following
architecture:
frv, mn10300, m32r, tile, x86, mips, powerpc, blackfin except ARM.

Therefore we implemented the similar functionality for ARM in asm_do_IRQ();
We have tested it using a test module.ko that allocate memory on kernel stack.

This test code work fine on single core, but fail to detect stack
overflow in multi-core ARM. While debugging we found that
interrupts were occurring only in CPU0, while the test module was
running in CPU1, since the kernel stack of CPU0 is unaffected
by CPU1 kernel stack, it fails to detect the problem.

However when I upgraded the kernel from 3.0 to 3.4, the stack overflow
detection started working.

I wish to know how can I support this function in 3.0 ?

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

Russell King - ARM Linux

unread,
Oct 5, 2012, 4:40:02 AM10/5/12
to
On Wed, Oct 03, 2012 at 05:18:56PM +0530, trisha yad wrote:
> I wish to know how can I support this function in 3.0 ?

If your description is correct, then all you need to do is to ensure
that you route interrupts to other CPUs.

You can do that by running the userspace irqbalance daemon.

vaibhav shinde

unread,
Oct 11, 2012, 3:40:02 AM10/11/12
to
Hi Russel,

On Fri, Oct 5, 2012 at 2:01 PM, Russell King - ARM Linux
<li...@arm.linux.org.uk> wrote:
>
> On Wed, Oct 03, 2012 at 05:18:56PM +0530, trisha yad wrote:
> > I wish to know how can I support this function in 3.0 ?
>
> If your description is correct, then all you need to do is to ensure
> that you route interrupts to other CPUs.
>
> You can do that by running the userspace irqbalance daemon.
>

I also tried with the irqbalance daemon, on ARM quad core architecture,
and as per my understanding, the daemon sets the
/proc/irq/<irq.no.>/smp_affinity
file according to the irq frequency on a particular processor.

However, the daemon doesn't work as expected, I also tried
accessing the
proc file mentioned above to set the cpu mask for particular irq, but this
just block the processing of the irq, as I see the count of that irq
doesnt increase
in /proc/interrupts.

My conclusion is that the irqbalancing is not supported on
ARM arch or there is
something more required for this to work. Kindly provide some
pointers over this.

Regards,
Vaibhav

Russell King - ARM Linux

unread,
Oct 11, 2012, 4:10:01 AM10/11/12
to
On Thu, Oct 11, 2012 at 01:09:46PM +0530, vaibhav shinde wrote:
> Hi Russel,
>
> On Fri, Oct 5, 2012 at 2:01 PM, Russell King - ARM Linux
> <li...@arm.linux.org.uk> wrote:
> >
> > On Wed, Oct 03, 2012 at 05:18:56PM +0530, trisha yad wrote:
> > > I wish to know how can I support this function in 3.0 ?
> >
> > If your description is correct, then all you need to do is to ensure
> > that you route interrupts to other CPUs.
> >
> > You can do that by running the userspace irqbalance daemon.
> >
>
> I also tried with the irqbalance daemon, on ARM quad core architecture,
> and as per my understanding, the daemon sets the
> /proc/irq/<irq.no.>/smp_affinity
> file according to the irq frequency on a particular processor.
>
> However, the daemon doesn't work as expected, I also tried
> accessing the
> proc file mentioned above to set the cpu mask for particular irq, but this
> just block the processing of the irq, as I see the count of that irq
> doesnt increase
> in /proc/interrupts.
>
> My conclusion is that the irqbalancing is not supported on
> ARM arch or there is
> something more required for this to work. Kindly provide some
> pointers over this.

Sounds like something has been broken, no idea what. It needs investigation.
Reply all
Reply to author
Forward
0 new messages