From owner-freebsd-arch Mon Jan 6 19:11:49 2003 Delivered-To: freebsd-arch@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C75C037B401 for ; Mon, 6 Jan 2003 19:11:47 -0800 (PST) Received: from canning.wemm.org (canning.wemm.org [192.203.228.65]) by mx1.FreeBSD.org (Postfix) with ESMTP id 81BB343ED1 for ; Mon, 6 Jan 2003 19:11:47 -0800 (PST) (envelope-from peter@wemm.org) Received: from wemm.org (localhost [127.0.0.1]) by canning.wemm.org (Postfix) with ESMTP id 666D12A8A0; Mon, 6 Jan 2003 19:11:47 -0800 (PST) (envelope-from peter@wemm.org) X-Mailer: exmh version 2.5 07/13/2001 with nmh-1.0.4 To: Bruce Evans Cc: Julian Elischer , Jake Burkholder , arch@FreeBSD.ORG Subject: Re: uarea/kstack/pcb/swapout sillyness In-Reply-To: <20030107061643.F4486-100000@gamplex.bde.org> Date: Mon, 06 Jan 2003 19:11:47 -0800 From: Peter Wemm Message-Id: <20030107031147.666D12A8A0@canning.wemm.org> Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Bruce Evans wrote: > On Mon, 6 Jan 2003, Julian Elischer wrote: > > the u-area handling ahs not changed since threads were introduced. > > whether they are swapped /not-swapped is the same. > > it is supposedly swapped out in: > > vm/vm_glue.c > > in vm_proc_swapout(struct proc *p) > > > > the thread is swapped out as mentionned below > > in: pmap_swapout_thread. > > > > It is a pitty that they are not in the same location, but as Jake said. > > the thread stack (including the PCB) turns out to be somewhat MD. > > Yes. I missed the thread swapout call, having been misled partly by the > rss calculation not counting swapped out stack pages. I wouldn't be too sad to see struct user being broken up and go away.. ie: something like moving the sigacts to a seperate zone, and the other parts attached to struct proc and/or struct thread. The pcb could move to an MD part of thread, but this increases kvm utilization since it currently lives in the kstack, not the user struct. ie: struct thread would get bigger, but the kstack would not. We already do some odd things with sharing the sigacts in the rfork()/ clone() case, that moves it right out of struct user for those processes, and obviously it the 2.5K (for 32 bit systems) of struct sigacts isn't swappable at that point as it lives in malloc somewhere. But I'm kinda reluctant to kill kstack swapping yet.. they can be damn big. Clean up: yes.. Outright remove: please not yet. Cheers, -Peter -- Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com "All of this is for nothing if we don't go to the stars" - JMS/B5 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message