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 <>
Subject: Re: kern/52111: wmX i82574L inoperative in monoprocessor mode (i386)
Date: Tue, 28 Mar 2017 10:34:59 +0200

 On 03/28/17 06:46, Kengo NAKAHARA wrote:
 > Hi,
 > On 2017/03/27 18:25, Kengo NAKAHARA wrote:
 >>   On 2017/03/27 17:42, Martin Husemann wrote:
 >>   > On Mon, Mar 27, 2017 at 11:27:17AM +0900, Kengo NAKAHARA wrote:
 >>   >> Hmm...., It is strange to me that wm(4) use two TX and RX interrupts on
 >>   >> uniprocessor system.
 > kardel@n.o send dmesg to me with individually mail. The dmesg has two bootup
 > records, that is,
 >      - If "boot -1", wm(4) use one TX and RX interrupt
 >      - If boot normal, wm(4) use two TX and RX interrupt
 > These are what I expected. I think it would be copy&paste miss that
 > two TX and RX interrupts when "boot -1".
 > And then, I try to reproduce this problem, but I cannot yet. I use
 > NetBSD-current(at 2017/03/28 GENERIC) i386 with 82574, ping(8) with
 > "ip address" works well in the environment. I think kardel@n.o use
 > custom kernel, so I try to reproduce with kernel enabled GATEWAY option.
 > however this problem is not reproduced either.
 > kardel@n.o, could you tell your kernel configuration(if there is
 > modification from GENERIC other than GATEWAY), your machine
 > setting(e.g. additional sysctl operation), and detail reproduction
 > operation?
 I just rebooted with GENERIC "boot netbsd.GENERIC-act -1".
 Same sad story. So we can avoid going throught the differences.
 looking with gdb into the live kernel I see
 (gdb) print hardclock_ticks
 $13 = 68486
 (gdb) print hardclock_ticks
 $14 = 68766
 it is the right one (not the image)
 (gdb) print ncpus
 $19 = 0
 uniprocessor going by source comments,
 (gdb) print mp_online
 $18 = 1
 multiprocessor - unconditionally set in init_main.c:configure2 before 
 building a true non multiprocessor kernel didn't succeed via 
 configuration. There are already MP assuptions in
 the x86 code.
 if you disable __HAVE_PREEMENTION you trip over
 /fs/raid2a/src/NetBSD/act/src/sys/arch/x86/x86/cpu.c:940:38: error: 
 'mp_trampoline_paddr' undeclared (first use in this function)
    pmap_kenter_pa(mp_trampoline_vaddr, mp_trampoline_paddr,
 then I stopped trying to build a true non MP kernel.
 The wm configuration for the GENERIC kernel is:
 wm0 at pci5 dev 0 function 0: Intel i82574L (rev. 0x00)
 wm0: for TX and RX interrupting at msix0 vec 0 affinity to 0
 wm0: for LINK interrupting at msix0 vec 1
 wm0: PCI-Express bus
 wm0: 2048 words (8 address bits) SPI EEPROM, version 2.1.2, Image Unique 
 ID 0000ffff
 wm0: Ethernet address 00:00:xx:y:zz:ec
 wm interrupts don't work in GENERIC either. ARP is not resolved.
 looking at tcpdump I only see transmitted packets - no received packets 
 (not even broadcasts) which supports the
 assumption that the receive path is broken
 sysctl variables look unsuspicious:
 what else should I look at?

Home | Main Index | Thread Index | Old Index