From: Andi Kleen <ak@muc.de>
To: Jeff Garzik <jgarzik@pobox.com>
Cc: linux-mm@kvack.org
Subject: Re: simple slab alloc question
Date: Mon, 11 Oct 1999 13:10:21 +0200 [thread overview]
Message-ID: <19991011131021.A952@fred.muc.de> (raw)
In-Reply-To: <38010EAB.ACC45162@pobox.com>; from Jeff Garzik on Mon, Oct 11, 1999 at 12:09:47AM +0200
On Mon, Oct 11, 1999 at 12:09:47AM +0200, Jeff Garzik wrote:
> kmalloc seems to allocate against various kmem_cache sizes: 32,
> 64...1024...65536...
>
> Does this mean that allocations of various sizes are stored in different
> "buckets"? Would that not reduce fragmentation and the need for a zone
> allocator?
kmalloc uses these buckets. Other clients use their own slab pool (e.g.
skb headers etc.). This is a variant of a zone allocator, but only
for relatively small objects.
Slab sits on top of the page allocator and is on its mercy.
Even other major users get their pages from the page allocator directly
(inodes, dcache). These used to be (still are?) a major source of
fragmentation, because they tend to wire whole pages down even where there
is only a single active inode/dentry on it.
The page allocator uses the buddy algorithm, which is very prone
to fragmentation. Usually when you suffer from fragmentation there are
simply not enough continous pages left, and the Linux MM datastructures
are not suited to do some organized effort to get them back.
The basic idea is to replace the buddy with another zone allocator.
>
> Enlightenment from MM gurus appreciated :)
I'm not a mm guru, but I hope it was helpful.
-Andi
--
This is like TV. I don't like TV.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://humbolt.geo.uu.nl/Linux-MM/
next prev parent reply other threads:[~1999-10-11 11:10 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
1999-10-10 22:09 Jeff Garzik
1999-10-11 11:10 ` Andi Kleen [this message]
1999-10-11 18:11 ` Rik van Riel
1999-10-11 22:19 ` Stephen C. Tweedie
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=19991011131021.A952@fred.muc.de \
--to=ak@muc.de \
--cc=jgarzik@pobox.com \
--cc=linux-mm@kvack.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox