[Bug 240320] [ixgbe] [patch] EEE state change causes core dump on X552
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Tue Sep 3 20:54:02 UTC 2019
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=240320
Bug ID: 240320
Summary: [ixgbe] [patch] EEE state change causes core dump on
X552
Product: Base System
Version: 12.0-RELEASE
Hardware: Any
OS: Any
Status: New
Severity: Affects Many People
Priority: ---
Component: kern
Assignee: bugs at FreeBSD.org
Reporter: zvargas at xes-inc.com
Created attachment 207168
--> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=207168&action=edit
Patch to disable EEE support on X552 devices in the ix driver.
Overview:
My system has a Xeon-D 1500 series SoC with two 10GbE Intel X552 backplane
connections (device ID: 0x15AB). In FreeBSD 12.0 RELEASE, attempting to use the
sysctl utility to transition Energy Efficient Ethernet (EEE) states causes a
core dump (see below for details). I believe that this is the result of the
fact that X552 devices do not support EEE. This assertion is based on the
following documentation from Intel:
The note below table 1.2 (Network Features) in Section 1.6 of volume 4 of the
datasheet for Xeon-D 1500
(https://www.intel.com/content/dam/www/public/us/en/documents/datasheets/xeon-d-1500-datasheet-vol-4.pdf)
states:
EEE is ONLY supported for 10GBASE-T interfaces via the X557-AT2 PHY. The
Intel® Xeon® Processor D-1500 Product Family LANcontroller does not support EEE
feature.
Furthermore, in the README for the Linux ixgbe driver (version 5.6.1), EEE is
listed as an unsupported feature:
NOTE: Devices based on the Intel(R) Ethernet Connection X552 and Intel(R)
Ethernet Connection X553 do not support the following features:
* Energy Efficient Ethernet (EEE)
* Intel PROSet for Windows Device Manager
* Intel ANS teams or VLANs (LBFO is supported)
* Fibre Channel over Ethernet (FCoE)
* Data Center Bridging (DCB)
* IPSec Offloading
* MACSec Offloading
The FreeBSD ix driver (version 3.3.10) release README also has a list of
unsupported features for X552. However, these lists do not match. The FreeBSD
version lists 'Low Latency Interrupts (LLI)' as the only unsupported feature.
I have attached a patch (0001-X552-does-not-support-eee.patch) to disable EEE
support on X552 devices in the ix driver. This patch was created against
r350420 of FreeBSD which was the latest in CURRENT at the time of my
investigation.
Steps to Reproduce:
Attempt to change EEE state via the ix driver eee_state attribute via the
sysctl utility.
Actual results:
Running 12.0 RELEASE FreeBSD from https://svn.freebsd.org/base/releng/12.0,
attempting to change the EEE state of an ix adapter:
root at bsd:~ # uname -r
12.0-RELEASE
root at bsd:~ # sysctl dev.ix.1.eee_state
dev.ix.1.eee_state: 1
root at bsd:~ # sysctl dev.ix.1.eee_state=0
Fatal trap 12: page fault while in kernel mode
cpuid = 5; apic id = 05
fault virtual address = 0x0
fault code = supervisor read instruction, page not present
instruction pointer = 0x20:0x0
stack pointer = 0x28:0xfffffe008a86d718
frame pointer = 0x28:0xfffffe008a86d760
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags = interrupt enabled, resume, IOPL = 0
current process = 2424 (sysctl)
trap number = 12
panic: page fault
cpuid = 5
time = 1563820937
KDB: stack backtrace:
#0 0xffffffff80bdcbc7 at kdb_backtrace+0x67
#1 0xffffffff80b907b3 at vpanic+0x1a3
#2 0xffffffff80b90603 at panic+0x43
#3 0xffffffff8106996f at trap_fatal+0x35f
#4 0xffffffff810699c9 at trap_pfault+0x49
#5 0xffffffff81068fee at trap+0x29e
#6 0xffffffff81044425 at calltrap+0x8
#7 0xffffffff80b9f56b at sysctl_root_handler_locked+0x8b
#8 0xffffffff80b9ec27 at sysctl_root+0x257
#9 0xffffffff80b9f29a at userland_sysctl+0x17a
#10 0xffffffff80b9f0df at sys___sysctl+0x5f
#11 0xffffffff8106a449 at amd64_syscall+0x369
#12 0xffffffff81044d0d at fast_syscall_common+0x101
Uptime: 36m40s
Dumping 736 out of 16329 MB:..3%..11%..22%..31%..42%..53%..61%..72%..81%..92%
Dump complete
I see the same behaviour in CURRENT and core dump on boot in previous versions
(11.3).
Expected Results: Transition EEE state or error out without coredump.
Testing with this patch applied:
root at bsd:~/freebsd-ixgbe # sysctl dev.ix.1.eee_state
sysctl: unknown oid 'dev.ix.1.eee_state'
root at bsd:~/freebsd-ixgbe #
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list