debugging frequent kernel panics on 8.2-RELEASE
Andriy Gapon
avg at FreeBSD.org
Wed Aug 17 11:12:36 UTC 2011
on 16/08/2011 23:43 Steven Hartland said the following:
>
> ----- Original Message ----- From: "Andriy Gapon" <avg at FreeBSD.org>
> To: "Steven Hartland" <killing at multiplay.co.uk>
> Cc: <freebsd-stable at FreeBSD.org>
> Sent: Tuesday, August 16, 2011 9:30 PM
> Subject: Re: debugging frequent kernel panics on 8.2-RELEASE
>
>
>> on 15/08/2011 17:56 Steven Hartland said the following:
>>> (kgdb) x/512a 0xffffff8d8f357210
>> [snip]
>>
>> Can you please also provide the following for this core?
>> list *vm_map_growstack+93
>> list *lim_cur+17
>> list *lim_rlimit+18
>>
>> Also, it would be interesting to get panic output with DDB option.
>
> Here's the info:-
>
> (kgdb) list *vm_map_growstack+93
> 0xffffffff80543ffd is in vm_map_growstack (/usr/src/sys/vm/vm_map.c:3305).
> 3300 struct uidinfo *uip;
> 3301
> 3302 Retry:
> 3303 PROC_LOCK(p);
> 3304 stacklim = lim_cur(p, RLIMIT_STACK);
> 3305 vmemlim = lim_cur(p, RLIMIT_VMEM);
> 3306 PROC_UNLOCK(p);
> 3307
> 3308 vm_map_lock_read(map);
> 3309
> (kgdb) list *lim_cur+17
> 0xffffffff80384681 is in lim_cur (/usr/src/sys/kern/kern_resource.c:1150).
> 1145 rlim_t
> 1146 lim_cur(struct proc *p, int which)
> 1147 {
> 1148 struct rlimit rl;
> 1149
> 1150 lim_rlimit(p, which, &rl);
> 1151 return (rl.rlim_cur);
> 1152 }
> 1153
> 1154 /*
> (kgdb) list *lim_rlimit+18
> 0xffffffff80384632 is in lim_rlimit (/usr/src/sys/kern/kern_resource.c:1165).
> 1160 {
> 1161
> 1162 PROC_LOCK_ASSERT(p, MA_OWNED);
> 1163 KASSERT(which >= 0 && which < RLIM_NLIMITS,
> 1164 ("request for invalid resource limit"));
> 1165 *rlp = p->p_limit->pl_rlimit[which];
> 1166 if (p->p_sysent->sv_fixlimit != NULL)
> 1167 p->p_sysent->sv_fixlimit(rlp, which);
> 1168 }
> 1169
>
> I've yet to have the machine with DDB + expanded stack panic.
>
> I plan to leave it a day or so more then try a reboot to see if that
> triggers it. If not I'll drop the stack back down to 4 and see if that
> enables us to get another panic.
OK, thank you for continuing to debug this!
Another request: could you please execute the following commands in kgdb on the
above core file?
define allpcpu
set $i = 0
while ($i <= mp_maxid)
p *cpuid_to_pcpu[$i]
set $i = $i + 1
end
end
allpcpu
A little bit later I will send you another patch that, I hope, will produce better
diagnostics for this crash (without DDB in kernel).
--
Andriy Gapon
More information about the freebsd-stable
mailing list