All of lore.kernel.org
 help / color / mirror / Atom feed
From: Minchan Kim <minchan@kernel.org>
To: kbuild test robot <lkp@intel.com>
Cc: Jens Axboe <axboe@kernel.dk>,
	jack@suse.cz, linux-nvdimm@lists.01.org,
	Dave Chinner <david@fromorbit.com>,
	linux-kernel@vger.kernel.org,
	Matthew Wilcox <willy@infradead.org>,
	Christoph Hellwig <hch@lst.de>,
	linux-mm@kvack.org, kernel-team <kernel-team@lge.com>,
	kbuild-all@01.org, seungho1.park@lge.com,
	Andrew Morton <akpm@linux-foundation.org>,
	"karam . lee" <karam.lee@lge.com>
Subject: Re: [PATCH v2 5/7] mm:swap: use on-stack-bio for BDI_CAP_SYNCHRONOUS device
Date: Mon, 14 Aug 2017 17:41:11 +0900	[thread overview]
Message-ID: <20170814084111.GE26913@bbox> (raw)
In-Reply-To: <201708121619.CYNstSAy%fengguang.wu@intel.com>

On Sat, Aug 12, 2017 at 04:46:33PM +0800, kbuild test robot wrote:
> Hi Minchan,
> 
> [auto build test ERROR on mmotm/master]
> [also build test ERROR on next-20170811]
> [cannot apply to linus/master v4.13-rc4]
> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
> 
> url:    https://github.com/0day-ci/linux/commits/Minchan-Kim/Replace-rw_page-with-on-stack-bio/20170812-152541
> base:   git://git.cmpxchg.org/linux-mmotm.git master
> config: sparc64-allmodconfig (attached as .config)
> compiler: sparc64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
> reproduce:
>         wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         # save the attached .config to linux build tree
>         make.cross ARCH=sparc64 
> 
> All errors (new ones prefixed by >>):
> 
>    mm/page_io.c: In function '__swap_writepage':
> >> mm/page_io.c:345:11: error: passing argument 1 of 'bio_get' from incompatible pointer type [-Werror=incompatible-pointer-types]
>       bio_get(&bio);
>               ^
>    In file included from include/linux/writeback.h:205:0,
>                     from include/linux/memcontrol.h:31,
>                     from include/linux/swap.h:8,
>                     from mm/page_io.c:17:
>    include/linux/bio.h:252:20: note: expected 'struct bio *' but argument is of type 'struct bio **'
>     static inline void bio_get(struct bio *bio)
>                        ^~~~~~~
>    cc1: some warnings being treated as errors
> 
> vim +/bio_get +345 mm/page_io.c
> 
>    275	
>    276	int __swap_writepage(struct page *page, struct writeback_control *wbc)
>    277	{
>    278		int ret;
>    279		struct swap_info_struct *sis = page_swap_info(page);
>    280		struct bio *bio;
>    281		/* on-stack-bio */
>    282		struct bio sbio;
>    283		struct bio_vec sbvec;
>    284	
>    285		VM_BUG_ON_PAGE(!PageSwapCache(page), page);
>    286		if (sis->flags & SWP_FILE) {
>    287			struct kiocb kiocb;
>    288			struct file *swap_file = sis->swap_file;
>    289			struct address_space *mapping = swap_file->f_mapping;
>    290			struct bio_vec bv = {
>    291				.bv_page = page,
>    292				.bv_len  = PAGE_SIZE,
>    293				.bv_offset = 0
>    294			};
>    295			struct iov_iter from;
>    296	
>    297			iov_iter_bvec(&from, ITER_BVEC | WRITE, &bv, 1, PAGE_SIZE);
>    298			init_sync_kiocb(&kiocb, swap_file);
>    299			kiocb.ki_pos = page_file_offset(page);
>    300	
>    301			set_page_writeback(page);
>    302			unlock_page(page);
>    303			ret = mapping->a_ops->direct_IO(&kiocb, &from);
>    304			if (ret == PAGE_SIZE) {
>    305				count_vm_event(PSWPOUT);
>    306				ret = 0;
>    307			} else {
>    308				/*
>    309				 * In the case of swap-over-nfs, this can be a
>    310				 * temporary failure if the system has limited
>    311				 * memory for allocating transmit buffers.
>    312				 * Mark the page dirty and avoid
>    313				 * rotate_reclaimable_page but rate-limit the
>    314				 * messages but do not flag PageError like
>    315				 * the normal direct-to-bio case as it could
>    316				 * be temporary.
>    317				 */
>    318				set_page_dirty(page);
>    319				ClearPageReclaim(page);
>    320				pr_err_ratelimited("Write error on dio swapfile (%llu)\n",
>    321						   page_file_offset(page));
>    322			}
>    323			end_page_writeback(page);
>    324			return ret;
>    325		}
>    326	
>    327		ret = bdev_write_page(sis->bdev, swap_page_sector(page), page, wbc);
>    328		if (!ret) {
>    329			count_swpout_vm_event(page);
>    330			return 0;
>    331		}
>    332	
>    333		ret = 0;
>    334		if (!(sis->flags & SWP_SYNC_IO)) {
>    335	
>    336			bio = get_swap_bio(GFP_NOIO, page, end_swap_bio_write);
>    337			if (bio == NULL) {
>    338				set_page_dirty(page);
>    339				unlock_page(page);
>    340				ret = -ENOMEM;
>    341				goto out;
>    342			}
>    343		} else {
>    344			bio = &sbio;
>  > 345			bio_get(&bio);

Hi kbuild,

I will respin with fixing it.
Thanks for the catching up!



_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

WARNING: multiple messages have this Message-ID (diff)
From: Minchan Kim <minchan@kernel.org>
To: kbuild test robot <lkp@intel.com>
Cc: kbuild-all@01.org, Andrew Morton <akpm@linux-foundation.org>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	Ross Zwisler <ross.zwisler@linux.intel.com>,
	"karam . lee" <karam.lee@lge.com>,
	seungho1.park@lge.com, Matthew Wilcox <willy@infradead.org>,
	Christoph Hellwig <hch@lst.de>,
	Dan Williams <dan.j.williams@intel.com>,
	Dave Chinner <david@fromorbit.com>,
	jack@suse.cz, Jens Axboe <axboe@kernel.dk>,
	Vishal Verma <vishal.l.verma@intel.com>,
	linux-nvdimm@lists.01.org, kernel-team <kernel-team@lge.com>
Subject: Re: [PATCH v2 5/7] mm:swap: use on-stack-bio for BDI_CAP_SYNCHRONOUS device
Date: Mon, 14 Aug 2017 17:41:11 +0900	[thread overview]
Message-ID: <20170814084111.GE26913@bbox> (raw)
In-Reply-To: <201708121619.CYNstSAy%fengguang.wu@intel.com>

On Sat, Aug 12, 2017 at 04:46:33PM +0800, kbuild test robot wrote:
> Hi Minchan,
> 
> [auto build test ERROR on mmotm/master]
> [also build test ERROR on next-20170811]
> [cannot apply to linus/master v4.13-rc4]
> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
> 
> url:    https://github.com/0day-ci/linux/commits/Minchan-Kim/Replace-rw_page-with-on-stack-bio/20170812-152541
> base:   git://git.cmpxchg.org/linux-mmotm.git master
> config: sparc64-allmodconfig (attached as .config)
> compiler: sparc64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
> reproduce:
>         wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         # save the attached .config to linux build tree
>         make.cross ARCH=sparc64 
> 
> All errors (new ones prefixed by >>):
> 
>    mm/page_io.c: In function '__swap_writepage':
> >> mm/page_io.c:345:11: error: passing argument 1 of 'bio_get' from incompatible pointer type [-Werror=incompatible-pointer-types]
>       bio_get(&bio);
>               ^
>    In file included from include/linux/writeback.h:205:0,
>                     from include/linux/memcontrol.h:31,
>                     from include/linux/swap.h:8,
>                     from mm/page_io.c:17:
>    include/linux/bio.h:252:20: note: expected 'struct bio *' but argument is of type 'struct bio **'
>     static inline void bio_get(struct bio *bio)
>                        ^~~~~~~
>    cc1: some warnings being treated as errors
> 
> vim +/bio_get +345 mm/page_io.c
> 
>    275	
>    276	int __swap_writepage(struct page *page, struct writeback_control *wbc)
>    277	{
>    278		int ret;
>    279		struct swap_info_struct *sis = page_swap_info(page);
>    280		struct bio *bio;
>    281		/* on-stack-bio */
>    282		struct bio sbio;
>    283		struct bio_vec sbvec;
>    284	
>    285		VM_BUG_ON_PAGE(!PageSwapCache(page), page);
>    286		if (sis->flags & SWP_FILE) {
>    287			struct kiocb kiocb;
>    288			struct file *swap_file = sis->swap_file;
>    289			struct address_space *mapping = swap_file->f_mapping;
>    290			struct bio_vec bv = {
>    291				.bv_page = page,
>    292				.bv_len  = PAGE_SIZE,
>    293				.bv_offset = 0
>    294			};
>    295			struct iov_iter from;
>    296	
>    297			iov_iter_bvec(&from, ITER_BVEC | WRITE, &bv, 1, PAGE_SIZE);
>    298			init_sync_kiocb(&kiocb, swap_file);
>    299			kiocb.ki_pos = page_file_offset(page);
>    300	
>    301			set_page_writeback(page);
>    302			unlock_page(page);
>    303			ret = mapping->a_ops->direct_IO(&kiocb, &from);
>    304			if (ret == PAGE_SIZE) {
>    305				count_vm_event(PSWPOUT);
>    306				ret = 0;
>    307			} else {
>    308				/*
>    309				 * In the case of swap-over-nfs, this can be a
>    310				 * temporary failure if the system has limited
>    311				 * memory for allocating transmit buffers.
>    312				 * Mark the page dirty and avoid
>    313				 * rotate_reclaimable_page but rate-limit the
>    314				 * messages but do not flag PageError like
>    315				 * the normal direct-to-bio case as it could
>    316				 * be temporary.
>    317				 */
>    318				set_page_dirty(page);
>    319				ClearPageReclaim(page);
>    320				pr_err_ratelimited("Write error on dio swapfile (%llu)\n",
>    321						   page_file_offset(page));
>    322			}
>    323			end_page_writeback(page);
>    324			return ret;
>    325		}
>    326	
>    327		ret = bdev_write_page(sis->bdev, swap_page_sector(page), page, wbc);
>    328		if (!ret) {
>    329			count_swpout_vm_event(page);
>    330			return 0;
>    331		}
>    332	
>    333		ret = 0;
>    334		if (!(sis->flags & SWP_SYNC_IO)) {
>    335	
>    336			bio = get_swap_bio(GFP_NOIO, page, end_swap_bio_write);
>    337			if (bio == NULL) {
>    338				set_page_dirty(page);
>    339				unlock_page(page);
>    340				ret = -ENOMEM;
>    341				goto out;
>    342			}
>    343		} else {
>    344			bio = &sbio;
>  > 345			bio_get(&bio);

Hi kbuild,

I will respin with fixing it.
Thanks for the catching up!



--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

WARNING: multiple messages have this Message-ID (diff)
From: Minchan Kim <minchan@kernel.org>
To: kbuild test robot <lkp@intel.com>
Cc: kbuild-all@01.org, Andrew Morton <akpm@linux-foundation.org>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	Ross Zwisler <ross.zwisler@linux.intel.com>,
	"karam . lee" <karam.lee@lge.com>,
	seungho1.park@lge.com, Matthew Wilcox <willy@infradead.org>,
	Christoph Hellwig <hch@lst.de>,
	Dan Williams <dan.j.williams@intel.com>,
	Dave Chinner <david@fromorbit.com>,
	jack@suse.cz, Jens Axboe <axboe@kernel.dk>,
	Vishal Verma <vishal.l.verma@intel.com>,
	linux-nvdimm@lists.01.org, kernel-team <kernel-team@lge.com>
Subject: Re: [PATCH v2 5/7] mm:swap: use on-stack-bio for BDI_CAP_SYNCHRONOUS device
Date: Mon, 14 Aug 2017 17:41:11 +0900	[thread overview]
Message-ID: <20170814084111.GE26913@bbox> (raw)
In-Reply-To: <201708121619.CYNstSAy%fengguang.wu@intel.com>

On Sat, Aug 12, 2017 at 04:46:33PM +0800, kbuild test robot wrote:
> Hi Minchan,
> 
> [auto build test ERROR on mmotm/master]
> [also build test ERROR on next-20170811]
> [cannot apply to linus/master v4.13-rc4]
> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
> 
> url:    https://github.com/0day-ci/linux/commits/Minchan-Kim/Replace-rw_page-with-on-stack-bio/20170812-152541
> base:   git://git.cmpxchg.org/linux-mmotm.git master
> config: sparc64-allmodconfig (attached as .config)
> compiler: sparc64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
> reproduce:
>         wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         # save the attached .config to linux build tree
>         make.cross ARCH=sparc64 
> 
> All errors (new ones prefixed by >>):
> 
>    mm/page_io.c: In function '__swap_writepage':
> >> mm/page_io.c:345:11: error: passing argument 1 of 'bio_get' from incompatible pointer type [-Werror=incompatible-pointer-types]
>       bio_get(&bio);
>               ^
>    In file included from include/linux/writeback.h:205:0,
>                     from include/linux/memcontrol.h:31,
>                     from include/linux/swap.h:8,
>                     from mm/page_io.c:17:
>    include/linux/bio.h:252:20: note: expected 'struct bio *' but argument is of type 'struct bio **'
>     static inline void bio_get(struct bio *bio)
>                        ^~~~~~~
>    cc1: some warnings being treated as errors
> 
> vim +/bio_get +345 mm/page_io.c
> 
>    275	
>    276	int __swap_writepage(struct page *page, struct writeback_control *wbc)
>    277	{
>    278		int ret;
>    279		struct swap_info_struct *sis = page_swap_info(page);
>    280		struct bio *bio;
>    281		/* on-stack-bio */
>    282		struct bio sbio;
>    283		struct bio_vec sbvec;
>    284	
>    285		VM_BUG_ON_PAGE(!PageSwapCache(page), page);
>    286		if (sis->flags & SWP_FILE) {
>    287			struct kiocb kiocb;
>    288			struct file *swap_file = sis->swap_file;
>    289			struct address_space *mapping = swap_file->f_mapping;
>    290			struct bio_vec bv = {
>    291				.bv_page = page,
>    292				.bv_len  = PAGE_SIZE,
>    293				.bv_offset = 0
>    294			};
>    295			struct iov_iter from;
>    296	
>    297			iov_iter_bvec(&from, ITER_BVEC | WRITE, &bv, 1, PAGE_SIZE);
>    298			init_sync_kiocb(&kiocb, swap_file);
>    299			kiocb.ki_pos = page_file_offset(page);
>    300	
>    301			set_page_writeback(page);
>    302			unlock_page(page);
>    303			ret = mapping->a_ops->direct_IO(&kiocb, &from);
>    304			if (ret == PAGE_SIZE) {
>    305				count_vm_event(PSWPOUT);
>    306				ret = 0;
>    307			} else {
>    308				/*
>    309				 * In the case of swap-over-nfs, this can be a
>    310				 * temporary failure if the system has limited
>    311				 * memory for allocating transmit buffers.
>    312				 * Mark the page dirty and avoid
>    313				 * rotate_reclaimable_page but rate-limit the
>    314				 * messages but do not flag PageError like
>    315				 * the normal direct-to-bio case as it could
>    316				 * be temporary.
>    317				 */
>    318				set_page_dirty(page);
>    319				ClearPageReclaim(page);
>    320				pr_err_ratelimited("Write error on dio swapfile (%llu)\n",
>    321						   page_file_offset(page));
>    322			}
>    323			end_page_writeback(page);
>    324			return ret;
>    325		}
>    326	
>    327		ret = bdev_write_page(sis->bdev, swap_page_sector(page), page, wbc);
>    328		if (!ret) {
>    329			count_swpout_vm_event(page);
>    330			return 0;
>    331		}
>    332	
>    333		ret = 0;
>    334		if (!(sis->flags & SWP_SYNC_IO)) {
>    335	
>    336			bio = get_swap_bio(GFP_NOIO, page, end_swap_bio_write);
>    337			if (bio == NULL) {
>    338				set_page_dirty(page);
>    339				unlock_page(page);
>    340				ret = -ENOMEM;
>    341				goto out;
>    342			}
>    343		} else {
>    344			bio = &sbio;
>  > 345			bio_get(&bio);

Hi kbuild,

I will respin with fixing it.
Thanks for the catching up!

  reply	other threads:[~2017-08-14  8:38 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-11  5:17 [PATCH v2 0/7] Replace rw_page with on-stack bio Minchan Kim
2017-08-11  5:17 ` Minchan Kim
2017-08-11  5:17 ` Minchan Kim
2017-08-11  5:17 ` [PATCH v2 1/7] zram: set BDI_CAP_STABLE_WRITES once Minchan Kim
2017-08-11  5:17   ` Minchan Kim
2017-08-11  5:17   ` Minchan Kim
2017-08-14  1:39   ` Sergey Senozhatsky
2017-08-14  1:39     ` Sergey Senozhatsky
2017-08-14  1:39     ` Sergey Senozhatsky
2017-08-11  5:17 ` [PATCH v2 2/7] bdi: introduce BDI_CAP_SYNCHRONOUS_IO Minchan Kim
2017-08-11  5:17   ` Minchan Kim
2017-08-11  5:17   ` Minchan Kim
2017-08-11  5:17 ` [PATCH v2 3/7] fs: use on-stack-bio if backing device has BDI_CAP_SYNCHRONOUS capability Minchan Kim
2017-08-11  5:17   ` Minchan Kim
2017-08-11  5:17   ` Minchan Kim
2017-08-11  5:17 ` [PATCH v2 4/7] mm:swap: remove end_swap_bio_write argument Minchan Kim
2017-08-11  5:17   ` Minchan Kim
2017-08-11  5:17   ` Minchan Kim
2017-08-11  5:17 ` [PATCH v2 5/7] mm:swap: use on-stack-bio for BDI_CAP_SYNCHRONOUS device Minchan Kim
2017-08-11  5:17   ` Minchan Kim
2017-08-11  5:17   ` Minchan Kim
2017-08-12  8:21   ` kbuild test robot
2017-08-12  8:21     ` kbuild test robot
2017-08-12  8:21     ` kbuild test robot
2017-08-12  8:46   ` kbuild test robot
2017-08-12  8:46     ` kbuild test robot
2017-08-12  8:46     ` kbuild test robot
2017-08-14  8:41     ` Minchan Kim [this message]
2017-08-14  8:41       ` Minchan Kim
2017-08-14  8:41       ` Minchan Kim
2017-08-11  5:17 ` [PATCH v2 6/7] zram: remove zram_rw_page Minchan Kim
2017-08-11  5:17   ` Minchan Kim
2017-08-11  5:17   ` Minchan Kim
2017-08-11  5:17 ` [PATCH v2 7/7] fs: remove rw_page Minchan Kim
2017-08-11  5:17   ` Minchan Kim
2017-08-11  5:17   ` Minchan Kim

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=20170814084111.GE26913@bbox \
    --to=minchan@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=axboe@kernel.dk \
    --cc=david@fromorbit.com \
    --cc=hch@lst.de \
    --cc=jack@suse.cz \
    --cc=karam.lee@lge.com \
    --cc=kbuild-all@01.org \
    --cc=kernel-team@lge.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-nvdimm@lists.01.org \
    --cc=lkp@intel.com \
    --cc=seungho1.park@lge.com \
    --cc=willy@infradead.org \
    /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.