• Hisashi Hifumi's avatar
    ocfs2: fdatasync should skip unimportant metadata writeout · e04cc15f
    Hisashi Hifumi authored
    In ocfs2, fdatasync and fsync are identical.
    I think fdatasync should skip committing transaction when
    inode->i_state is set just I_DIRTY_SYNC and this indicates
    only atime or/and mtime updates.
    Following patch improves fdatasync throughput.
    
    #sysbench --num-threads=16 --max-requests=300000 --test=fileio
    --file-block-size=4K --file-total-size=16G --file-test-mode=rndwr
    --file-fsync-mode=fdatasync run
    
    Results:
    -2.6.30-rc8
    Test execution summary:
        total time:                          107.1445s
        total number of events:              119559
        total time taken by event execution: 116.1050
        per-request statistics:
             min:                            0.0000s
             avg:                            0.0010s
             max:                            0.1220s
             approx.  95 percentile:         0.0016s
    
    Threads fairness:
        events (avg/stddev):           7472.4375/303.60
        execution time (avg/stddev):   7.2566/0.64
    
    -2.6.30-rc8-patched
    Test execution summary:
        total time:                          86.8529s
        total number of events:              300016
        total time taken by event execution: 24.3077
        per-request statistics:
             min:                            0.0000s
             avg:                            0.0001s
             max:                            0.0336s
             approx.  95 percentile:         0.0001s
    
    Threads fairness:
        events (avg/stddev):           18751.0000/718.75
        execution time (avg/stddev):   1.5192/0.05
    Signed-off-by: default avatarHisashi Hifumi <hifumi.hisashi@oss.ntt.co.jp>
    Acked-by: default avatarMark Fasheh <mfasheh@suse.com>
    Signed-off-by: default avatarJoel Becker <joel.becker@oracle.com>
    e04cc15f
file.c 53.2 KB