You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
System becomes completely unresponsible few moments after the test
leak_check.kfree_rcu.01 begins.
Reproduced on OpenSUSE 13.1, Linux kernel 3.11.25 and 3.18.1(vanilla).
On previous distro-specific kernel (3.11.7 or near) the test has passed
successfully. Same for many others distro/kernel pairs.
Playing with tests/leak_check/kfree_rcu_module/test_module.c shows that
problems remains when code for 'foo' allocation/deallocation is removed, but
disappears when code for 'bar' is removed instead.
Without Leak Check given module is loaded/unloaded without errors.
Original issue reported on code.google.com by [email protected] on 19 Jan 2015 at 8:54
The text was updated successfully, but these errors were encountered:
Actually, problem persists only on 3.11.10-25 kernel, which is distro-specific.
Investigation shows that problem is in dump_trace() call inside call_rcu()
callback.
Simple module demonstrates same behaviour(freeze system while loading):
--
#include <linux/module.h>
#include <linux/rcupdate.h>
MODULE_AUTHOR("Tsyvarev Andrey");
MODULE_LICENSE("GPL");
struct my_struct
{
struct rcu_head rh;
} s;
int a;
void rcu_func(struct rcu_head* head)
{
dump_stack();
a = 1;
}
static int my_module_init(void)
{
call_rcu(&s.rh, rcu_func);
return 0;
}
static void my_module_exit(void)
{
rcu_barrier();
}
module_init(my_module_init);
module_exit(my_module_exit);
--
Original issue reported on code.google.com by
[email protected]
on 19 Jan 2015 at 8:54The text was updated successfully, but these errors were encountered: