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] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 26 Jun 2007 12:42:27 +1000
From:	Nick Piggin <nickpiggin@...oo.com.au>
To:	Chris Mason <chris.mason@...cle.com>
CC:	Nick Piggin <npiggin@...e.de>,
	Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
	Linux Memory Management List <linux-mm@...ck.org>,
	linux-fsdevel@...r.kernel.org
Subject: Re: [patch 1/3] add the fsblock layer

Chris Mason wrote:
> On Sun, Jun 24, 2007 at 03:46:13AM +0200, Nick Piggin wrote:
> 
>>Rewrite the buffer layer.
> 
> 
> Overall, I like the basic concepts, but it is hard to track the locking
> rules.  Could you please write them up?

Yeah I will do that.

Thanks for taking a look. One thing I am thinking about is to get
rid of the unmap_underlying_metadata calls from the generic code.
I found they were required for minix to prevent corruption, however
I don't know exactly what metadata is interfering here (maybe it
is indirect blocks or something?). Anyway, I think I will make it
a requirement that the filesystem has to already handle this before
returning a newly allocated block -- they can probably do it more
efficiently and we avoid the extra work on every block allocation.


> I like the way you split out the assoc_buffers from the main fsblock
> code, but the list setup is still something of a wart.  It also provides
> poor ordering of blocks for writeback.

Yeah, I didn't know how much effort to put in here because I don't
know whether modern filesystems are going to need to implement their
own management of this stuff or not.

I haven't actually instrumented this in something like ext2 to see
how much IO comes from the assoc buffers...


> I think it makes sense to replace the assoc_buffers list head with a
> radix tree sorted by block number.  mark_buffer_dirty_inode would up the
> reference count and put it into the radix, the various flushing routines
> would walk the radix etc.
> 
> If you wanted to be able to drop the reference count once the block was
> written you could have a back pointer to the appropriate inode.

I was actually thinking about a radix-tree :) One annoyance is that
unsigned long != sector_t :P rbtree would probably be OK.

-- 
SUSE Labs, Novell Inc.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists