Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Nov 2004 20:16:59 -0700
From:      Scott Long <scottl@freebsd.org>
To:        David Schultz <das@freebsd.org>
Cc:        arch@freebsd.org
Subject:   Re: U Area Removal
Message-ID:  <4192D9AB.5060309@freebsd.org>
In-Reply-To: <20041111030035.GA70923@VARK.MIT.EDU>
References:  <20041111030035.GA70923@VARK.MIT.EDU>

next in thread | previous in thread | raw e-mail | index | archive | help
David Schultz wrote:
> Over the years, the amount of data we have stored in each process' U
> area has eroded to the point where all we have left are the following:
> 
>   - A struct kinfo_proc that is only used for a.out core dumps.
>     This can be reconstructed at the time of the core dump, so
>     it doesn't need to be there.
> 
>   - The struct pstats for the process, which takes a mere 216 bytes
>     on i386.
> 
> In exchange for the ability to swap out this 216-byte structure, we
> keep around a 4096-byte page, a 132-byte vm_object, and a couple of
> pointers.  Moreover, there is a small amount of runtime overhead
> associated with this, and developers need to remember to PHOLD() and
> PRELE() the process as appropriate.[1]
> 
> I propose to remove the ability to swap the U area, allocating p_stats
> from malloced memory instead.  Medium-term scheduling and swapping of
> kernel stacks would be retained.  Here are the patches; !i386 testers
> wanted:
> 
> 	http://www.freebsd.org/~das/patches/upages.diff
> 
> 
> [1] Most of the instances of PHOLD() and PRELE() right now never
>     needed to be there or have been unnecessary ever since the PCB
>     was moved out of the U area.

Go for it!  Just get some validation that amd64 and sparc64 work, and
then do the deed.  I'll try testing at least amd64 right now.

Scott



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4192D9AB.5060309>