Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test leak_check.kfree_rcu.01 freeze system #20

Open
GoogleCodeExporter opened this issue Mar 26, 2015 · 1 comment
Open

Test leak_check.kfree_rcu.01 freeze system #20

GoogleCodeExporter opened this issue Mar 26, 2015 · 1 comment

Comments

@GoogleCodeExporter
Copy link

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

@GoogleCodeExporter
Copy link
Author

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 comment by [email protected] on 24 Jan 2015 at 1:17

  • Added labels: ****
  • Removed labels: ****

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant