Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Tue, 29 Jan 2002 16:09:56 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Tue, 29 Jan 2002 16:09:47 -0500 Received: from neon-gw-l3.transmeta.com ([63.209.4.196]:48139 "EHLO neon-gw.transmeta.com") by vger.kernel.org with ESMTP id ; Tue, 29 Jan 2002 16:09:34 -0500 Date: Tue, 29 Jan 2002 13:08:12 -0800 (PST) From: Linus Torvalds To: Oliver Xymoron cc: Daniel Phillips , Rik van Riel , Josh MacDonald , linux-kernel , , Subject: Re: Note describing poor dcache utilization under high memory pressure In-Reply-To: Message-ID: 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 Tue, 29 Jan 2002, Oliver Xymoron wrote: > > fork: > detach page tables from parent - leave the option ot just mark them read-only on architectures that support it (ie x86, I think alpha does this too). > retain pointer to "backing page tables" in parent and child > update use count in page tables You want to copy the top-level page table directory (with the "present bit" disabled or something), not just retain a pointer to it. Otherwise you just get really confused after two fork() calls, where you can have multiple "backing page tables". > "prefault" tables for current stack and instruction pages in both parent > and child Don't unconditionally prefault. There are many potentially useful things that do _not_ want to do this, for example snapshot creation. So the generic "do_fork()" thing should _not_ do prefaulting, although "sys_fork()" may well choose to do it. Linus - 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/