From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 22B1DC4332F for ; Thu, 11 Nov 2021 16:53:54 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 8F89761284 for ; Thu, 11 Nov 2021 16:53:53 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 8F89761284 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=kvack.org Received: by kanga.kvack.org (Postfix) id 00F926B006C; Thu, 11 Nov 2021 11:53:53 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id F00DB6B0071; Thu, 11 Nov 2021 11:53:52 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DC8686B0072; Thu, 11 Nov 2021 11:53:52 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0168.hostedemail.com [216.40.44.168]) by kanga.kvack.org (Postfix) with ESMTP id C84036B006C for ; Thu, 11 Nov 2021 11:53:52 -0500 (EST) Received: from smtpin03.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 745D584D06 for ; Thu, 11 Nov 2021 16:53:52 +0000 (UTC) X-FDA: 78797246304.03.95F1EF3 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by imf17.hostedemail.com (Postfix) with ESMTP id 9B998F0003BA for ; Thu, 11 Nov 2021 16:53:50 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6200,9189,10165"; a="212996412" X-IronPort-AV: E=Sophos;i="5.87,226,1631602800"; d="gz'50?scan'50,208,50";a="212996412" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Nov 2021 08:53:48 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,226,1631602800"; d="gz'50?scan'50,208,50";a="504501611" Received: from lkp-server02.sh.intel.com (HELO c20d8bc80006) ([10.239.97.151]) by orsmga008.jf.intel.com with ESMTP; 11 Nov 2021 08:53:44 -0800 Received: from kbuild by c20d8bc80006 with local (Exim 4.92) (envelope-from ) id 1mlDKa-000GlZ-0c; Thu, 11 Nov 2021 16:53:44 +0000 Date: Fri, 12 Nov 2021 00:53:10 +0800 From: kernel test robot To: Mina Almasry Cc: kbuild-all@lists.01.org, Mina Almasry , Michal Hocko , Theodore Ts'o , Greg Thelen , Shakeel Butt , Andrew Morton , Linux Memory Management List , Hugh Dickins , Roman Gushchin , Dave Chinner Subject: Re: [PATCH v2 1/4] mm/shmem: support deterministic charging of tmpfs Message-ID: <202111120048.YbSLKOz5-lkp@intel.com> References: <20211110211951.3730787-2-almasrymina@google.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="NzB8fVQJ5HfG6fxh" Content-Disposition: inline In-Reply-To: <20211110211951.3730787-2-almasrymina@google.com> User-Agent: Mutt/1.10.1 (2018-07-13) X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 9B998F0003BA X-Stat-Signature: 9ztwwpk3jfwurwu11oha49cwd8f94m7s Authentication-Results: imf17.hostedemail.com; dkim=none; spf=none (imf17.hostedemail.com: domain of lkp@intel.com has no SPF policy when checking 192.55.52.136) smtp.mailfrom=lkp@intel.com; dmarc=fail reason="No valid SPF, No valid DKIM" header.from=intel.com (policy=none) X-HE-Tag: 1636649630-446799 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: --NzB8fVQJ5HfG6fxh Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Mina, Thank you for the patch! Yet something to improve: [auto build test ERROR on hnaz-mm/master] url: https://github.com/0day-ci/linux/commits/Mina-Almasry/mm-shmem-support-deterministic-charging-of-tmpfs/20211111-062122 base: https://github.com/hnaz/linux-mm master config: um-i386_defconfig (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce (this is a W=1 build): # https://github.com/0day-ci/linux/commit/aaf0e3e0832977b6eb257e1ed27747cf97c479d4 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Mina-Almasry/mm-shmem-support-deterministic-charging-of-tmpfs/20211111-062122 git checkout aaf0e3e0832977b6eb257e1ed27747cf97c479d4 # save the attached .config to linux build tree mkdir build_dir make W=1 O=build_dir ARCH=um SUBARCH=i386 SHELL=/bin/bash If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): mm/shmem.c:118:5: warning: "CONFIG_MEMCG" is not defined, evaluates to 0 [-Wundef] 118 | #if CONFIG_MEMCG | ^~~~~~~~~~~~ mm/shmem.c: In function 'shmem_add_to_page_cache': >> mm/shmem.c:721:25: error: dereferencing pointer to incomplete type 'struct mem_cgroup' 721 | css_put(&remote_memcg->css); | ^~ mm/shmem.c: In function 'shmem_parse_one': mm/shmem.c:3410:21: warning: unused variable 'memcg' [-Wunused-variable] 3410 | struct mem_cgroup *memcg; | ^~~~~ mm/shmem.c: In function 'shmem_reconfigure': mm/shmem.c:3616:5: warning: "CONFIG_MEMCG" is not defined, evaluates to 0 [-Wundef] 3616 | #if CONFIG_MEMCG | ^~~~~~~~~~~~ mm/shmem.c: In function 'shmem_fill_super': mm/shmem.c:3772:5: warning: "CONFIG_MEMCG" is not defined, evaluates to 0 [-Wundef] 3772 | #if CONFIG_MEMCG | ^~~~~~~~~~~~ -- fs/super.c: In function 'destroy_unused_super': >> fs/super.c:184:33: error: 'struct super_block' has no member named 's_memcg_to_charge' 184 | mem_cgroup_set_charge_target(&s->s_memcg_to_charge, NULL); | ^~ fs/super.c: In function '__put_super': fs/super.c:297:34: error: 'struct super_block' has no member named 's_memcg_to_charge' 297 | mem_cgroup_set_charge_target(&s->s_memcg_to_charge, NULL); | ^~ vim +721 mm/shmem.c 691 692 /* 693 * Like add_to_page_cache_locked, but error if expected item has gone. 694 */ 695 static int shmem_add_to_page_cache(struct page *page, 696 struct address_space *mapping, 697 pgoff_t index, void *expected, gfp_t gfp, 698 struct mm_struct *charge_mm) 699 { 700 XA_STATE_ORDER(xas, &mapping->i_pages, index, compound_order(page)); 701 unsigned long i = 0; 702 unsigned long nr = compound_nr(page); 703 int error; 704 struct mem_cgroup *remote_memcg; 705 706 VM_BUG_ON_PAGE(PageTail(page), page); 707 VM_BUG_ON_PAGE(index != round_down(index, nr), page); 708 VM_BUG_ON_PAGE(!PageLocked(page), page); 709 VM_BUG_ON_PAGE(!PageSwapBacked(page), page); 710 VM_BUG_ON(expected && PageTransHuge(page)); 711 712 page_ref_add(page, nr); 713 page->mapping = mapping; 714 page->index = index; 715 716 if (!PageSwapCache(page)) { 717 remote_memcg = mem_cgroup_mapping_get_charge_target(mapping); 718 if (remote_memcg) { 719 error = mem_cgroup_charge_memcg(page_folio(page), 720 remote_memcg, gfp); > 721 css_put(&remote_memcg->css); 722 } else 723 error = mem_cgroup_charge(page_folio(page), charge_mm, 724 gfp); 725 if (error) { 726 if (PageTransHuge(page)) { 727 count_vm_event(THP_FILE_FALLBACK); 728 count_vm_event(THP_FILE_FALLBACK_CHARGE); 729 } 730 goto error; 731 } 732 } 733 cgroup_throttle_swaprate(page, gfp); 734 735 do { 736 void *entry; 737 xas_lock_irq(&xas); 738 entry = xas_find_conflict(&xas); 739 if (entry != expected) 740 xas_set_err(&xas, -EEXIST); 741 xas_create_range(&xas); 742 if (xas_error(&xas)) 743 goto unlock; 744 next: 745 xas_store(&xas, page); 746 if (++i < nr) { 747 xas_next(&xas); 748 goto next; 749 } 750 if (PageTransHuge(page)) { 751 count_vm_event(THP_FILE_ALLOC); 752 __mod_lruvec_page_state(page, NR_SHMEM_THPS, nr); 753 } 754 mapping->nrpages += nr; 755 __mod_lruvec_page_state(page, NR_FILE_PAGES, nr); 756 __mod_lruvec_page_state(page, NR_SHMEM, nr); 757 unlock: 758 xas_unlock_irq(&xas); 759 } while (xas_nomem(&xas, gfp)); 760 761 if (xas_error(&xas)) { 762 error = xas_error(&xas); 763 goto error; 764 } 765 766 return 0; 767 error: 768 page->mapping = NULL; 769 page_ref_sub(page, nr); 770 return error; 771 } 772 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org --NzB8fVQJ5HfG6fxh Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 mgAA --NzB8fVQJ5HfG6fxh-- From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============6107948352031263320==" MIME-Version: 1.0 From: kernel test robot To: kbuild-all@lists.01.org Subject: Re: [PATCH v2 1/4] mm/shmem: support deterministic charging of tmpfs Date: Fri, 12 Nov 2021 00:53:10 +0800 Message-ID: <202111120048.YbSLKOz5-lkp@intel.com> In-Reply-To: <20211110211951.3730787-2-almasrymina@google.com> List-Id: --===============6107948352031263320== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Mina, Thank you for the patch! Yet something to improve: [auto build test ERROR on hnaz-mm/master] url: https://github.com/0day-ci/linux/commits/Mina-Almasry/mm-shmem-supp= ort-deterministic-charging-of-tmpfs/20211111-062122 base: https://github.com/hnaz/linux-mm master config: um-i386_defconfig (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce (this is a W=3D1 build): # https://github.com/0day-ci/linux/commit/aaf0e3e0832977b6eb257e1ed= 27747cf97c479d4 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Mina-Almasry/mm-shmem-support-dete= rministic-charging-of-tmpfs/20211111-062122 git checkout aaf0e3e0832977b6eb257e1ed27747cf97c479d4 # save the attached .config to linux build tree mkdir build_dir make W=3D1 O=3Dbuild_dir ARCH=3Dum SUBARCH=3Di386 SHELL=3D/bin/bash If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): mm/shmem.c:118:5: warning: "CONFIG_MEMCG" is not defined, evaluates to 0= [-Wundef] 118 | #if CONFIG_MEMCG | ^~~~~~~~~~~~ mm/shmem.c: In function 'shmem_add_to_page_cache': >> mm/shmem.c:721:25: error: dereferencing pointer to incomplete type 'stru= ct mem_cgroup' 721 | css_put(&remote_memcg->css); | ^~ mm/shmem.c: In function 'shmem_parse_one': mm/shmem.c:3410:21: warning: unused variable 'memcg' [-Wunused-variable] 3410 | struct mem_cgroup *memcg; | ^~~~~ mm/shmem.c: In function 'shmem_reconfigure': mm/shmem.c:3616:5: warning: "CONFIG_MEMCG" is not defined, evaluates to = 0 [-Wundef] 3616 | #if CONFIG_MEMCG | ^~~~~~~~~~~~ mm/shmem.c: In function 'shmem_fill_super': mm/shmem.c:3772:5: warning: "CONFIG_MEMCG" is not defined, evaluates to = 0 [-Wundef] 3772 | #if CONFIG_MEMCG | ^~~~~~~~~~~~ -- fs/super.c: In function 'destroy_unused_super': >> fs/super.c:184:33: error: 'struct super_block' has no member named 's_me= mcg_to_charge' 184 | mem_cgroup_set_charge_target(&s->s_memcg_to_charge, NULL); | ^~ fs/super.c: In function '__put_super': fs/super.c:297:34: error: 'struct super_block' has no member named 's_me= mcg_to_charge' 297 | mem_cgroup_set_charge_target(&s->s_memcg_to_charge, NULL); | ^~ vim +721 mm/shmem.c 691 = 692 /* 693 * Like add_to_page_cache_locked, but error if expected item has gon= e. 694 */ 695 static int shmem_add_to_page_cache(struct page *page, 696 struct address_space *mapping, 697 pgoff_t index, void *expected, gfp_t gfp, 698 struct mm_struct *charge_mm) 699 { 700 XA_STATE_ORDER(xas, &mapping->i_pages, index, compound_order(page)); 701 unsigned long i =3D 0; 702 unsigned long nr =3D compound_nr(page); 703 int error; 704 struct mem_cgroup *remote_memcg; 705 = 706 VM_BUG_ON_PAGE(PageTail(page), page); 707 VM_BUG_ON_PAGE(index !=3D round_down(index, nr), page); 708 VM_BUG_ON_PAGE(!PageLocked(page), page); 709 VM_BUG_ON_PAGE(!PageSwapBacked(page), page); 710 VM_BUG_ON(expected && PageTransHuge(page)); 711 = 712 page_ref_add(page, nr); 713 page->mapping =3D mapping; 714 page->index =3D index; 715 = 716 if (!PageSwapCache(page)) { 717 remote_memcg =3D mem_cgroup_mapping_get_charge_target(mapping); 718 if (remote_memcg) { 719 error =3D mem_cgroup_charge_memcg(page_folio(page), 720 remote_memcg, gfp); > 721 css_put(&remote_memcg->css); 722 } else 723 error =3D mem_cgroup_charge(page_folio(page), charge_mm, 724 gfp); 725 if (error) { 726 if (PageTransHuge(page)) { 727 count_vm_event(THP_FILE_FALLBACK); 728 count_vm_event(THP_FILE_FALLBACK_CHARGE); 729 } 730 goto error; 731 } 732 } 733 cgroup_throttle_swaprate(page, gfp); 734 = 735 do { 736 void *entry; 737 xas_lock_irq(&xas); 738 entry =3D xas_find_conflict(&xas); 739 if (entry !=3D expected) 740 xas_set_err(&xas, -EEXIST); 741 xas_create_range(&xas); 742 if (xas_error(&xas)) 743 goto unlock; 744 next: 745 xas_store(&xas, page); 746 if (++i < nr) { 747 xas_next(&xas); 748 goto next; 749 } 750 if (PageTransHuge(page)) { 751 count_vm_event(THP_FILE_ALLOC); 752 __mod_lruvec_page_state(page, NR_SHMEM_THPS, nr); 753 } 754 mapping->nrpages +=3D nr; 755 __mod_lruvec_page_state(page, NR_FILE_PAGES, nr); 756 __mod_lruvec_page_state(page, NR_SHMEM, nr); 757 unlock: 758 xas_unlock_irq(&xas); 759 } while (xas_nomem(&xas, gfp)); 760 = 761 if (xas_error(&xas)) { 762 error =3D xas_error(&xas); 763 goto error; 764 } 765 = 766 return 0; 767 error: 768 page->mapping =3D NULL; 769 page_ref_sub(page, nr); 770 return error; 771 } 772 = --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============6107948352031263320== Content-Type: application/gzip MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.gz" 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 7Mm1yqQ97zjkqef/A58IfpKZmgAA --===============6107948352031263320==--