Re: [PATCH 11/16] zuf: Write/Read implementation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Boaz,

I love your patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[cannot apply to v5.3-rc4 next-20190813]
[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/Boaz-Harrosh/zuf-ZUFS-Zero-copy-User-mode-FileSystem/20190813-074124
config: x86_64-allyesconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-10) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

   fs/zuf/rw.c: In function '_zufs_IO.isra.18':
>> fs/zuf/rw.c:371:1: warning: the frame size of 8712 bytes is larger than 8192 bytes [-Wframe-larger-than=]
    }
    ^
   fs/zuf/rw.c: In function '_IO_gm_inner':
   fs/zuf/rw.c:569:1: warning: the frame size of 8720 bytes is larger than 8192 bytes [-Wframe-larger-than=]
    }
    ^

vim +371 fs/zuf/rw.c

   303	
   304	static ssize_t _zufs_IO(struct zuf_sb_info *sbi, struct inode *inode,
   305				struct iov_iter *ii, struct kiocb *kiocb,
   306				struct file_ra_state *ra, int operation, uint rw)
   307	{
   308		int err = 0;
   309		loff_t start_pos = kiocb->ki_pos;
   310		loff_t pos = start_pos;
   311	
   312		while (iov_iter_count(ii)) {
   313			struct zufs_ioc_IO io = {};
   314			struct page *pages[ZUS_API_MAP_MAX_PAGES];
   315			uint nump;
   316			ssize_t bytes;
   317			size_t pgoffset;
   318			uint i;
   319	
   320			if (ra) {
   321				io.ra.start	= ra->start;
   322				io.ra.ra_pages	= ra->ra_pages;
   323				io.ra.prev_pos	= ra->prev_pos;
   324			}
   325			io.rw = rw;
   326	
   327			bytes = _iov_iter_get_pages_any(ii, pages,
   328						ZUS_API_MAP_MAX_SIZE,
   329						ZUS_API_MAP_MAX_PAGES, &pgoffset);
   330			if (unlikely(bytes < 0)) {
   331				err = bytes;
   332				break;
   333			}
   334	
   335			nump = DIV_ROUND_UP(bytes + pgoffset, PAGE_SIZE);
   336	
   337			io.last_pos = pos;
   338			err = _IO_dispatch(sbi, &io, ZUII(inode), operation,
   339					   pgoffset, pages, nump, pos, bytes);
   340	
   341			bytes = io.last_pos - pos;
   342	
   343			zuf_dbg_rw("[%ld]	%s [0x%llx-0x%zx]\n",
   344				    inode->i_ino, _pr_rw(rw), pos, bytes);
   345	
   346			iov_iter_advance(ii, bytes);
   347			pos += bytes;
   348	
   349			if (ra) {
   350				ra->start	= io.ra.start;
   351				ra->ra_pages	= io.ra.ra_pages;
   352				ra->prev_pos	= io.ra.prev_pos;
   353			}
   354			if (io.wr_unmap.len)
   355				unmap_mapping_range(inode->i_mapping,
   356						    io.wr_unmap.offset,
   357						    io.wr_unmap.len, 0);
   358	
   359			for (i = 0; i < nump; ++i)
   360				put_page(pages[i]);
   361	
   362			if (unlikely(err))
   363				break;
   364		}
   365	
   366		if (unlikely(pos == start_pos))
   367			return err;
   368	
   369		kiocb->ki_pos = pos;
   370		return pos - start_pos;
 > 371	}
   372	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux