From: kernel test robot <lkp@intel.com>
To: Baolin Wang <baolin.wang@linux.alibaba.com>,
akpm@linux-foundation.org, hughd@google.com
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
willy@infradead.org, david@redhat.com,
wangkefeng.wang@huawei.com, ying.huang@intel.com,
21cnbao@gmail.com, ryan.roberts@arm.com, shy828301@gmail.com,
ziy@nvidia.com, ioworker0@gmail.com, da.gomez@samsung.com,
p.raghav@samsung.com, baolin.wang@linux.alibaba.com,
linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 4/6] mm: shmem: add mTHP support for anonymous shmem
Date: Thu, 30 May 2024 14:36:59 +0800 [thread overview]
Message-ID: <202405301430.0NRLTOWU-lkp@intel.com> (raw)
In-Reply-To: <ec35a23026dd016705d211e85163cabe07681516.1717033868.git.baolin.wang@linux.alibaba.com>
Hi Baolin,
kernel test robot noticed the following build warnings:
[auto build test WARNING on akpm-mm/mm-everything]
[also build test WARNING on next-20240529]
[cannot apply to linus/master v6.10-rc1]
[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/Baolin-Wang/mm-memory-extend-finish_fault-to-support-large-folio/20240530-100805
base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
patch link: https://lore.kernel.org/r/ec35a23026dd016705d211e85163cabe07681516.1717033868.git.baolin.wang%40linux.alibaba.com
patch subject: [PATCH v3 4/6] mm: shmem: add mTHP support for anonymous shmem
config: riscv-defconfig (https://download.01.org/0day-ci/archive/20240530/202405301430.0NRLTOWU-lkp@intel.com/config)
compiler: clang version 19.0.0git (https://github.com/llvm/llvm-project bafda89a0944d947fc4b3b5663185e07a397ac30)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240530/202405301430.0NRLTOWU-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202405301430.0NRLTOWU-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from mm/shmem.c:28:
In file included from include/linux/ramfs.h:5:
In file included from include/linux/fs_parser.h:11:
In file included from include/linux/fs_context.h:14:
In file included from include/linux/security.h:33:
In file included from include/linux/mm.h:2245:
include/linux/vmstat.h:514:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
514 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
>> mm/shmem.c:1748:14: warning: variable 'suitable_orders' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
1748 | } else if (orders & BIT(HPAGE_PMD_ORDER)) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mm/shmem.c:1766:25: note: uninitialized use occurs here
1766 | order = highest_order(suitable_orders);
| ^~~~~~~~~~~~~~~
mm/shmem.c:1748:10: note: remove the 'if' if its condition is always true
1748 | } else if (orders & BIT(HPAGE_PMD_ORDER)) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mm/shmem.c:1736:31: note: initialize the variable 'suitable_orders' to silence this warning
1736 | unsigned long suitable_orders;
| ^
| = 0
2 warnings generated.
vim +1748 mm/shmem.c
1728
1729 static struct folio *shmem_alloc_and_add_folio(struct vm_fault *vmf,
1730 gfp_t gfp, struct inode *inode, pgoff_t index,
1731 struct mm_struct *fault_mm, unsigned long orders)
1732 {
1733 struct address_space *mapping = inode->i_mapping;
1734 struct shmem_inode_info *info = SHMEM_I(inode);
1735 struct vm_area_struct *vma = vmf ? vmf->vma : NULL;
1736 unsigned long suitable_orders;
1737 struct folio *folio = NULL;
1738 long pages;
1739 int error, order;
1740
1741 if (!IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE))
1742 orders = 0;
1743
1744 if (orders > 0) {
1745 if (vma && vma_is_anon_shmem(vma)) {
1746 suitable_orders = anon_shmem_suitable_orders(inode, vmf,
1747 mapping, index, orders);
> 1748 } else if (orders & BIT(HPAGE_PMD_ORDER)) {
1749 pages = HPAGE_PMD_NR;
1750 suitable_orders = BIT(HPAGE_PMD_ORDER);
1751 index = round_down(index, HPAGE_PMD_NR);
1752
1753 /*
1754 * Check for conflict before waiting on a huge allocation.
1755 * Conflict might be that a huge page has just been allocated
1756 * and added to page cache by a racing thread, or that there
1757 * is already at least one small page in the huge extent.
1758 * Be careful to retry when appropriate, but not forever!
1759 * Elsewhere -EEXIST would be the right code, but not here.
1760 */
1761 if (xa_find(&mapping->i_pages, &index,
1762 index + HPAGE_PMD_NR - 1, XA_PRESENT))
1763 return ERR_PTR(-E2BIG);
1764 }
1765
1766 order = highest_order(suitable_orders);
1767 while (suitable_orders) {
1768 pages = 1UL << order;
1769 index = round_down(index, pages);
1770 folio = shmem_alloc_folio(gfp, order, info, index);
1771 if (folio)
1772 goto allocated;
1773
1774 if (pages == HPAGE_PMD_NR)
1775 count_vm_event(THP_FILE_FALLBACK);
1776 order = next_order(&suitable_orders, order);
1777 }
1778 } else {
1779 pages = 1;
1780 folio = shmem_alloc_folio(gfp, 0, info, index);
1781 }
1782 if (!folio)
1783 return ERR_PTR(-ENOMEM);
1784
1785 allocated:
1786 __folio_set_locked(folio);
1787 __folio_set_swapbacked(folio);
1788
1789 gfp &= GFP_RECLAIM_MASK;
1790 error = mem_cgroup_charge(folio, fault_mm, gfp);
1791 if (error) {
1792 if (xa_find(&mapping->i_pages, &index,
1793 index + pages - 1, XA_PRESENT)) {
1794 error = -EEXIST;
1795 } else if (pages == HPAGE_PMD_NR) {
1796 count_vm_event(THP_FILE_FALLBACK);
1797 count_vm_event(THP_FILE_FALLBACK_CHARGE);
1798 }
1799 goto unlock;
1800 }
1801
1802 error = shmem_add_to_page_cache(folio, mapping, index, NULL, gfp);
1803 if (error)
1804 goto unlock;
1805
1806 error = shmem_inode_acct_blocks(inode, pages);
1807 if (error) {
1808 struct shmem_sb_info *sbinfo = SHMEM_SB(inode->i_sb);
1809 long freed;
1810 /*
1811 * Try to reclaim some space by splitting a few
1812 * large folios beyond i_size on the filesystem.
1813 */
1814 shmem_unused_huge_shrink(sbinfo, NULL, 2);
1815 /*
1816 * And do a shmem_recalc_inode() to account for freed pages:
1817 * except our folio is there in cache, so not quite balanced.
1818 */
1819 spin_lock(&info->lock);
1820 freed = pages + info->alloced - info->swapped -
1821 READ_ONCE(mapping->nrpages);
1822 if (freed > 0)
1823 info->alloced -= freed;
1824 spin_unlock(&info->lock);
1825 if (freed > 0)
1826 shmem_inode_unacct_blocks(inode, freed);
1827 error = shmem_inode_acct_blocks(inode, pages);
1828 if (error) {
1829 filemap_remove_folio(folio);
1830 goto unlock;
1831 }
1832 }
1833
1834 shmem_recalc_inode(inode, pages, 0);
1835 folio_add_lru(folio);
1836 return folio;
1837
1838 unlock:
1839 folio_unlock(folio);
1840 folio_put(folio);
1841 return ERR_PTR(error);
1842 }
1843
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2024-05-30 6:37 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-30 2:04 [PATCH v3 0/6] add mTHP support for anonymous shmem Baolin Wang
2024-05-30 2:04 ` [PATCH v3 1/6] mm: memory: extend finish_fault() to support large folio Baolin Wang
2024-06-03 4:44 ` Lance Yang
2024-06-03 8:04 ` Baolin Wang
2024-06-03 5:28 ` Barry Song
2024-06-03 8:29 ` Baolin Wang
2024-06-03 8:58 ` Barry Song
2024-06-03 9:01 ` Barry Song
2024-06-03 9:37 ` Baolin Wang
2024-05-30 2:04 ` [PATCH v3 2/6] mm: shmem: add THP validation for PMD-mapped THP related statistics Baolin Wang
2024-05-30 2:04 ` [PATCH v3 3/6] mm: shmem: add multi-size THP sysfs interface for anonymous shmem Baolin Wang
2024-06-01 3:29 ` wang wei
2024-06-02 4:36 ` [PATCH " Baolin Wang
2024-05-30 2:04 ` [PATCH v3 4/6] mm: shmem: add mTHP support " Baolin Wang
2024-05-30 6:36 ` kernel test robot [this message]
2024-06-02 4:16 ` Baolin Wang
2024-06-04 9:23 ` Dan Carpenter
2024-06-04 9:46 ` Baolin Wang
2024-05-30 2:04 ` [PATCH v3 5/6] mm: shmem: add mTHP size alignment in shmem_get_unmapped_area Baolin Wang
2024-05-30 2:04 ` [PATCH v3 6/6] mm: shmem: add mTHP counters for anonymous shmem Baolin Wang
2024-05-31 9:35 ` [PATCH v3 0/6] add mTHP support " David Hildenbrand
2024-05-31 10:13 ` Baolin Wang
2024-05-31 11:13 ` David Hildenbrand
2024-06-02 4:15 ` Baolin Wang
2024-06-04 8:18 ` Daniel Gomez
2024-06-04 9:45 ` Baolin Wang
2024-06-04 12:05 ` Daniel Gomez
2024-06-06 3:31 ` Baolin Wang
2024-06-06 8:38 ` David Hildenbrand
2024-06-06 9:31 ` Baolin Wang
2024-06-07 9:05 ` Daniel Gomez
2024-06-07 10:39 ` David Hildenbrand
2024-06-01 3:54 ` wang wei
2024-05-31 13:19 ` Daniel Gomez
2024-05-31 14:43 ` David Hildenbrand
2024-06-04 9:29 ` Daniel Gomez
2024-06-04 9:59 ` David Hildenbrand
2024-06-04 12:30 ` Daniel Gomez
-- strict thread matches above, loose matches on Subject: below --
2024-06-01 19:03 [PATCH v3 4/6] mm: shmem: " kernel test robot
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=202405301430.0NRLTOWU-lkp@intel.com \
--to=lkp@intel.com \
--cc=21cnbao@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=baolin.wang@linux.alibaba.com \
--cc=da.gomez@samsung.com \
--cc=david@redhat.com \
--cc=hughd@google.com \
--cc=ioworker0@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=llvm@lists.linux.dev \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=p.raghav@samsung.com \
--cc=ryan.roberts@arm.com \
--cc=shy828301@gmail.com \
--cc=wangkefeng.wang@huawei.com \
--cc=willy@infradead.org \
--cc=ying.huang@intel.com \
--cc=ziy@nvidia.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.