lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Fri, 18 Nov 2011 23:22:20 -0500
From:	Ted Ts'o <tytso@....edu>
To:	Robin Dong <hao.bigrat@...il.com>
Cc:	linux-ext4@...r.kernel.org, Robin Dong <sanbai@...bao.com>
Subject: Re: [PATCH 0/9 v2 bigalloc] ext4: change unit of extent's ee_block
 and ee_len from block to cluster for bigalloc

On Fri, Nov 18, 2011 at 06:42:55PM +0800, Robin Dong wrote:
> From: Robin Dong <sanbai@...bao.com>
> 
> This patch series change ee_block and ee_len (of extent) 's unit
> from "block" to "cluster", since it could reduce the space occupied
> by meta data.
> 
> This patch series should be used after Ted's bigalloc-patchs and it
> now can't support:
> 1. delay allocation
> 2. 1k/2k blocksize

It *can't* support delayed allocation or sub-4k block sizes?  That's
only with your modified bigalloc enabled, I presume, right?

If we are going to support this modified bigalloc, I think it only
makes sense to do it as new file system feature, so we can support
both extents which are denominated in blocks, as well as extents which
are denominated in clusters.

But it may be that we're better off biting the bullet and supporting
at 2nd extent format, which looks like this:

struct ext4_extent2 {
       __le64	   ee_block;	/* first logical block extent covers */
       __le64	   ee_start;	/* starting physical block */
       __le32	   ee_len;	/* number of blocks covered by extent */
       __le32	   ee_flags;    /* flags and future extension */
};

This is 24 bytes, which means we can only fit two extents in the inode
(12 bytes header, plus two 24 byte extents).  But it expands the size
of files we can support, as well as supporting larger volumes.

Yes, using units of clusters could support this as well, but the fact
that it is required that sparse blocks have to get zeroed out to the
nearest cluster binary means that it's only going to work for clusters
sizes of 128k at most, since the requirements that clusters get
zero'ed out when doing a partial write is going to get pretty onerous
much beyond that size.

						- Ted



--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ