Re: [PATCH 00/59] Introduce credentials

Alan Cox
2008-08-28T10:04:20Z

On Thu, 28 Aug 2008 10:19:44 +0100
David Howells <dhowells@redhat.com> wrote:

> Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:
>
> > > We get a number of things:
> > >
> > > (1) Multiple credential changes all happen simultaneously (setresuid() for
> > > example). The new set of credentials is committed with a single RCU
> > > assignment.
> >
> > Makes sense - except for the question of bounding memory utilisation.
>
> Would it make sense to call synchronise_rcu() from commit_creds() or from
> setuid()/setresuid()/setgroups()/etc. to make sure that some user process
> doing:
>
> while (1)
> alter_credentials();
>
> doesn't run the system out of memory by having loads of frees waiting in RCU's
> queues because put_cred() uses call_rcu() to defer the destruction.

I suspect you to - or every "nth" event - building up a small queue as
would occur in normal usage probably isn't a problem.