2006-01-04 06:32:56

by Josef Sipek

[permalink] [raw]
Subject: __getname vs kmalloc

Which is the prefered method of allocating memory __getname or kmalloc?

I looked at the source, and it appears to be used by 9p, smbfs, parts
of VFS. In total there are only 10 calls to it.

Thanks,

Jeff Sipek.


2006-01-04 10:19:38

by Trond Myklebust

[permalink] [raw]
Subject: Re: __getname vs kmalloc

On Wed, 2006-01-04 at 01:32 -0500, Josef Sipek wrote:
> Which is the prefered method of allocating memory __getname or kmalloc?

Depends entirely on the purpose. __getname uses the "names_cache" slab
and allocates PATH_MAX sized chunks. It is mainly supposed to be used
for temporary storage of an entire path.

> I looked at the source, and it appears to be used by 9p, smbfs, parts
> of VFS. In total there are only 10 calls to it.

Most callers use getname(), which also does the string length sanity
checks and then copies the path from userland memory.

Cheers,
Trond

2006-01-04 10:35:11

by Josef Sipek

[permalink] [raw]
Subject: Re: __getname vs kmalloc

On Wed, Jan 04, 2006 at 11:19:29AM +0100, Trond Myklebust wrote:
> On Wed, 2006-01-04 at 01:32 -0500, Josef Sipek wrote:
> > Which is the prefered method of allocating memory __getname or kmalloc?
>
> Depends entirely on the purpose. __getname uses the "names_cache" slab
> and allocates PATH_MAX sized chunks. It is mainly supposed to be used
> for temporary storage of an entire path.
>
> Most callers use getname(), which also does the string length sanity
> checks and then copies the path from userland memory.

Ah, so since I am working with path components that'll get most of the
time passed to lookup_one_len & friends, kmalloc is the better way to
get memory, correct?

Thanks,
Jeff Sipek