On Wed 09-01-19 21:01:01, Kanchan Joshi wrote:
> For NAND based SSDs, mixing of data with different life-time reduces
> efficiency of internal garbage-collection. During FS operations, series
> of journal updates will follow/precede series of data/meta updates, causing
> intermixing inside SSD. By passing a write-hint with journal, its write
> can be isolated from other data/meta writes, leading to endurance/performance
> benefit on SSD.
>
> This patch introduces "j_writehint" member in JBD2 journal, using which
> Ext4 specifies write-hint (as SHORT) for journal.
>
> Signed-off-by: Kanchan Joshi <[email protected]>
Thanks for the patch. It looks mostly good, just one nit below.
> diff --git a/fs/ext4/super.c b/fs/ext4/super.c
> index d6c142d..3af4049 100644
> --- a/fs/ext4/super.c
> +++ b/fs/ext4/super.c
> @@ -4289,6 +4289,8 @@ static int ext4_fill_super(struct super_block *sb, void
> *data, int silent)
>
> set_task_ioprio(sbi->s_journal->j_task, journal_ioprio);
>
> + sbi->s_journal->j_writehint = KERN_WRITE_LIFE_SHORT;
> +
> sbi->s_journal->j_commit_callback = ext4_journal_commit_callback;
So I'd rather have defines like:
#define EXT4_WRITE_HINT_JOURNAL KERN_WRITE_HINT_MIN
like I suggested in another email and then later we could add stuff like
#define EXT4_WRITE_HINT_BITMAP (KERN_WRITE_HINT_MIN + 1)
etc.
Honza
--
Jan Kara <[email protected]>
SUSE Labs, CR