From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1762182AbXIUT0b (ORCPT ); Fri, 21 Sep 2007 15:26:31 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753338AbXIUT0Y (ORCPT ); Fri, 21 Sep 2007 15:26:24 -0400 Received: from netops-testserver-3-out.sgi.com ([192.48.171.28]:39587 "EHLO relay.sgi.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752183AbXIUT0X (ORCPT ); Fri, 21 Sep 2007 15:26:23 -0400 Date: Fri, 21 Sep 2007 12:26:22 -0700 (PDT) From: Christoph Lameter X-X-Sender: clameter@schroedinger.engr.sgi.com To: Linus Torvalds cc: "Siddha, Suresh B" , akpm@linux-foundation.org, ak@suse.de, linux-kernel@vger.kernel.org, tony.luck@intel.com, asit.k.mallick@intel.com Subject: Re: x86_64: potential critical issue with quicklists and page table pages In-Reply-To: Message-ID: References: <20070921180742.GH20863@linux-os.sc.intel.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 21 Sep 2007, Linus Torvalds wrote: > Yeah, and the whole thing seems totally bogus. It totally depends on > mmu_gather doing everything right (which very much includes the dependency > on mmu gathering disabling preempt). The quicklists have been existing for a long time in this relationship and were actually developed initially (by Dave Miller I believe) to work this way. The generic TLB flushing thing may have developed in parallel on other platforms that did not use quicklists. > For exmaple, if we were to go back to the original small tlb_gather with a > simple quicklist on the stack, rather than the per-cpu datastructure, the > quicklists would immediately break horribly - simply because they are > incorrectly now depending on the internal semantics of that tlb-gather. Hmmmm.. Right the integration of the approaches that have now diverged on various platforms could be better. > As it is, the quicklists try to be something separate, but by virtue of > being separate, they will always be buggy. I guess we need to re-join what was separated by developments on different platforms. > The only way to fix it would be to integrate the quicklist stuff *with* > the mmu_gather stuff, so that these kinds of implementation issues are > explicitly shown in the relationship, instead of havign two "independent" > pieces of code where one piece very subtly depends on the exact > implementation of the other. Right. But will that not mean that quicklists would have to be used on all platforms in a generic way?