NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/52111: wmX i82574L inoperative in monoprocessor mode (i386)
The following reply was made to PR kern/52111; it has been noted by GNATS.
From: Kengo NAKAHARA <k-nakahara%iij.ad.jp@localhost>
To: kardel%netbsd.org@localhost, gnats-bugs%NetBSD.org@localhost, kern-bug-people%netbsd.org@localhost,
gnats-admin%netbsd.org@localhost, netbsd-bugs%netbsd.org@localhost
Cc:
Subject: Re: kern/52111: wmX i82574L inoperative in monoprocessor mode (i386)
Date: Wed, 29 Mar 2017 16:31:30 +0900
Hi,
On 2017/03/29 15:02, Frank Kardel wrote:
> As for the panic in the boot -1 case the
> panic of "intrctl list" occurred in:
>
> sys/arch/x86/x86/intr.c:
>
> static bool
> intr_is_affinity_intrsource(struct intrsource *isp, const kcpuset_t
> *cpuset)
> {
> struct cpu_info *ci;
>
> KASSERT(mutex_owned(&cpu_lock));
>
> >>> ci = isp->is_handlers->ih_cpu;
> KASSERT(ci != NULL);
>
> return kcpuset_isset(cpuset, cpu_index(ci));
> }
>
> due to is_handlers == NULL. The whole struct intrsource seems to be
> zeroed except fir is_intrid, but
> correctly linked.
>
> Value of the intrsource is:
> (gdb) print *isp
> $2 = {is_maxlevel = 0, is_pin = 0, is_handlers = 0x0, is_pic = 0x0,
> is_recurse = 0x0, is_resume = 0x0, is_lwp = 0x0, is_evcnt = {ev_count =
> 0, ev_list = {tqe_next = 0x0, tqe_prev = 0x0}, ev_type = 0 '\000',
> ev_grouplen = 0 '\000',
> ev_namelen = 0 '\000', ev_pad1 = 0 '\000', ev_parent = 0x0,
> ev_group = 0x0, ev_name = 0x0}, is_flags = 0, is_type = 0, is_idtvec =
> 0, is_minlevel = 0, is_evname = '\000' <repeats 31 times>,
> is_intrid = "irq 9", '\000' <repeats 58 times>, is_xname = '\000'
> <repeats 255 times>, is_active_cpu = 0, is_saved_evcnt = 0xc3423ba8,
> is_list = {sqe_next = 0xc3a40e08}}
> (gdb)
Thank you for your debugging!
struct intrsource must be initialized in intr_establish(), however
the *isp isn't. It seems the *isp whose is_intrid=="irq 9" is wm(4),
because there is no such device in your last mail "intrctl list"
when boot -1 . So, I think my workaround patch does not wholly fit
your "boot -1" environment.
I implement fix code, but it will take a while to do it...
Could you keep using the workaround code and avoiding "intrctl list" ?
Please use "vmstat -e" instead of "intrctl list" if you want to know
interrupt count, sorry.
Thanks,
--
//////////////////////////////////////////////////////////////////////
Internet Initiative Japan Inc.
Device Engineering Section,
IoT Platform Development Department,
Network Division,
Technology Unit
Kengo NAKAHARA <k-nakahara%iij.ad.jp@localhost>
Home |
Main Index |
Thread Index |
Old Index