Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758498Ab1CCQuY (ORCPT ); Thu, 3 Mar 2011 11:50:24 -0500 Received: from mx1.redhat.com ([209.132.183.28]:57080 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756513Ab1CCQuX (ORCPT ); Thu, 3 Mar 2011 11:50:23 -0500 Message-ID: <4D6FC6C7.8060001@redhat.com> Date: Thu, 03 Mar 2011 11:50:15 -0500 From: Rik van Riel User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.7) Gecko/20100720 Fedora/3.1.1-1.fc13 Lightning/1.0b2pre Thunderbird/3.1.1 MIME-Version: 1.0 To: Yasunori Goto CC: Linux Kernel ML , linux-mm , Andrea Arcangeli , Andrew Morton , Hiroyuki KAMEZAWA , Motohiro Kosaki Subject: Re: Strange minor page fault repeats when SPECjbb2005 is executed References: <20110303200139.B187.E1E9C6FF@jp.fujitsu.com> In-Reply-To: <20110303200139.B187.E1E9C6FF@jp.fujitsu.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2036 Lines: 42 On 03/03/2011 06:01 AM, Yasunori Goto wrote: > In this log, cpu4 and 6 repeat page faults. > ---- > handle_mm_fault jiffies64=4295160616 cpu=4 address=40019a38 pmdval=0000000070832067 ptehigh=00000000 ptelow=55171067 > handle_mm_fault jiffies64=4295160616 cpu=6 address=40003a38 pmdval=0000000070832067 ptehigh=00000000 ptelow=551ef067 > handle_mm_fault jiffies64=4295160616 cpu=6 address=40003a38 pmdval=0000000070832067 ptehigh=00000000 ptelow=551ef067 > handle_mm_fault jiffies64=4295160616 cpu=4 address=40019a38 pmdval=0000000070832067 ptehigh=00000000 ptelow=55171067 > handle_mm_fault jiffies64=4295160616 cpu=4 address=40019a38 pmdval=0000000070832067 ptehigh=00000000 ptelow=55171067 > I confirmed this phenomenon is reproduced on 2.6.31 and 2.6.38-rc5 > of x86 kernel, and I heard this phenomenon doesn't occur on > x86-64 kernel from another engineer who found this problem first. > > In addition, this phenomenon occurred on 4 boxes, so I think the cause > is not hardware malfunction. On what CPU model(s) does this happen? Obviously the PTE is present and allows read, write and execute accesses, so the PTE should not cause any faults. That leaves the TLB. It looks almost like the CPU keeps re-faulting on a (old?) TLB entry, possibly with wrong permissions, and does not re-load it from the PTE. I know this "should not happen" on x86, but I cannot think of an alternative explanation right now. Can you try flushing the TLB entry in question from handle_pte_fault? It looks like the code already does this for write faults, but maybe the garbage collection code uses PROT_NONE a lot and is running into this issue with a read or exec fault? It would be good to print the fault flags as well in your debug print, so we know what kind of fault is being repeated... -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/