From: James Bottomley <James.Bottomley@suse.de>
To: Changli Gao <xiaosuo@gmail.com>
Cc: akpm@linux-foundation.org, Hoang-Nam Nguyen <hnguyen@de.ibm.com>,
Christoph Raisch <raisch@de.ibm.com>,
Roland Dreier <rolandd@cisco.com>,
Sean Hefty <sean.hefty@intel.com>,
Hal Rosenstock <hal.rosenstock@gmail.com>,
Divy Le Ray <divy@chelsio.com>, Theodore Ts'o <tytso@mit.edu>,
Andreas Dilger <adilger@sun.com>,
Alexander Viro <viro@zeniv.linux.org.uk>,
Paul Menage <menage@google.com>, Li Zefan <lizf@cn.fujitsu.com>,
linux-rdma@vger.kernel.org, linux-kernel@vger.kernel.org,
netdev@vger.kernel.org, linux-scsi@vger.kernel.org,
linux-ext4@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-mm@kvack.org, containers@lists.linux-foundation.org
Subject: Re: [PATCH 0/9] mm: generic adaptive large memory allocation APIs
Date: Thu, 13 May 2010 10:04:15 -0500 [thread overview]
Message-ID: <1273763055.4353.136.camel@mulgrave.site> (raw)
In-Reply-To: <1273744147-7594-1-git-send-email-xiaosuo@gmail.com>
On Thu, 2010-05-13 at 17:49 +0800, Changli Gao wrote:
> generic adaptive large memory allocation APIs
>
> kv*alloc are used to allocate large contiguous memory and the users don't mind
> whether the memory is physically or virtually contiguous. The allocator always
> try its best to allocate physically contiguous memory first.
This isn't necessarily true ... most drivers and filesystems have to
know what type they're getting. Often they have to do extra tricks to
process vmalloc areas. Conversely, large kmalloc areas are a very
precious commodity: if a driver or filesystem can handle vmalloc for
large allocations, it should: it's easier for us to expand the vmalloc
area than to try to make page reclaim keep large contiguous areas ... I
notice your proposed API does the exact opposite of this ... tries
kmalloc first and then does vmalloc.
Given this policy problem, isn't it easier simply to hand craft the
vmalloc fall back to kmalloc (or vice versa) in the driver than add this
whole massive raft of APIs for it?
> In this patch set, some APIs are introduced: kvmalloc(), kvzalloc(), kvcalloc(),
> kvrealloc(), kvfree() and kvfree_inatomic().
>
> Some code are converted to use the new generic APIs instead.
>
> Signed-off-by: Changli Gao <xiaosuo@gmail.com>
> ----
> drivers/infiniband/hw/ehca/ipz_pt_fn.c | 22 +-----
> drivers/net/cxgb3/cxgb3_defs.h | 2
> drivers/net/cxgb3/cxgb3_offload.c | 31 ---------
> drivers/net/cxgb3/l2t.c | 4 -
> drivers/net/cxgb4/cxgb4.h | 3
> drivers/net/cxgb4/cxgb4_main.c | 37 +----------
> drivers/net/cxgb4/l2t.c | 2
> drivers/scsi/cxgb3i/cxgb3i_ddp.c | 12 +--
> drivers/scsi/cxgb3i/cxgb3i_ddp.h | 26 -------
> drivers/scsi/cxgb3i/cxgb3i_offload.c | 6 -
> fs/ext4/super.c | 21 +-----
> fs/file.c | 109 ++++-----------------------------
> include/linux/mm.h | 31 +++++++++
> include/linux/vmalloc.h | 1
> kernel/cgroup.c | 47 +-------------
> kernel/relay.c | 35 ----------
> mm/nommu.c | 6 +
> mm/util.c | 104 +++++++++++++++++++++++++++++++
> mm/vmalloc.c | 14 ++++
> 19 files changed, 207 insertions(+), 306 deletions(-)
James
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2010-05-13 15:04 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-13 9:49 [PATCH 0/9] mm: generic adaptive large memory allocation APIs Changli Gao
2010-05-13 15:04 ` James Bottomley [this message]
2010-05-13 21:56 ` Andreas Dilger
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=1273763055.4353.136.camel@mulgrave.site \
--to=james.bottomley@suse.de \
--cc=adilger@sun.com \
--cc=akpm@linux-foundation.org \
--cc=containers@lists.linux-foundation.org \
--cc=divy@chelsio.com \
--cc=hal.rosenstock@gmail.com \
--cc=hnguyen@de.ibm.com \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-rdma@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=lizf@cn.fujitsu.com \
--cc=menage@google.com \
--cc=netdev@vger.kernel.org \
--cc=raisch@de.ibm.com \
--cc=rolandd@cisco.com \
--cc=sean.hefty@intel.com \
--cc=tytso@mit.edu \
--cc=viro@zeniv.linux.org.uk \
--cc=xiaosuo@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).