Re: [RFC] [PATCHv2 0/7] reiser4: batch discard support (FITRIM ioctl): initial implementation.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sunday 17 August 2014 at 22:25:07, Edward Shishkin wrote:	
> Great, thanks!
> I'll take a look at leisure.
> What is the status of this code? Did you test it?

The v1 does not compile and is bogus.
The v2 works for me; tested 1) in idle and 2) simultaneously with
    while :; do rm -rf *; git reset --hard; done
on the Linux source tree on the same partition, ten times in a row.
No corruptions so far, however, there has been only one testing session.

I think I'll schedule a hourly fstrim to all partitions involved.

-- 
Ivan Shapovalov / intelfx /

> 
> Edward.
> 
> 
> On 08/17/2014 06:26 PM, Ivan Shapovalov wrote:
> > This patch series implements FITRIM ioctl support in reiser4.
> >
> > The FITRIM ioctl is supposed to be applied to any directory inside the target
> > filesystem. At least, this can be deduced from `fstrim` utility behavior on
> > mainstream filesystems (e. g. ext2/3/4).
> >
> > The idea of implementation is per Edward's advices: FITRIM handler iteratively
> > grabs a portion of disk space, sequentially allocates extents within grabbed
> > space and commits the resulting atom. This way we avoid starving concurrent
> > processes of the disk space. This process is repeated until the partition has
> > been fully scanned and processed.
> >
> > Points I'm really uncertain of:
> > - grabbing fixed amount of space (new BA_SOME_SPACE flag, grabs 25% of disk space)
> > - creation of empty atoms (reiser4_create_atom())
> > - handling of empty atoms in commit_current_atom()
> >
> > v2: - fix PATCH 5/7 "reiser4: txnmgr: call reiser4_post_write_back_hook() for empty atoms."
> >        * fix a typo
> >        * release atom spinlock before calling reiser4_post_write_back_hook()
> >
> > Ivan Shapovalov (7):
> >    reiser4: block_alloc: add BA_SOME_SPACE flag for grabbing a fixed amount of space.
> >    reiser4: block_alloc: add a "forward" parameter to reiser4_blocknr_hint to allocate blocks only in forward direction.
> >    reiser4: txnmgr: free allocated but unneeded atom in atom_begin_and_assign_to_txnh().
> >    reiser4: txnmgr: add reiser4_create_atom() which creates an empty atom without capturing any nodes.
> >    reiser4: txnmgr: call reiser4_post_write_back_hook() for empty atoms.
> >    reiser4: batch discard support: add a dummy FITRIM ioctl handler for directories.
> >    reiser4: batch discard support: actually implement the FITRIM ioctl handler.
> >
> >   fs/reiser4/block_alloc.c         |   6 ++
> >   fs/reiser4/block_alloc.h         |  10 ++-
> >   fs/reiser4/plugin/dir/dir.h      |   2 +
> >   fs/reiser4/plugin/file_ops.c     |  62 ++++++++++++++++++
> >   fs/reiser4/plugin/object.c       |   6 +-
> >   fs/reiser4/plugin/space/bitmap.c |   3 +-
> >   fs/reiser4/super_ops.c           | 131 +++++++++++++++++++++++++++++++++++++++
> >   fs/reiser4/txnmgr.c              |  57 +++++++++++------
> >   fs/reiser4/txnmgr.h              |   2 +
> >   9 files changed, 255 insertions(+), 24 deletions(-)
> >
> 

Attachment: signature.asc
Description: This is a digitally signed message part.


[Index of Archives]     [Linux File System Development]     [Linux BTRFS]     [Linux NFS]     [Linux Filesystems]     [Ext4 Filesystem]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Resources]

  Powered by Linux