Subject: Re: UVM aobj: Large VM objects.
To: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
From: David Brownlee <abs@NetBSD.org>
List: tech-kern
Date: 03/07/2006 11:14:58
On Mon, 6 Mar 2006, YAMAMOTO Takashi wrote:

>> Hi,
>>
>> The Kernel aobject (kernel_object_store) spans (VM_MAX_ADDRESS -
>> VM_MIN_ADDRESS) on all ports. On ia64, the kernel VM range is
>> determined by the size of an IA64 "region". This was inherited from
>> FreeBSD MD code.
>>
>> The maximum number of pages required to map this size overflows type
>> int, even with 16KB page sizes. Would the following ( and possibly
>> more like this to come ) affect other areas of UVM ?
>
> (although i doubt kernel_object really need to cover the entire region,)
> making aobj 64-bit offset clean is a good idea.
>
> however, i don't think long is appropriate here.
> please introduce a 64-bit "page offset" type.
> "typedef voff_t pgoff_t" should be fine.

 	Can't we use something similar to vm_offset_t, which is
 	appropriately sized for the machine?

 	If we are ever going to need it to be 64bit on every arch with 32bit
 	physical and virtual addresses then I agree it should be 64bit,
 	but otherwise its yet another tiny performance loss/memory
 	growth, continuing the pecking to death by ducks...

-- 
 		David/absolute       -- www.NetBSD.org: No hype required --