lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:	Fri, 15 Apr 2016 20:09:47 -0500 (CDT)
From:	Paul Sturm <psturm@...putervoice.com>
To:	linux-kernel <linux-kernel@...r.kernel.org>
Subject: pmd_set_huge and ACPI warnings

Not sure if this is the right place to post. If it is not please direct me to where I should go.

I am running x86_64 kernel 4.4.6 on an Intel Xeon D system. This is an SOC system that includes dual 10G ethernet using the ixgbe driver. 
I have also tested this on kernels 4.2 through 4.6rc3 with the same result.

When the ixgbe driver loads, I get the following two warnings: 

[ 5453.184701] ixgbe: Intel(R) 10 Gigabit PCI Express Network Driver - version 4.2.1-k 
[ 5453.184704] ixgbe: Copyright (c) 1999-2015 Intel Corporation. 
[ 5453.184767] ACPI Warning: \_SB_.PCI0.BR2C._PRT: Return Package has no elements (empty) (20150930/nsprepkg-126) 
[ 5453.184891] pmd_set_huge: Cannot satisfy [mem 0x383fffa00000-0x383fffc00000] with a huge-page mapping due to MTRR override. 

BIOS is set to enable 64-bit DMA above 4GB. 
cat proc/mtrr looks like this: 
reg00: base=0x080000000 ( 2048MB ), size= 2048MB, count=1: uncachable 
reg01: base=0x380000000000 (58720256MB ), size=262144MB, count=1: uncachable 
reg02: base=0x383fff800000 (58982392MB ), size= 8MB, count=1: write-through 
reg03: base=0x383ffff00000 (58982399MB ), size= 1MB, count=1: uncachable 

When I change the BIOS setting to disable DMA above 4GB (no other BIOS changes I tried had any effect on the MTRR ranges) 
cat /proc/mtrr looks like this: 
reg00: base=0x080000000 ( 2048MB ), size= 2048MB, count=1: uncachable 
reg01: base=0x380000000000 (58720256MB ), size=262144MB, count=1: uncachable 
reg02: base=0x0f9800000 ( 3992MB ), size= 8MB, count=1: write-through 
reg03: base=0x0f9f00000 ( 3999MB ), size= 1MB, count=1: uncachable 

and the pmd_set_huge warning indicates a memory range in the 0x0fxxxx uncacheable range. 

So the result is that ixgbe seems to always try to get it's hugepage from the uncacheable range. 

I can post the full dmesg if requested, but in the meantime, here are the TLB-related entries: 
[ 0.027925] Last level iTLB entries: 4KB 64, 2MB 8, 4MB 8 
[ 0.027931] Last level dTLB entries: 4KB 64, 2MB 0, 4MB 0, 1GB 4 

[ 0.325307] HugeTLB registered 1 GB page size, pre-allocated 0 pages 
[ 0.325315] HugeTLB registered 2 MB page size, pre-allocated 0 pages 
I tried to pre-allocate both 1GB and 2MB pages via the kernel command line and it had no effect. 

I have tried both compiling the driver in the kernel and loading it as a module. Same results. 

I first reported this on the e1000 sourceforge list and they directed me to linux-mm, but majordomo is non-responsive for that list. 

In addition to the pmd_set_huge warning, there is also that ACPI warning. I am not sure if it is related or not, but I can say it only appears when the IXGBE driver is loaded and it always loads right before the pmd_set_huge warning. 

Please advise.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ