public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: David Teigland <teigland@redhat.com>
To: Arjan van de Ven <arjan@infradead.org>
Cc: akpm@osdl.org, linux-kernel@vger.kernel.org, linux-cluster@redhat.com
Subject: Re: [PATCH 00/14] GFS
Date: Fri, 5 Aug 2005 15:14:15 +0800	[thread overview]
Message-ID: <20050805071415.GC14880@redhat.com> (raw)
In-Reply-To: <1122968724.3247.22.camel@laptopd505.fenrus.org>

On Tue, Aug 02, 2005 at 09:45:24AM +0200, Arjan van de Ven wrote:

> * +static const uint32_t crc_32_tab[] = .....
> why do you duplicate this? The kernel has a perfectly good set of
> generic crc32 tables/functions just fine

The gfs2_disk_hash() function and the crc table on which it's based are a
part of gfs2_ondisk.h: the ondisk metadata specification.  This is a bit
unusual since gfs uses a hash table on-disk for its directory structure.
This header, including the hash function/table, must be included by user
space programs like fsck that want to decipher a fs, and any change to the
function or table would effectively make the fs corrupted.  Because of
this I think it's best for gfs to keep it's own copy as part of its ondisk
format spec.

> * Why are you using bufferheads extensively in a new filesystem?

bh's are used for metadata, the log, and journaled data which need to be
written at the block granularity, not page.

> why do you use a rwsem and not a regular semaphore? You are aware that
> rwsems are far more expensive than regular ones right?  How skewed is
> the read/write ratio?

Aware, yes, it's the only rwsem in gfs.  Specific skew, no, we'll have to
measure that.

> * +++ b/fs/gfs2/fixed_div64.h	2005-08-01 14:13:08.009808200 +0800
> ehhhh why?

I'm not sure, actually, apart from the comments:

do_div: /* For ia32 we need to pull some tricks to get past various versions
           of the compiler which do not like us using do_div in the middle
           of large functions. */

do_mod: /* Side effect free 64 bit mod operation */

fs/xfs/linux-2.6/xfs_linux.h (the origin of this file) has the same thing,
perhaps this is an old problem that's now fixed?

> * int gfs2_copy2user(struct buffer_head *bh, char **buf, unsigned int offset,
> +		   unsigned int size)
> +{
> +	int error;
> +
> +	if (bh)
> +		error = copy_to_user(*buf, bh->b_data + offset, size);
> +	else
> +		error = clear_user(*buf, size);
> 
> that looks to be missing a few kmaps.. whats the guarantee that b_data
> is actually, like in lowmem?

This is only used in the specific case of reading a journaled-data file.
That seems to effectively be the same as reading a buffer of fs metadata.

> The diaper device is a block device within gfs that gets transparently
> inserted between the real device the and rest of the filesystem.
> 
> hmmmm why not use device mapper or something? Is this really needed?

This is needed for the "withdraw" feature (described in the comment) which
is fairly important.  We'll see if dm could be used instead.

Thanks,
Dave


  parent reply	other threads:[~2005-08-05  7:09 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-08-02  7:18 [PATCH 00/14] GFS David Teigland
2005-08-02  7:45 ` Arjan van de Ven
2005-08-02 14:57   ` Jan Engelhardt
2005-08-02 15:02     ` Arjan van de Ven
2005-08-03  1:00       ` Hans Reiser
2005-08-03  4:07         ` Kyle Moffett
2005-08-03  6:37           ` Jan Engelhardt
2005-08-03  9:09         ` Arjan van de Ven
2005-08-03  3:56   ` David Teigland
2005-08-03  9:17     ` Arjan van de Ven
2005-08-03 10:08       ` David Teigland
2005-08-03 10:37     ` Lars Marowsky-Bree
2005-08-03 18:54       ` Mark Fasheh
2005-08-05  7:14   ` David Teigland [this message]
2005-08-05  7:27     ` [Linux-cluster] " Mike Christie
2005-08-05  7:30       ` Mike Christie
2005-08-05  7:34     ` Arjan van de Ven
2005-08-05  9:44       ` David Teigland
2005-08-05 10:07         ` Jörn Engel
2005-08-05 10:31           ` David Teigland
2005-08-05  8:28     ` Jan Engelhardt
2005-08-05  8:34       ` Arjan van de Ven
2005-08-08  6:26     ` David Teigland
2005-08-11  6:06   ` David Teigland
2005-08-11  6:55     ` Arjan van de Ven
2005-08-02 10:16 ` Pekka Enberg
2005-08-03  6:36   ` David Teigland
2005-08-08 14:14     ` GFS Pekka J Enberg
2005-08-08 18:32       ` GFS Zach Brown
2005-08-09 14:49         ` GFS Pekka Enberg
2005-08-09 17:17           ` GFS Zach Brown
2005-08-09 18:35             ` GFS Pekka J Enberg
2005-08-10  4:48             ` GFS Pekka J Enberg
2005-08-10  7:21           ` GFS Christoph Hellwig
2005-08-10  7:31             ` GFS Pekka J Enberg
2005-08-10 16:26               ` GFS Mark Fasheh
2005-08-10 16:57                 ` GFS Pekka J Enberg
2005-08-10 18:21                   ` GFS Mark Fasheh
2005-08-10 20:18                     ` GFS Pekka J Enberg
2005-08-10 22:07                       ` GFS Mark Fasheh
2005-08-11  4:41                         ` GFS Pekka J Enberg
2005-08-10  5:59       ` GFS David Teigland
2005-08-10  6:06         ` GFS Pekka J Enberg
2005-08-03  6:44 ` [PATCH 00/14] GFS Pekka Enberg
2005-08-08  9:57   ` David Teigland
2005-08-08 10:00     ` GFS Pekka J Enberg
2005-08-08 10:05     ` [PATCH 00/14] GFS Arjan van de Ven
2005-08-08 10:20       ` Jörn Engel
2005-08-08 10:18     ` GFS Pekka J Enberg
2005-08-08 10:56       ` GFS David Teigland
2005-08-08 10:57         ` GFS Pekka J Enberg
2005-08-08 11:39           ` GFS David Teigland
2005-08-08 10:34     ` GFS Pekka J Enberg
2005-08-09 14:55     ` GFS Pekka J Enberg
2005-08-10  7:40     ` GFS Pekka J Enberg
2005-08-10  7:43       ` GFS Christoph Hellwig
2005-08-09 15:20 ` [PATCH 00/14] GFS Al Viro
2005-08-10  7:03   ` Christoph Hellwig
2005-08-10 10:30     ` Lars Marowsky-Bree
2005-08-10 10:32       ` Christoph Hellwig
2005-08-10 10:34         ` Lars Marowsky-Bree
2005-08-10 10:54           ` Christoph Hellwig
2005-08-10 11:02             ` Lars Marowsky-Bree
2005-08-10 11:05               ` Christoph Hellwig
2005-08-10 11:09                 ` Lars Marowsky-Bree
2005-08-10 11:11                   ` Christoph Hellwig
2005-08-10 13:26                     ` [Linux-cluster] " AJ Lewis
2005-08-10 15:43                       ` Kyle Moffett
2005-08-11  8:17 ` GFS - updated patches David Teigland
2005-08-11  8:21   ` [Linux-cluster] " Michael
2005-08-11  8:46     ` David Teigland
2005-08-11  8:49       ` Michael
2005-08-11  8:32   ` Arjan van de Ven
2005-08-11  8:50     ` David Teigland
2005-08-11  8:50       ` Arjan van de Ven
2005-08-11  9:16         ` David Teigland
2005-08-11 10:04           ` Pekka Enberg
2005-08-11  9:54   ` [Linux-cluster] " Michael
2005-08-11 10:00     ` Pekka Enberg
     [not found] <20050802071828.GA11217@redhat.com.suse.lists.linux.kernel>
2005-08-03 14:33 ` [PATCH 00/14] GFS Andi Kleen
2005-08-07 11:52   ` Alan Cox

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=20050805071415.GC14880@redhat.com \
    --to=teigland@redhat.com \
    --cc=akpm@osdl.org \
    --cc=arjan@infradead.org \
    --cc=linux-cluster@redhat.com \
    --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