All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zhi Yong Wu <zwu.kernel@gmail.com>
To: Zheng Liu <gnehzuil.liu@gmail.com>
Cc: linux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org,
	cmm@us.ibm.com, wuzhy@linux.vnet.ibm.com,
	Zheng Liu <wenqing.lz@taobao.com>
Subject: Re: [PATCH] ext4: add hot tracking support
Date: Sun, 28 Oct 2012 21:45:49 +0800	[thread overview]
Message-ID: <CAEH94Li_7Ujk5+ddv12vwi=iWiFRr_mjautHkahjPnbWH6gQVQ@mail.gmail.com> (raw)
In-Reply-To: <1351416170-3735-1-git-send-email-wenqing.lz@taobao.com>

On Sun, Oct 28, 2012 at 5:22 PM, Zheng Liu <gnehzuil.liu@gmail.com> wrote:
> From: Zheng Liu <wenqing.lz@taobao.com>
>
> Define a new mount option to add VFS hot tracking support in order to use it in
> ext4.
>
> CC: Zhi Yong Wu <zwu.kernel@gmail.com>
> Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
> ---
> Hi Zhiyong,
>
> Here is a try to add hot tracking support in ext4.  I do some simple tests and
> it works well.
>
> Regards,
> Zheng
>
>  fs/ext4/ext4.h  |  3 +++
>  fs/ext4/super.c | 15 ++++++++++++++-
>  2 files changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
> index 3c20de1..f6cff1e 100644
> --- a/fs/ext4/ext4.h
> +++ b/fs/ext4/ext4.h
> @@ -1298,6 +1298,9 @@ struct ext4_sb_info {
>
>         /* Precomputed FS UUID checksum for seeding other checksums */
>         __u32 s_csum_seed;
> +
> +       /* Enable hot tracking or not */
> +       int s_hottrack_enable;
>  };
>
>  static inline struct ext4_sb_info *EXT4_SB(struct super_block *sb)
> diff --git a/fs/ext4/super.c b/fs/ext4/super.c
> index 80928f7..1506dc3 100644
> --- a/fs/ext4/super.c
> +++ b/fs/ext4/super.c
> @@ -43,6 +43,7 @@
>
>  #include <linux/kthread.h>
>  #include <linux/freezer.h>
> +#include <linux/hot_tracking.h>
>
>  #include "ext4.h"
>  #include "ext4_extents.h"
> @@ -864,6 +865,8 @@ static void ext4_put_super(struct super_block *sb)
>         ext4_ext_release(sb);
>         ext4_xattr_put_super(sb);
>
> +       if (sbi->s_hottrack_enable)
> +               hot_track_exit(sb);
>         if (!(sb->s_flags & MS_RDONLY)) {
>                 EXT4_CLEAR_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_RECOVER);
>                 es->s_state = cpu_to_le16(sbi->s_mount_state);
> @@ -1222,7 +1225,7 @@ enum {
>         Opt_inode_readahead_blks, Opt_journal_ioprio,
>         Opt_dioread_nolock, Opt_dioread_lock,
>         Opt_discard, Opt_nodiscard, Opt_init_itable, Opt_noinit_itable,
> -       Opt_max_dir_size_kb,
> +       Opt_max_dir_size_kb, Opt_hottrack,
>  };
>
>  static const match_table_t tokens = {
> @@ -1297,6 +1300,7 @@ static const match_table_t tokens = {
>         {Opt_init_itable, "init_itable"},
>         {Opt_noinit_itable, "noinit_itable"},
>         {Opt_max_dir_size_kb, "max_dir_size_kb=%u"},
> +       {Opt_hottrack, "hot_track"},
>         {Opt_removed, "check=none"},    /* mount option from ext2/3 */
>         {Opt_removed, "nocheck"},       /* mount option from ext2/3 */
>         {Opt_removed, "reservation"},   /* mount option from ext2/3 */
> @@ -1478,6 +1482,7 @@ static const struct mount_opts {
>         {Opt_jqfmt_vfsv0, QFMT_VFS_V0, MOPT_QFMT},
>         {Opt_jqfmt_vfsv1, QFMT_VFS_V1, MOPT_QFMT},
>         {Opt_max_dir_size_kb, 0, MOPT_GTE0},
> +       {Opt_hottrack, 0, MOPT_GTE0},
>         {Opt_err, 0, 0}
>  };
>
> @@ -1595,6 +1600,14 @@ static int handle_mount_opt(struct super_block *sb, char *opt, int token,
>                         sbi->s_li_wait_mult = arg;
>                 } else if (token == Opt_max_dir_size_kb) {
>                         sbi->s_max_dir_size_kb = arg;
> +               } else if (token == Opt_hottrack) {
> +                       if (hot_track_init(sb)) {
> +                               ext4_msg(sb, KERN_ERR,
> +                                        "EXT4-fs: hot tracking initialization"
> +                                        " failed");
> +                               return -1;
> +                       }
> +                       sbi->s_hottrack_enable = 1;
>                 } else if (token == Opt_stripe) {
>                         sbi->s_stripe = arg;
>                 } else if (m->flags & MOPT_DATAJ) {
HI, Zheng,

Do you not need to free stuff related to hot tracking when umount?

> --
> 1.7.12.rc2.18.g61b472e
>



-- 
Regards,

Zhi Yong Wu

  reply	other threads:[~2012-10-28 13:45 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-25 15:08 [RFC v4 00/15] vfs: hot data tracking zwu.kernel
2012-10-25 15:08 ` [RFC v4 01/15] vfs,hot_track: introduce private radix tree structures zwu.kernel
2012-10-25 15:08 ` [RFC v4 02/15] vfs,hot_track: initialize and free key data structures zwu.kernel
2012-10-25 15:08 ` [RFC v4 03/15] vfs,hot_track: add the function for collecting I/O frequency zwu.kernel
2012-10-28  7:55   ` Zheng Liu
2012-10-28 13:51     ` Zhi Yong Wu
2012-10-29  2:01       ` Dave Chinner
2012-10-29  2:14         ` Zhi Yong Wu
2012-10-25 15:08 ` [RFC v4 04/15] vfs,hot_track: add two map arrays zwu.kernel
2012-10-25 15:08 ` [RFC v4 05/15] vfs,hot_track: add hooks to enable hot data tracking zwu.kernel
2012-10-25 15:08 ` [RFC v4 06/15] vfs,hot_track: add the function for updating map arrays zwu.kernel
2012-10-25 15:08 ` [RFC v4 07/15] vfs,hot_track: add the aging function zwu.kernel
2012-10-25 15:09 ` [RFC v4 08/15] vfs,hot_track: add one work queue zwu.kernel
2012-10-25 15:09 ` [RFC v4 09/15] vfs,hot_track: register one memory shrinker zwu.kernel
2012-10-25 15:09 ` [RFC v4 10/15] vfs,hot_track: add one new ioctl interface zwu.kernel
2012-10-25 15:09 ` [RFC v4 11/15] vfs,hot_track: add debugfs support zwu.kernel
2012-10-25 15:09 ` [RFC v4 12/15] vfs,hot_track: turn some Micro into be tunable zwu.kernel
2012-10-25 15:09 ` [RFC v4 13/15] btrfs: add hot tracking support zwu.kernel
2012-10-25 15:09 ` [RFC v4 14/15] xfs: " zwu.kernel
2012-10-25 15:09 ` [RFC v4 15/15] vfs,hot_track: add the documentation zwu.kernel
2012-10-28  9:22 ` [PATCH] ext4: add hot tracking support Zheng Liu
2012-10-28 13:45   ` Zhi Yong Wu [this message]
2012-10-29  2:32     ` Zheng Liu
2012-10-29  2:24       ` Zhi Yong Wu
2012-11-07  8:37   ` Zhi Yong Wu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAEH94Li_7Ujk5+ddv12vwi=iWiFRr_mjautHkahjPnbWH6gQVQ@mail.gmail.com' \
    --to=zwu.kernel@gmail.com \
    --cc=cmm@us.ibm.com \
    --cc=gnehzuil.liu@gmail.com \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=wenqing.lz@taobao.com \
    --cc=wuzhy@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.