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