Re: [patch 7/7] stacktrace filtering for fault-injection capabilities

Andrew Morton
2006-10-13T19:03:33Z

On Sat, 14 Oct 2006 03:00:39 +0900
Akinobu Mita <akinobu.mita@gmail.com> wrote:

> On Thu, Oct 12, 2006 at 02:20:04PM -0700, Andrew Morton wrote:
>
> > I read the documentation but I still don't understand this feature. What
> > does the stacktrace actually do? It gets stored somewhere and displayed
> > later? What's it all for?
>
> For example someone may want to inject kmalloc()/kmem_cache_alloc()
> failures into only e100 module. they want to inject not only direct
> kmalloc() call, but also indirect allocation, too.
>
> - e100_poll --> netif_receive_skb --> packet_rcv_spkt --> skb_clone
> --> kmem_cache_alloc
>
> This patch enables to detect function calls like this by stacktrace
> and inject failures. The script
> Documentaion/fault-injection/failmodule.sh
> helps it.
>
> The range of text section of loaded e100 is expected to be
> [/sys/module/e100/sections/.text, /sys/module/e100/sections/.exit.text)
>
> So failmodule.sh stores these values into /debug/failslab/address-start
> and /debug/failslab/address-end.

Oh I see. So you walk up the stack and if any caller falls between those
two addresses, we enable the fault-injector. Fair enough.