tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: wm(4)



On 2015/10/29 8:42, Robert Swindells wrote:
> From: SAITOH Masanobu <msaitoh%execsw.org@localhost>
>> On 2015/10/29 5:05, Robert Swindells wrote:
>>> Anyone else having problems with wm(4) in current ?
>>>
>>> Works fine in a kernel from Oct 5, doesn't do anything in latest version.
>>>
>>> The dmesg lines are:
>>>
>>> wm0 at pci3 dev 0 function 0: Intel i82574L (rev. 0x00)
>>> wm0: interrupting at ioapic0 pin 17
>>
>> Not MSI-X but INTx? Are you using Xen dom0 or non x86 machine?
> 
> It is an AMD amd64 machine, not running Xen.

 There are two other cases that it fallback to INTx:

 a) Old or broken PCI hostbridge. There is a blacklist in x86/pci/pci_machdep.c
    (pci_msi_quirk_tbl).

 b) A lot of interrupts are assinged to cpu0. On x86, interrupt sources are
    managed by cpu_info->ci_isources[]. It's fixed size. Legacy interrupt can
    share one entry but MSI/MSI-X can't.

 I suspect your machine is in b).

 And I've commit the change which should fix your problem now. Could you test
the latest if_wm.c?

> Module Name:	src
> Committed By:	msaitoh
> Date:		Thu Oct 29 07:24:01 UTC 2015
> 
> Modified Files:
> 	src/sys/dev/pci: if_wm.c
> 
> Log Message:
>  Fix a bug that the multiqueue setting is done in a multiqueue capabile
> chip but can't use MSI-X on a machine. In that case, only one queue must
> be used. Written by knakahara@ and tested by me.
> 
>  This change should be fix a problem which was reported by Robert Swindells.
> 
> 
> To generate a diff of this commit:
> cvs rdiff -u -r1.374 -r1.375 src/sys/dev/pci/if_wm.c


 Regards.





> I don't know whether it should support MSI-X or not, I am running a
> custom kernel on it which did not contain wmimsi and acpiwmi but adding
> them makes no difference. Is there anything else that should be added ?
> 
> Output of ifconfig -v is:
> 
> wm0: flags=0x8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
> 	capabilities=7ff80<TSO4,IP4CSUM_Rx,IP4CSUM_Tx,TCP4CSUM_Rx>
> 	capabilities=7ff80<TCP4CSUM_Tx,UDP4CSUM_Rx,UDP4CSUM_Tx,TCP6CSUM_Rx>
> 	capabilities=7ff80<TCP6CSUM_Tx,UDP6CSUM_Rx,UDP6CSUM_Tx,TSO6>
> 	enabled=7ff80<TSO4,IP4CSUM_Rx,IP4CSUM_Tx,TCP4CSUM_Rx>
> 	enabled=7ff80<TCP4CSUM_Tx,UDP4CSUM_Rx,UDP4CSUM_Tx,TCP6CSUM_Rx>
> 	enabled=7ff80<TCP6CSUM_Tx,UDP6CSUM_Rx,UDP6CSUM_Tx,TSO6>
> 	ec_capabilities=7<VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU>
> 	ec_enabled=0
> 	address: 68:05:ca:28:b1:c7
> 	media: Ethernet autoselect (1000baseT full-duplex,flowcontrol,rxpause,txpause)
> 	status: active
> 	input: 5 packets, 1480 bytes
> 	output: 27 packets, 4156 bytes, 11 multicasts
> 	inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
> 	inet6 fe80::6a05:caff:fe28:b1c7%wm0 prefixlen 64 scopeid 0x2
> 
> Also tried with all offloading options turned off, no change.
> 
> Running tcpdump on another machine shows it sending ARP requests.
> 
> Version 1.350 of if_wm.c works.
> 
> Robert Swindells
> 


-- 
-----------------------------------------------
                SAITOH Masanobu (msaitoh%execsw.org@localhost
                                 msaitoh%netbsd.org@localhost)


Home | Main Index | Thread Index | Old Index