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