All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: "Matthew Wilcox (Oracle)" <willy@infradead.org>,
	akpm@linux-foundation.org, hughd@google.com,
	markhemm@googlemail.com, rientjes@google.com, surenb@google.com,
	shakeelb@google.com, mhocko@suse.com, vbabka@suse.cz,
	quic_pkondeti@quicinc.com
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	Charan Teja Kalla <quic_charante@quicinc.com>
Subject: Re: [PATCH 2/2] shmem: Add shmem_read_folio() and shmem_read_folio_gfp()
Date: Tue, 7 Feb 2023 05:19:28 +0800	[thread overview]
Message-ID: <202302070525.Ho0cFITJ-lkp@intel.com> (raw)
In-Reply-To: <20230206162520.4029022-2-willy@infradead.org>

Hi Matthew,

I love your patch! Perhaps something to improve:

[auto build test WARNING on akpm-mm/mm-everything]
[also build test WARNING on linus/master v6.2-rc7]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Matthew-Wilcox-Oracle/shmem-Add-shmem_read_folio-and-shmem_read_folio_gfp/20230207-002746
base:   https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
patch link:    https://lore.kernel.org/r/20230206162520.4029022-2-willy%40infradead.org
patch subject: [PATCH 2/2] shmem: Add shmem_read_folio() and shmem_read_folio_gfp()
config: riscv-randconfig-r023-20230205 (https://download.01.org/0day-ci/archive/20230207/202302070525.Ho0cFITJ-lkp@intel.com/config)
compiler: clang version 16.0.0 (https://github.com/llvm/llvm-project 4196ca3278f78c6e19246e54ab0ecb364e37d66a)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install riscv cross compiling tool for clang build
        # apt-get install binutils-riscv64-linux-gnu
        # https://github.com/intel-lab-lkp/linux/commit/ceb56c1ceea709ec0b10ed07e327bb4ae566bba5
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Matthew-Wilcox-Oracle/shmem-Add-shmem_read_folio-and-shmem_read_folio_gfp/20230207-002746
        git checkout ceb56c1ceea709ec0b10ed07e327bb4ae566bba5
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=riscv olddefconfig
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   mm/shmem.c:4164:13: warning: no previous prototype for function 'shmem_init' [-Wmissing-prototypes]
   void __init shmem_init(void)
               ^
   mm/shmem.c:4164:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void __init shmem_init(void)
   ^
   static 
   mm/shmem.c:4172:5: warning: no previous prototype for function 'shmem_unuse' [-Wmissing-prototypes]
   int shmem_unuse(unsigned int type)
       ^
   mm/shmem.c:4172:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   int shmem_unuse(unsigned int type)
   ^
   static 
   mm/shmem.c:4177:5: warning: no previous prototype for function 'shmem_lock' [-Wmissing-prototypes]
   int shmem_lock(struct file *file, int lock, struct ucounts *ucounts)
       ^
   mm/shmem.c:4177:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   int shmem_lock(struct file *file, int lock, struct ucounts *ucounts)
   ^
   static 
   mm/shmem.c:4182:6: warning: no previous prototype for function 'shmem_unlock_mapping' [-Wmissing-prototypes]
   void shmem_unlock_mapping(struct address_space *mapping)
        ^
   mm/shmem.c:4182:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void shmem_unlock_mapping(struct address_space *mapping)
   ^
   static 
   mm/shmem.c:4187:15: warning: no previous prototype for function 'shmem_get_unmapped_area' [-Wmissing-prototypes]
   unsigned long shmem_get_unmapped_area(struct file *file,
                 ^
   mm/shmem.c:4187:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   unsigned long shmem_get_unmapped_area(struct file *file,
   ^
   static 
   mm/shmem.c:4195:6: warning: no previous prototype for function 'shmem_truncate_range' [-Wmissing-prototypes]
   void shmem_truncate_range(struct inode *inode, loff_t lstart, loff_t lend)
        ^
   mm/shmem.c:4195:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   void shmem_truncate_range(struct inode *inode, loff_t lstart, loff_t lend)
   ^
   static 
   mm/shmem.c:4255:14: warning: no previous prototype for function 'shmem_kernel_file_setup' [-Wmissing-prototypes]
   struct file *shmem_kernel_file_setup(const char *name, loff_t size, unsigned long flags)
                ^
   mm/shmem.c:4255:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   struct file *shmem_kernel_file_setup(const char *name, loff_t size, unsigned long flags)
   ^
   static 
   mm/shmem.c:4266:14: warning: no previous prototype for function 'shmem_file_setup' [-Wmissing-prototypes]
   struct file *shmem_file_setup(const char *name, loff_t size, unsigned long flags)
                ^
   mm/shmem.c:4266:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   struct file *shmem_file_setup(const char *name, loff_t size, unsigned long flags)
   ^
   static 
   mm/shmem.c:4279:14: warning: no previous prototype for function 'shmem_file_setup_with_mnt' [-Wmissing-prototypes]
   struct file *shmem_file_setup_with_mnt(struct vfsmount *mnt, const char *name,
                ^
   mm/shmem.c:4279:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   struct file *shmem_file_setup_with_mnt(struct vfsmount *mnt, const char *name,
   ^
   static 
   mm/shmem.c:4290:5: warning: no previous prototype for function 'shmem_zero_setup' [-Wmissing-prototypes]
   int shmem_zero_setup(struct vm_area_struct *vma)
       ^
   mm/shmem.c:4290:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   int shmem_zero_setup(struct vm_area_struct *vma)
   ^
   static 
>> mm/shmem.c:4328:15: warning: no previous prototype for function 'shmem_read_folio_gfp' [-Wmissing-prototypes]
   struct folio *shmem_read_folio_gfp(struct address_space *mapping,
                 ^
   mm/shmem.c:4328:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   struct folio *shmem_read_folio_gfp(struct address_space *mapping,
   ^
   static 
   mm/shmem.c:4353:14: warning: no previous prototype for function 'shmem_read_mapping_page_gfp' [-Wmissing-prototypes]
   struct page *shmem_read_mapping_page_gfp(struct address_space *mapping,
                ^
   mm/shmem.c:4353:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
   struct page *shmem_read_mapping_page_gfp(struct address_space *mapping,
   ^
   static 
   12 warnings generated.


vim +/shmem_read_folio_gfp +4328 mm/shmem.c

  4312	
  4313	/**
  4314	 * shmem_read_folio_gfp - read into page cache, using specified page allocation flags.
  4315	 * @mapping:	the folio's address_space
  4316	 * @index:	the folio index
  4317	 * @gfp:	the page allocator flags to use if allocating
  4318	 *
  4319	 * This behaves as a tmpfs "read_cache_page_gfp(mapping, index, gfp)",
  4320	 * with any new page allocations done using the specified allocation flags.
  4321	 * But read_cache_page_gfp() uses the ->read_folio() method: which does not
  4322	 * suit tmpfs, since it may have pages in swapcache, and needs to find those
  4323	 * for itself; although drivers/gpu/drm i915 and ttm rely upon this support.
  4324	 *
  4325	 * i915_gem_object_get_pages_gtt() mixes __GFP_NORETRY | __GFP_NOWARN in
  4326	 * with the mapping_gfp_mask(), to avoid OOMing the machine unnecessarily.
  4327	 */
> 4328	struct folio *shmem_read_folio_gfp(struct address_space *mapping,
  4329			pgoff_t index, gfp_t gfp)
  4330	{
  4331	#ifdef CONFIG_SHMEM
  4332		struct inode *inode = mapping->host;
  4333		struct folio *folio;
  4334		int error;
  4335	
  4336		BUG_ON(!shmem_mapping(mapping));
  4337		error = shmem_get_folio_gfp(inode, index, &folio, SGP_CACHE,
  4338					  gfp, NULL, NULL, NULL);
  4339		if (error)
  4340			return ERR_PTR(error);
  4341	
  4342		folio_unlock(folio);
  4343		return folio;
  4344	#else
  4345		/*
  4346		 * The tiny !SHMEM case uses ramfs without swap
  4347		 */
  4348		return mapping_read_folio_gfp(mapping, index, gfp);
  4349	#endif
  4350	}
  4351	EXPORT_SYMBOL_GPL(shmem_read_folio_gfp);
  4352	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests

      parent reply	other threads:[~2023-02-06 21:20 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-06 16:25 [PATCH 1/2] filemap: Add mapping_read_folio_gfp() Matthew Wilcox (Oracle)
2023-02-06 16:25 ` [PATCH 2/2] shmem: Add shmem_read_folio() and shmem_read_folio_gfp() Matthew Wilcox (Oracle)
2023-02-06 18:56   ` kernel test robot
2023-02-06 21:19   ` kernel test robot [this message]

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=202302070525.Ho0cFITJ-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=hughd@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=llvm@lists.linux.dev \
    --cc=markhemm@googlemail.com \
    --cc=mhocko@suse.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=quic_charante@quicinc.com \
    --cc=quic_pkondeti@quicinc.com \
    --cc=rientjes@google.com \
    --cc=shakeelb@google.com \
    --cc=surenb@google.com \
    --cc=vbabka@suse.cz \
    --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.