Port-ia64 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: UVM aobj: Large VM objects.



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 --



Home | Main Index | Thread Index | Old Index