Subject: Re: [PATCH 1/1] network memory allocator.

From: Rick Jones <[email-masked]>
Date: Mon, 14 Aug 2006 10:42:55 -0700

Evgeniy Polyakov wrote:
> On Mon, Aug 14, 2006 at 10:07:48PM +1000, Keith Owens ([email-masked]) wrote:
> 
>>Evgeniy Polyakov (on Mon, 14 Aug 2006 15:04:03 +0400) wrote:
>>
>>>Network tree allocator can be used to allocate memory for all network
>>>operations from any context....
>>>...
>>>Design of allocator allows to map all node's pages into userspace thus
>>>allows to have true zero-copy support for both sending and receiving
>>>dataflows.
>>
>>Is that true for architectures with virtually indexed caches?  How do
>>you avoid the cache aliasing problems?
> 
> 
> Pages are preallocated and stolen from main memory allocator, what is
> the problem with that caches? Userspace can provide enough offset so
> that pages would not create aliases - it is usuall mmap.

That may depend heavily on the architecture.  PA-RISC has the concept of 
spaceid's, and bits from the spaceid can be included in the hash along 
with bits from the offset.  So, it is not possible to simply match the 
offset, one has to make sure that hash bits from the spaceid hash the 
same as well.

Now, PA-RISC CPUs have the ability to disable spaceid hashing, and it is 
entirely possible that the PA-RISC linux port does that, but I thought I 
would mention it as an example.  I'm sure the "official" PA-RISC linux 
folks can expand on that much much better than I can.

rick jones