Re: [PATCH 3/4] zsmalloc use zs_handle instead of void *

From: Seth Jennings
Date: Thu May 10 2012 - 11:12:17 EST


On 05/10/2012 09:47 AM, Nitin Gupta wrote:

> On 5/10/12 10:02 AM, Konrad Rzeszutek Wilk wrote:
>> struct zs {
>> void *ptr;
>> };
>>
>> And pass that structure around?
>>
>
> A minor problem is that we store this handle value in a radix tree node.
> If we wrap it as a struct, then we will not be able to store it directly
> in the node -- the node will have to point to a 'struct zs'. This will
> unnecessarily waste sizeof(void *) for every object stored.


I don't think so. You can use the fact that for a struct zs var, &var
and &var->ptr are the same.

For the structure above:

void * zs_to_void(struct zs *p) { return p->ptr; }
struct zs * void_to_zs(void *p) { return (struct zs *)p; }

Right?

--
Seth

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/