From: Sage Weil <sage@newdream.net>
To: Ingo Oeser <ioe-lkml@rameria.de>
Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH 05/24] ceph: ref counted buffer
Date: Sat, 5 Dec 2009 10:13:00 -0800 (PST) [thread overview]
Message-ID: <Pine.LNX.4.64.0912051010450.15568@cobra.newdream.net> (raw)
In-Reply-To: <200912050231.23530.ioe-lkml@rameria.de>
On Sat, 5 Dec 2009, Ingo Oeser wrote:
> On Friday 04 December 2009, Sage Weil wrote:
> > struct ceph_buffer is a simple ref-counted buffer. We transparently
> > choose between kmalloc for small buffers and vmalloc for large ones.
> >
> > This is currently used only for allocating memory for xattr data.
>
> Could you wrap parts of this refcounting logic around kref?
> see #include <linux/kref.h> and lib/kref.c
>
> It avoids a bug with memory areas for free and if anybody
> optimizes or changes refcounting stuff, you get all changes for free :-)
The only real difference it looks like are
smp_mb();
in get() and
smp_mb__after_atomic_inc();
in put. Is that needed for all other atomic_t refcounting too?
Switched to kref, and cleaned up the (partially unused) interface.
fs/ceph/buffer.c | 37 ++++++++++++++++++++++++++++++++-----
fs/ceph/buffer.h | 30 ++++++------------------------
fs/ceph/inode.c | 11 +++++++----
fs/ceph/messenger.c | 2 +-
fs/ceph/xattr.c | 8 +++++---
5 files changed, 51 insertions(+), 37 deletions(-)
sage
prev parent reply other threads:[~2009-12-05 18:12 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-03 23:41 [PATCH 00/24] ceph distributed file system client Sage Weil
2009-12-03 23:41 ` [PATCH 01/24] ceph: documentation Sage Weil
2009-12-03 23:41 ` [PATCH 02/24] ceph: on-wire types Sage Weil
2009-12-03 23:41 ` [PATCH 03/24] ceph: client types Sage Weil
2009-12-03 23:41 ` [PATCH 04/24] ceph: hash function Sage Weil
2009-12-03 23:41 ` [PATCH 05/24] ceph: ref counted buffer Sage Weil
2009-12-03 23:41 ` [PATCH 06/24] ceph: super.c Sage Weil
2009-12-03 23:41 ` [PATCH 07/24] ceph: inode operations Sage Weil
2009-12-03 23:41 ` [PATCH 08/24] ceph: directory operations Sage Weil
2009-12-03 23:41 ` [PATCH 09/24] ceph: file operations Sage Weil
2009-12-03 23:41 ` [PATCH 10/24] ceph: address space operations Sage Weil
2009-12-03 23:41 ` [PATCH 11/24] ceph: MDS client Sage Weil
2009-12-03 23:41 ` [PATCH 12/24] ceph: OSD client Sage Weil
2009-12-03 23:41 ` [PATCH 13/24] ceph: CRUSH mapping algorithm Sage Weil
2009-12-03 23:41 ` [PATCH 14/24] ceph: monitor client Sage Weil
2009-12-03 23:41 ` [PATCH 15/24] ceph: authentication interface Sage Weil
2009-12-03 23:41 ` [PATCH 16/24] ceph: trivial 'auth_none' authentication scheme Sage Weil
2009-12-03 23:41 ` [PATCH 17/24] ceph: capability management Sage Weil
2009-12-03 23:41 ` [PATCH 18/24] ceph: snapshot management Sage Weil
2009-12-03 23:41 ` [PATCH 19/24] ceph: messenger library Sage Weil
2009-12-03 23:41 ` [PATCH 20/24] ceph: message pools Sage Weil
2009-12-03 23:41 ` [PATCH 21/24] ceph: nfs re-export support Sage Weil
2009-12-03 23:41 ` [PATCH 22/24] ceph: ioctls Sage Weil
2009-12-03 23:41 ` [PATCH 23/24] ceph: debugfs Sage Weil
2009-12-03 23:41 ` [PATCH 24/24] ceph: Kconfig, Makefile Sage Weil
2009-12-05 1:31 ` [PATCH 05/24] ceph: ref counted buffer Ingo Oeser
2009-12-05 18:13 ` Sage Weil [this message]
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=Pine.LNX.4.64.0912051010450.15568@cobra.newdream.net \
--to=sage@newdream.net \
--cc=ioe-lkml@rameria.de \
--cc=linux-fsdevel@vger.kernel.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;
as well as URLs for NNTP newsgroup(s).