Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Jul 2010 12:06:32 -0500
From:      Alan Cox <alc@cs.rice.edu>
To:        Jeff Roberson <jroberson@jroberson.net>
Cc:        svn-src-projects@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r210586 - projects/ofed/head/sys/ofed/include/linux
Message-ID:  <4C51B518.8060607@cs.rice.edu>
In-Reply-To: <alpine.BSF.2.00.1007282303220.1414@desktop>
References:  <201007290212.o6T2CN20099343@svn.freebsd.org> <4C50FB4A.4000505@cs.rice.edu> <alpine.BSF.2.00.1007282303220.1414@desktop>

next in thread | previous in thread | raw e-mail | index | archive | help
Jeff Roberson wrote:
> On Wed, 28 Jul 2010, Alan Cox wrote:
>
>> Jeff Roberson wrote:
>>> Author: jeff
>>> Date: Thu Jul 29 02:12:22 2010
>>> New Revision: 210586
>>> URL: http://svn.freebsd.org/changeset/base/210586
>>>
>>> Log:
>>>    - Refine various page allocation methods.  They all essentially 
>>> override
>>>      the page object pointer to cache the virtual address after 
>>> allocation.
>>>      This same trick is used in UMA to store the slab address and so it
>>>      should be safe.
>>>
>>
>> You needn't do this.  The virtual address of a kernel_object or 
>> kmem_object page is easily obtained:
>>
>>   VM_MIN_KERNEL_ADDRESS + IDX_TO_OFF(m->pindex)
>
> Ah, of course.  I hadn't considered that.  Thanks.  I'll remove the 
> other hackery.
>
> On another note; linux guarantees multipage allocations are aligned on 
> the first power of two size that satisfies the allocation.  I can do 
> this with contigmalloc but they also guarantee that the virtual 
> address is similarly aligned.  I don't think I've run across anything 
> that requires it, but if I do, do we have any provision for allocating 
> virtually aligned addresses?
>

No, I'm afraid not.  We only support a couple of specific cases of 
virtually aligned allocation: thread stacks on MIPS and the start of the 
large submaps on superpage-enabled architectures.

Alan




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4C51B518.8060607>