Messages in this thread | | | Date | Fri, 12 Jul 2013 11:40:06 -0600 | From | David Ahern <> | Subject | Re: Yet more softlockups. |
| |
On 7/12/13 11:18 AM, Dave Jones wrote: > On Fri, Jul 12, 2013 at 11:12:13AM -0600, David Ahern wrote: > > On 7/12/13 9:45 AM, Dave Jones wrote: > > > Here's a fun trick: > > > > > > trinity -c perf_event_open -C4 -q -l off > > > > > > Within about a minute, that brings any of my boxes to its knees. > > > The softlockup detector starts going nuts, and then the box wedges solid. > > > > I tried that in a VM running latest Linus tree. I see trinity children > > getting nuked regularly from oom. > > Weird. I'm curious what the backtrace looks like in those cases. > Where is it trying to allocate memory ? > (Though that isn't usually too helpful in most cases, but in absense of > anything else..)
(gdb) bt #0 0x000000313b27f3e0 in malloc () from /lib64/libc.so.6 #1 0x0000000000404405 in _get_address (null_allowed=null_allowed@entry=1 '\001') at generic-sanitise.c:151 #2 0x00000000004044ca in get_address () at generic-sanitise.c:182 #3 0x00000000004052a0 in fill_arg (childno=<optimized out>, call=call@entry=298, argnum=argnum@entry=1) at generic-sanitise.c:415 #4 0x000000000040548d in generic_sanitise (childno=childno@entry=0) at generic-sanitise.c:615 #5 0x0000000000405620 in mkcall (childno=childno@entry=0) at syscall.c:131 #6 0x0000000000407d85 in child_process () at child.c:219 #7 0x00000000004073ad in fork_children () at main.c:103 #8 main_loop () at main.c:308 #9 do_main_loop () at main.c:342 #10 0x000000000040253a in main (argc=<optimized out>, argv=<optimized out>) at trinity.c:180
In _get_address, case 8 must be happening a lot and I don't see a free when that address comes from malloc. Perhaps all of the rand() calls are breaking down in the VM. If I change that case from malloc to something static - like page_rand - memory stays flat.
David
| |