lkml.org 
[lkml]   [2012]   [Jul]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCHv4 3/5] ext4: remove unnecessary superblock dirtying
    From
    Date
    On Wed, 2012-07-04 at 15:11 +0200, Jan Kara wrote:
    > On Wed 04-07-12 15:21:52, Artem Bityutskiy wrote:
    > > From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
    > >
    > > This patch changes the '__ext4_handle_dirty_super()' function which is used
    > > by ext4 to update the superblock via the journal in the following cases:
    > >
    > > 1. When creating the first large file on a file system without
    > > EXT4_FEATURE_RO_COMPAT_LARGE_FILE feature.
    > > 2. When re-sizing the file-system.
    > > 3. When creating an xattr on a file-system without the
    > > EXT4_FEATURE_COMPAT_EXT_ATTR feature.
    > > 4. When adding or deleting an orphan (because we update the 's_last_orphan'
    > > superblock field).
    > >
    > > This function, however, falls back to just marking the superblock as dirty
    > > if the file-system has no journal. This means that we delay the actual
    > > superblock I/O submission by 5 seconds (roughly speaking). Namely, the
    > > 'sync_supers()' kernel thread will call 'ext4_write_super()' later, where
    > > we actually will submit the superblock down to the media.
    > >
    > > However:
    > > 1. For cases 1-3 it does not add any value to delay the I/O submission. These
    > > events are rare and we may just commit submit the superblock for
    > > asynchronous I/O right away.
    > > 2. For case 4 - similarly, not terribly frequent event in most of workloads.
    > > It should be good enough to just submit asynchronous superblock write-out.
    > Well, it happens for every inode being truncated / deleted to it can be
    > rather frequent. That's why I wanted to have now == 1 case everywhere -
    > i.e. just recompute the checksum and do mark_buffer_dirty(). I'd just
    > remove the 'now' test in this patch and then in patch 5 remove the now
    > argument from the function and callers as you did.

    It looked logical to me to use 'ext4_commit_super()' always and remove
    'now' and marking the buffer dirty directly. Just because I thought the
    speed difference should be nearly 0, and 'ext4_commit_super()' is doing
    some error checking. But you seem to suggest to do the opposite, and I
    do not understand why would that be better. So I dropped this change so
    far.

    I've sent v5 where I basically only changed the commit message in patch
    3 and dropped patch 5. In patch 3 I've explicitly indicated that we'll
    do more checksum calculations, but I think this is OK acceptable.

    Thanks!

    --
    Best Regards,
    Artem Bityutskiy
    [unhandled content-type:application/pgp-signature]
    \
     
     \ /
      Last update: 2012-07-10 14:41    [W:0.027 / U:30.312 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site