All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
From: Chao Yu <yuchao0@huawei.com>
To: Jaegeuk Kim <jaegeuk@kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-f2fs-devel@lists.sourceforge.net>
Cc: kernel test robot <oliver.sang@intel.com>
Subject: Re: [f2fs-dev] [PATCH v2] f2fs: avoid swapon failure by giving a warning first
Date: Wed, 12 May 2021 18:13:30 +0800	[thread overview]
Message-ID: <5c359041-27e8-12d2-5a85-559ab56b835e@huawei.com> (raw)
In-Reply-To: <YJtS3qEDFIzqc5Ki@google.com>

Jaegeuk,

On 2021/5/12 12:00, Jaegeuk Kim wrote:
> The final solution can be migrating blocks to form a section-aligned file
> internally. Meanwhile, let's ask users to do that when preparing the swap
> file initially like:
> 1) create()
> 2) ioctl(F2FS_IOC_SET_PIN_FILE)
> 3) fallocate()
> 
> Reported-by: kernel test robot <oliver.sang@intel.com>
> Fixes: 36e4d95891ed ("f2fs: check if swapfile is section-alligned")
> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>

Reviewed-by: Chao Yu <yuchao0@huawei.com>

I've not tested yet though, any comments on below patch?

[PATCH RFC] f2fs: support migrating swapfile in aligned write mode

Thanks,

> ---
> v2:
>   - fix to warn out once
>   - cover check_swap_activate_fast
> 
>   fs/f2fs/data.c | 29 +++++++++++++++++++++++------
>   1 file changed, 23 insertions(+), 6 deletions(-)
> 
> diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
> index 33e56ae84e35..41e260680b27 100644
> --- a/fs/f2fs/data.c
> +++ b/fs/f2fs/data.c
> @@ -3801,6 +3801,7 @@ static int f2fs_is_file_aligned(struct inode *inode)
>   	block_t pblock;
>   	unsigned long nr_pblocks;
>   	unsigned int blocks_per_sec = BLKS_PER_SEC(sbi);
> +	unsigned int not_aligned = 0;
>   	int ret = 0;
>   
>   	cur_lblock = 0;
> @@ -3833,13 +3834,20 @@ static int f2fs_is_file_aligned(struct inode *inode)
>   
>   		if ((pblock - main_blkaddr) & (blocks_per_sec - 1) ||
>   			nr_pblocks & (blocks_per_sec - 1)) {
> -			f2fs_err(sbi, "Swapfile does not align to section");
> -			ret = -EINVAL;
> -			goto out;
> +			if (f2fs_is_pinned_file(inode)) {
> +				f2fs_err(sbi, "Swapfile does not align to section");
> +				ret = -EINVAL;
> +				goto out;
> +			}
> +			not_aligned++;
>   		}
>   
>   		cur_lblock += nr_pblocks;
>   	}
> +	if (not_aligned)
> +		f2fs_warn(sbi, "Swapfile (%u) is not align to section: \n"
> +			"\t1) creat(), 2) ioctl(F2FS_IOC_SET_PIN_FILE), 3) fallocate()",
> +			not_aligned);
>   out:
>   	return ret;
>   }
> @@ -3858,6 +3866,7 @@ static int check_swap_activate_fast(struct swap_info_struct *sis,
>   	int nr_extents = 0;
>   	unsigned long nr_pblocks;
>   	unsigned int blocks_per_sec = BLKS_PER_SEC(sbi);
> +	unsigned int not_aligned = 0;
>   	int ret = 0;
>   
>   	/*
> @@ -3896,9 +3905,12 @@ static int check_swap_activate_fast(struct swap_info_struct *sis,
>   
>   		if ((pblock - SM_I(sbi)->main_blkaddr) & (blocks_per_sec - 1) ||
>   				nr_pblocks & (blocks_per_sec - 1)) {
> -			f2fs_err(sbi, "Swapfile does not align to section");
> -			ret = -EINVAL;
> -			goto out;
> +			if (f2fs_is_pinned_file(inode)) {
> +				f2fs_err(sbi, "Swapfile does not align to section");
> +				ret = -EINVAL;
> +				goto out;
> +			}
> +			not_aligned++;
>   		}
>   
>   		if (cur_lblock + nr_pblocks >= sis->max)
> @@ -3927,6 +3939,11 @@ static int check_swap_activate_fast(struct swap_info_struct *sis,
>   	sis->max = cur_lblock;
>   	sis->pages = cur_lblock - 1;
>   	sis->highest_bit = cur_lblock - 1;
> +
> +	if (not_aligned)
> +		f2fs_warn(sbi, "Swapfile (%u) is not align to section: \n"
> +			"\t1) creat(), 2) ioctl(F2FS_IOC_SET_PIN_FILE), 3) fallocate()",
> +			not_aligned);
>   out:
>   	return ret;
>   }
> 

WARNING: multiple messages have this Message-ID (diff)
From: Chao Yu <yuchao0@huawei.com>
To: Jaegeuk Kim <jaegeuk@kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-f2fs-devel@lists.sourceforge.net>
Cc: kernel test robot <oliver.sang@intel.com>
Subject: Re: [f2fs-dev] [PATCH v2] f2fs: avoid swapon failure by giving a warning first
Date: Wed, 12 May 2021 18:13:30 +0800	[thread overview]
Message-ID: <5c359041-27e8-12d2-5a85-559ab56b835e@huawei.com> (raw)
In-Reply-To: <YJtS3qEDFIzqc5Ki@google.com>

Jaegeuk,

On 2021/5/12 12:00, Jaegeuk Kim wrote:
> The final solution can be migrating blocks to form a section-aligned file
> internally. Meanwhile, let's ask users to do that when preparing the swap
> file initially like:
> 1) create()
> 2) ioctl(F2FS_IOC_SET_PIN_FILE)
> 3) fallocate()
> 
> Reported-by: kernel test robot <oliver.sang@intel.com>
> Fixes: 36e4d95891ed ("f2fs: check if swapfile is section-alligned")
> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>

Reviewed-by: Chao Yu <yuchao0@huawei.com>

I've not tested yet though, any comments on below patch?

[PATCH RFC] f2fs: support migrating swapfile in aligned write mode

Thanks,

> ---
> v2:
>   - fix to warn out once
>   - cover check_swap_activate_fast
> 
>   fs/f2fs/data.c | 29 +++++++++++++++++++++++------
>   1 file changed, 23 insertions(+), 6 deletions(-)
> 
> diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
> index 33e56ae84e35..41e260680b27 100644
> --- a/fs/f2fs/data.c
> +++ b/fs/f2fs/data.c
> @@ -3801,6 +3801,7 @@ static int f2fs_is_file_aligned(struct inode *inode)
>   	block_t pblock;
>   	unsigned long nr_pblocks;
>   	unsigned int blocks_per_sec = BLKS_PER_SEC(sbi);
> +	unsigned int not_aligned = 0;
>   	int ret = 0;
>   
>   	cur_lblock = 0;
> @@ -3833,13 +3834,20 @@ static int f2fs_is_file_aligned(struct inode *inode)
>   
>   		if ((pblock - main_blkaddr) & (blocks_per_sec - 1) ||
>   			nr_pblocks & (blocks_per_sec - 1)) {
> -			f2fs_err(sbi, "Swapfile does not align to section");
> -			ret = -EINVAL;
> -			goto out;
> +			if (f2fs_is_pinned_file(inode)) {
> +				f2fs_err(sbi, "Swapfile does not align to section");
> +				ret = -EINVAL;
> +				goto out;
> +			}
> +			not_aligned++;
>   		}
>   
>   		cur_lblock += nr_pblocks;
>   	}
> +	if (not_aligned)
> +		f2fs_warn(sbi, "Swapfile (%u) is not align to section: \n"
> +			"\t1) creat(), 2) ioctl(F2FS_IOC_SET_PIN_FILE), 3) fallocate()",
> +			not_aligned);
>   out:
>   	return ret;
>   }
> @@ -3858,6 +3866,7 @@ static int check_swap_activate_fast(struct swap_info_struct *sis,
>   	int nr_extents = 0;
>   	unsigned long nr_pblocks;
>   	unsigned int blocks_per_sec = BLKS_PER_SEC(sbi);
> +	unsigned int not_aligned = 0;
>   	int ret = 0;
>   
>   	/*
> @@ -3896,9 +3905,12 @@ static int check_swap_activate_fast(struct swap_info_struct *sis,
>   
>   		if ((pblock - SM_I(sbi)->main_blkaddr) & (blocks_per_sec - 1) ||
>   				nr_pblocks & (blocks_per_sec - 1)) {
> -			f2fs_err(sbi, "Swapfile does not align to section");
> -			ret = -EINVAL;
> -			goto out;
> +			if (f2fs_is_pinned_file(inode)) {
> +				f2fs_err(sbi, "Swapfile does not align to section");
> +				ret = -EINVAL;
> +				goto out;
> +			}
> +			not_aligned++;
>   		}
>   
>   		if (cur_lblock + nr_pblocks >= sis->max)
> @@ -3927,6 +3939,11 @@ static int check_swap_activate_fast(struct swap_info_struct *sis,
>   	sis->max = cur_lblock;
>   	sis->pages = cur_lblock - 1;
>   	sis->highest_bit = cur_lblock - 1;
> +
> +	if (not_aligned)
> +		f2fs_warn(sbi, "Swapfile (%u) is not align to section: \n"
> +			"\t1) creat(), 2) ioctl(F2FS_IOC_SET_PIN_FILE), 3) fallocate()",
> +			not_aligned);
>   out:
>   	return ret;
>   }
> 


_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

  reply	other threads:[~2021-05-12 10:13 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-11 21:43 [PATCH] f2fs: avoid swapon failure by giving a warning first Jaegeuk Kim
2021-05-11 21:43 ` [f2fs-dev] " Jaegeuk Kim
2021-05-12  1:28 ` Chao Yu
2021-05-12  1:28   ` Chao Yu
2021-05-12  3:10   ` Chao Yu
2021-05-12  3:10     ` Chao Yu
2021-05-12  4:00 ` [PATCH v2] " Jaegeuk Kim
2021-05-12  4:00   ` [f2fs-dev] " Jaegeuk Kim
2021-05-12 10:13   ` Chao Yu [this message]
2021-05-12 10:13     ` Chao Yu

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=5c359041-27e8-12d2-5a85-559ab56b835e@huawei.com \
    --to=yuchao0@huawei.com \
    --cc=jaegeuk@kernel.org \
    --cc=linux-f2fs-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oliver.sang@intel.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.