lkml.org 
[lkml]   [2007]   [Sep]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: Credentials test patch
Date
Ulrich Drepper <drepper@gmail.com> wrote:

> In sys_faccessat you temporarily allocate a cred object which is
> discarded in the end. With a few more macro definitions you could
> create a dup_cred variant which initialized an automatic variable of
> type struct cred. This way the kmalloc/kfree pair would fall away.

No, you can't. The filesystems sys_faccessat() then invokes are entitled to
take a reference to it - the SunRPC authentication stuff, for example - so you
can't just preemptively unallocate it as would occur with an automatic variable.

> access is actually used frequently. For instance, ld.so uses it on
> every startup as a quicker possibility to check for a file which
> usually doesn't exist. So, speeding up access has some small effect
> on performance. The resulting code might actually reduce the kernel
> size a bit due to all the checks and calls which go away.

A better way would be to compare fsuid/fsgid to uid/gid and to just take an
extra ref on the incumbent cred object if they're the same, rather than always
allocating a new one. That, I suspect, would speed up 99.99% of the cases.

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

\
 
 \ /
  Last update: 2007-09-17 13:05    [W:1.047 / U:0.040 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site