From: Eric Paris <eparis@redhat.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
Kyle McMartin <kyle@mcmartin.ca>,
James Morris <jmorris@namei.org>,
Christoph Hellwig <hch@infradead.org>,
kernel@lists.fedoraproject.org, Mimi Zohar <zohar@us.ibm.com>,
warthog9@kernel.org, Dave Chinner <david@fromorbit.com>,
linux-kernel@vger.kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
Serge Hallyn <serue@us.ibm.com>,
Andrew Morton <akpm@linux-foundation.org>
Subject: Re: ima: use of radix tree cache indexing == massive waste of memory?
Date: Mon, 18 Oct 2010 14:43:37 -0400 [thread overview]
Message-ID: <1287427417.2530.72.camel@localhost.localdomain> (raw)
In-Reply-To: <20101018181916.GB12372@elte.hu>
On Mon, 2010-10-18 at 20:19 +0200, Ingo Molnar wrote:
> * Eric Paris <eparis@redhat.com> wrote:
>
> > On Mon, 2010-10-18 at 10:56 -0700, Linus Torvalds wrote:
> > > On Mon, Oct 18, 2010 at 9:48 AM, Eric Paris <eparis@redhat.com> wrote:
> > > >
> > > > 1) IMA uses radix trees which end up wasting 500 bytes per inode because
> > > > the key is too sparse. I've got a patch which uses an rbtree instead
> > > > I'm testing and will send along shortly. I found it funny working on
> > > > the patch to see that Documentation/rbtree.txt says "This differs from
> > > > radix trees (which are used to efficiently store sparse arrays and thus
> > > > use long integer indexes to insert/access/delete nodes)" Which flys in
> > > > the face of this report.
> > >
> > > Please. Look at the report more carefully.
> > >
> > > The radix tree memory use is disgusting. Yes. But it is absolutely NOT
> > > sufficient to try to just fix that part. Go back, look at the original
> > > report email, and this line in particular:
> > >
> > > 2235648 2069791 92% 0.12K 69864 32 279456K iint_cache
> > >
> > > There's 2.2 million iint_cache allocations too, each 128 bytes in
> > > size. That's still a quarter _gigabyte_ of crap that adds zero value
> > > at all.
> >
> > That was #2 in my list of things to fix:
> >
> > 2) IMA creates an entire integrity structure for every inode even when most or all
> > of this structure will not be needed.
> >
> > I'm stating with #1 since that was 2G of wasted space (thus far my switch to
> > rbtree seems to be surviving an xfstest) so I expect to send the patch this
> > afternoon. #2 should attack the size of the iint_cache entries. #3 should attack
> > the scalability. I'm certainly hoping I didn't miss part of the report....
>
> I think it would be fair to argue that #2 is the thing that should be fixed first
> and foremost - before touching any data structure details.
>
> Because if you fix #2 then all the other items will become no-op to 99.9% of the
> people who are affected by this bug today.
>
> It's also probably a much simpler fix for -stable, so should be done first, etc.
>
> If you do the data structure changes first then #2 will likely not be backportable
> standalone and #1 will be risky to backport - creating nasty dependencies.
Good point. I'll keep that in mind and possibly reorder.
-Eric
next prev parent reply other threads:[~2010-10-18 18:45 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-16 6:52 ima: use of radix tree cache indexing == massive waste of memory? Dave Chinner
2010-10-16 19:20 ` Christoph Hellwig
2010-10-16 21:10 ` H. Peter Anvin
2010-10-17 0:35 ` Dave Chinner
2010-10-17 0:54 ` J.H.
2010-10-17 2:11 ` Dave Chinner
2010-10-18 18:12 ` J.H.
2010-10-17 0:49 ` Christoph Hellwig
2010-10-17 1:09 ` Kyle McMartin
2010-10-17 1:13 ` Christoph Hellwig
2010-10-17 5:49 ` Ingo Molnar
2010-10-17 5:40 ` Ingo Molnar
2010-10-17 18:46 ` Christoph Hellwig
2010-10-18 0:49 ` James Morris
2010-10-18 6:25 ` Kyle McMartin
2010-10-18 6:36 ` Andrew Morton
2010-10-18 9:29 ` Dave Chinner
2010-10-18 13:31 ` Mimi Zohar
2010-10-18 20:50 ` Ware, Ryan R
2010-10-26 7:31 ` Pavel Machek
2010-10-18 16:03 ` Mimi Zohar
2010-10-18 19:24 ` John Stoffel
2010-10-18 16:46 ` Ryan Ware
2010-10-18 16:48 ` Eric Paris
2010-10-18 17:10 ` Kyle McMartin
2010-10-18 17:34 ` Kyle McMartin
2010-10-18 17:56 ` Linus Torvalds
2010-10-18 18:13 ` Eric Paris
2010-10-18 18:19 ` Ingo Molnar
2010-10-18 18:43 ` Eric Paris [this message]
2010-10-19 0:58 ` Eric Paris
2010-10-18 18:06 ` H. Peter Anvin
2010-10-18 18:11 ` Ingo Molnar
2010-10-18 18:13 ` H. Peter Anvin
2010-10-25 13:18 ` Pavel Machek
2010-10-17 5:57 ` Mimi Zohar
2010-10-17 11:02 ` Peter Zijlstra
2010-10-17 13:12 ` Eric Paris
2010-10-17 13:59 ` Peter Zijlstra
2010-10-17 14:04 ` Peter Zijlstra
2010-10-17 14:16 ` Eric Paris
2010-10-18 11:57 ` Peter Zijlstra
2010-10-18 14:59 ` Ted Ts'o
2010-10-18 15:02 ` Peter Zijlstra
2010-10-18 15:02 ` Eric Paris
2010-10-17 18:52 ` Christoph Hellwig
2010-10-18 16:44 ` Ryan Ware
2010-10-18 0:07 ` Dave Chinner
2010-10-17 14:09 ` Mimi Zohar
2010-10-17 18:49 ` Christoph Hellwig
2010-10-17 19:39 ` Pavel Machek
-- strict thread matches above, loose matches on Subject: below --
2010-10-18 15:09 Christoph Hellwig
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1287427417.2530.72.camel@localhost.localdomain \
--to=eparis@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=david@fromorbit.com \
--cc=hch@infradead.org \
--cc=hpa@zytor.com \
--cc=jmorris@namei.org \
--cc=kernel@lists.fedoraproject.org \
--cc=kyle@mcmartin.ca \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=serue@us.ibm.com \
--cc=torvalds@linux-foundation.org \
--cc=warthog9@kernel.org \
--cc=zohar@us.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.