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: Frank Kardel <kardel%netbsd.org@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc:
Subject: Re: kern/52111: wmX i82574L inoperative in monoprocessor mode (i386)
Date: Wed, 29 Mar 2017 09:46:10 +0200
Fine - I'll be careful :-)
On 03/29/17 09:35, Kengo NAKAHARA wrote:
> 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