From: Jesper Dangaard Brouer <brouer@redhat.com>
To: David Rientjes <rientjes@google.com>
Cc: linux-mm <linux-mm@kvack.org>,
Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>,
brouer@redhat.com
Subject: Re: Memory exhaustion testing?
Date: Tue, 17 Nov 2015 14:21:20 +0100 [thread overview]
Message-ID: <20151117142120.494947f9@redhat.com> (raw)
In-Reply-To: <20151116152440.101ea77d@redhat.com>
On Mon, 16 Nov 2015 15:24:40 +0100 Jesper Dangaard Brouer <brouer@redhat.com> wrote:
> On Fri, 13 Nov 2015 14:54:37 -0800 (PST) David Rientjes <rientjes@google.com> wrote:
>
> > [...] This is why
> > failslab had been used in the past, and does a good job at runtime
> > testing.
>
> Thanks for mentioning CONFIG_FAILSLAB. First I disregarded
> "failslab" (I did notice it in the slub code) because it didn't
> exercised the code path I wanted in kmem_cache_alloc_bulk().
>
> But went to looking up the config setting I notice that we do have a
> hole section for "Fault-injection". Which is great, and what I was
> looking for.
>
> Menu config Location:
> -> Kernel hacking
> -> Fault-injection framework (FAULT_INJECTION [=y])
>
> I think what I need can be covered by FAIL_PAGE_ALLOC, or should_fail_alloc_page().
> I'll try and play a bit with it...
I did manage to provoke/test the error path in kmem_cache_alloc_bulk(),
by using fault-injection framework "fail_page_alloc".
But was a little hard to trigger SLUB errors with this, because SLUB
retries after a failure, and second call to alloc_pages() is done with
lower order.
If order is lowered to zero, then should_fail_alloc_page() will skip it.
And just lowering /sys/kernel/debug/fail_page_alloc/min-order=0 is not
feasible as even fork starts to fail. I managed to work-around this by
using "space" setting.
Created a script to ease this tricky invocation:
https://github.com/netoptimizer/prototype-kernel/blob/master/tests/fault-inject/fail01_kmem_cache_alloc_bulk.sh
--
Best regards,
Jesper Dangaard Brouer
MSc.CS, Principal Kernel Engineer at Red Hat
Author of http://www.iptv-analyzer.org
LinkedIn: http://www.linkedin.com/in/brouer
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2015-11-17 13:21 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-12 20:55 Memory exhaustion testing? Jesper Dangaard Brouer
2015-11-13 22:54 ` David Rientjes
2015-11-16 14:24 ` Jesper Dangaard Brouer
2015-11-17 13:21 ` Jesper Dangaard Brouer [this message]
2015-11-19 20:40 ` David Rientjes
2015-11-20 13:09 ` Jesper Dangaard Brouer
2015-11-20 23:23 ` David Rientjes
2015-11-20 23:28 ` Andrew Morton
2015-11-14 8:23 ` Tetsuo Handa
2015-11-16 14:43 ` Jesper Dangaard Brouer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20151117142120.494947f9@redhat.com \
--to=brouer@redhat.com \
--cc=linux-mm@kvack.org \
--cc=penguin-kernel@I-love.SAKURA.ne.jp \
--cc=rientjes@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.