From: Kyle Moffett <mrmacman_g4@mac.com>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Andrew Morton <akpm@osdl.org>
Subject: Why is kmem_bufctl_t different across platforms?
Date: Sun, 28 Aug 2005 17:42:36 -0400 [thread overview]
Message-ID: <3B0AEB5C-4A65-413F-BD35-B9F0E0984653@mac.com> (raw)
While exploring the asm-*/types.h files, I discovered that the
type "kmem_bufctl_t" is differently defined across each platform,
sometimes as a short, and sometimes as an int. The only file
where it's used is mm/slab.c, and as far as I can tell, that file
doesn't care at all, aside from preferring it to be a small-sized
type. I found this comment:
> /*
> * kmem_bufctl_t:
> *
> * Bufctl's are used for linking objs within a slab
> * linked offsets.
> *
> * This implementation relies on "struct page" for locating the
> cache &
> * slab an object belongs to.
> * This allows the bufctl structure to be small (one int), but limits
> * the number of objects a slab (not a cache) can contain when off-
> slab
> * bufctls are used. The limit is the size of the largest general
> cache
> * that does not use off-slab slabs.
> * For 32bit archs with 4 kB pages, is this 56.
> * This is not serious, as it is only for large objects, when it is
> unwise
> * to have too many per slab.
> * Note: This limit can be raised by introducing a general cache
> whose size
> * is less than 512 (PAGE_SIZE<<3), but greater than 256.
> */
It appears to state that the max kmem_bufctl_t value is ~56 on most
setups, although it could be higher with 64-bit or bigger pages.
Since this value is never used by anything except that kernel-internal
file, should it be unified across all architectures? If so, I'll send
a patch to remove the various typedefs and introduce a single
"typedef unsigned short kmem_bufctl_t" in include/linux/types.h
Cheers,
Kyle Moffett
--
Premature optimization is the root of all evil in programming
-- C.A.R. Hoare
next reply other threads:[~2005-08-28 21:42 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-28 21:42 Kyle Moffett [this message]
2005-08-28 21:55 ` Andrew Morton
2005-08-28 23:37 ` Adrian Bunk
2005-08-29 2:00 ` Kyle Moffett
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=3B0AEB5C-4A65-413F-BD35-B9F0E0984653@mac.com \
--to=mrmacman_g4@mac.com \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.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
all inboxes | Powered by JetHome®