From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751914AbcDPBJv (ORCPT ); Fri, 15 Apr 2016 21:09:51 -0400 Received: from mail.quickscreentrading.com ([12.218.151.103]:44247 "EHLO server03.computervoice.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750886AbcDPBJu (ORCPT ); Fri, 15 Apr 2016 21:09:50 -0400 Date: Fri, 15 Apr 2016 20:09:47 -0500 (CDT) From: Paul Sturm To: linux-kernel Message-ID: <780293194.16146.1460768987018.JavaMail.zimbra@computervoice.com> Subject: pmd_set_huge and ACPI warnings MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Mailer: Zimbra 8.6.0_GA_1153 (ZimbraWebClient - GC49 (Win)/8.6.0_GA_1153) Thread-Topic: pmd_set_huge and ACPI warnings Thread-Index: 2Kz6mhuZ6cNUiM3Ap+8yA97yuaPlMw== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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.