On (07/07/09 14:22), Catalin Marinas wrote: > > > > kernel: [ 1917.133154] INFO: RCU detected CPU 0 stall (t=485140/3000 jiffies) > [...] > > > What I think happens is that the kmemleak thread runs for several > > > seconds for scanning the memory and there may not be any context > > > switches. I have a patch to add more cond_resched() calls throughout the > > > kmemleak_scan() function which I hope will get merged. > [...] > > > I don't get any of these messages with CONFIG_PREEMPT enabled. > > > > It started with rc2-git1 (may be). Almost every scan ends with RCU pending. > > Should I assume that CONFIG_PREEMPT is disabled on your system? Yeah, sorry. # CONFIG_PREEMPT is not set /* My .config is in attach. */ > > The branch with the pending kmemleak patches is below (I sent Linus a > pull request): > > http://www.linux-arm.org/git?p=linux-2.6.git;a=shortlog;h=kmemleak > > You can try the "Add more cond_resched() calls..." patch and see if it > makes any difference. > Ok. I'll try. > > Hm.. Something is broken... > > cat /.../kmemleak > > [ 7933.537868] ================================================ > > [ 7933.537873] [ BUG: lock held when returning to user space! ] > > [ 7933.537876] ------------------------------------------------ > > [ 7933.537880] cat/2897 is leaving the kernel with locks still held! > > [ 7933.537884] 1 lock held by cat/2897: > > [ 7933.537887] #0: (scan_mutex){+.+.+.}, at: [] kmemleak_open+0x4c/0x80 > > That the "Do not acquire scan_mutex in kmemleak_open()" patch in the > same branch. > > -- > Catalin > Thanks, Sergey