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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0F49CD5C0C7 for ; Sat, 9 Nov 2024 05:25:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 28C576B0098; Sat, 9 Nov 2024 00:25:41 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 215676B009A; Sat, 9 Nov 2024 00:25:41 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 08F436B009B; Sat, 9 Nov 2024 00:25:41 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id DC5BC6B0098 for ; Sat, 9 Nov 2024 00:25:40 -0500 (EST) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 439391610A2 for ; Sat, 9 Nov 2024 05:25:40 +0000 (UTC) X-FDA: 82765417308.13.8F1507D Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.14]) by imf18.hostedemail.com (Postfix) with ESMTP id A18391C0015 for ; Sat, 9 Nov 2024 05:25:20 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=Npwet6jJ; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf18.hostedemail.com: domain of lkp@intel.com designates 192.198.163.14 as permitted sender) smtp.mailfrom=lkp@intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1731129766; a=rsa-sha256; cv=none; b=ID1ryRC+uJGSdPllHzwYGxOjrCKwgC1rUdl1TnGb+ACxBFxJFbl/1l+fmlofslvDZFzxF6 Ekaxa5evX1FnPOCpvLcs7f0lIIgRicwCYZimgo61dnFhG5tnzP4Nf40kXxhGH34hFJcpnq CNF0oOW1cgwu8GbcR4stOQ40Q1xemUk= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=Npwet6jJ; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf18.hostedemail.com: domain of lkp@intel.com designates 192.198.163.14 as permitted sender) smtp.mailfrom=lkp@intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1731129766; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=9TvKErdl0zWz5zaLKqvhxE9It9sAVUCedzZ/AYBYojw=; b=cDRUWTvLBLZhSqvMHKUjEHjLh7GVjLEw6542yoAbJbGcLGhF93MpkQPC8Zxi/iztN1tjkn r40FOnjVbIcCly+y5J0cMmPCv3UoIsYqz5VcidgLyMdLsKQWsDBBRFBYEnDAaEECnVsLKR xSO4ATz9z1d/5vCPDkpcZW5DauqMbsQ= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1731129937; x=1762665937; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=V7Rias5c3jg1UeLsuYAuYQvGfeJT4hPJeYrmiPdzrs0=; b=Npwet6jJmTjAS0VKPhC9A3doilpdSye/fFMTy55//HczXMFE3qsUAMyc yey0nNJ0eb55rg7jhxCI0whesQMTs4C/AwCLUAW13fuOHZEJsEdnvgVxH eWsqkTHSp67FXuqEFN2mkrK8JxCaSeoNUySqj9iWvvJYeCAZ/qpKxyKd3 cwQJ/lYJbLo50dMmKCrTlndSjmN1ViJd66t703FgWeEUPEkT+dKW1UA5i +XwO0d4kXaadd6zjtYS1k8jraKn+iehEqiw/z+SvT/d7kNGRYL/ICpx2D c2GA8jvv4yNnsgKIfGfgmrL8cNiD1Ri1GKXMiC79TIqXoPtQtC0y8qw2j Q==; X-CSE-ConnectionGUID: /543Y5rlSkau1a1bIVESTA== X-CSE-MsgGUID: EfIK2N+YTBGxO5jDtZpl7w== X-IronPort-AV: E=McAfee;i="6700,10204,11250"; a="31244375" X-IronPort-AV: E=Sophos;i="6.12,140,1728975600"; d="scan'208";a="31244375" Received: from fmviesa002.fm.intel.com ([10.60.135.142]) by fmvoesa108.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Nov 2024 21:25:35 -0800 X-CSE-ConnectionGUID: u1xmh9p1SpC3dBpK8TB6yA== X-CSE-MsgGUID: s4hlyDFJQem3BV+GLbwc2Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.12,140,1728975600"; d="scan'208";a="109196451" Received: from lkp-server01.sh.intel.com (HELO a48cf1aa22e8) ([10.239.97.150]) by fmviesa002.fm.intel.com with ESMTP; 08 Nov 2024 21:25:32 -0800 Received: from kbuild by a48cf1aa22e8 with local (Exim 4.96) (envelope-from ) id 1t9dyU-000s6K-1e; Sat, 09 Nov 2024 05:25:30 +0000 Date: Sat, 9 Nov 2024 13:24:40 +0800 From: kernel test robot To: Joshua Hahn , shakeel.butt@linux.dev Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev, hannes@cmpxchg.org, mhocko@kernel.org, roman.gushchin@linux.dev, muchun.song@linux.dev, akpm@linux-foundation.org, cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, kernel-team@meta.com Subject: Re: [PATCH 2/3] memcg/hugetlb: Introduce mem_cgroup_charge_hugetlb Message-ID: <202411091344.51lAbqmY-lkp@intel.com> References: <20241108212946.2642085-3-joshua.hahnjy@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20241108212946.2642085-3-joshua.hahnjy@gmail.com> X-Stat-Signature: tiksipj5h8pp3ahfrynrwecbdu93pf5k X-Rspamd-Queue-Id: A18391C0015 X-Rspamd-Server: rspam08 X-Rspam-User: X-HE-Tag: 1731129920-759250 X-HE-Meta: U2FsdGVkX1+2aoN35KhPvMNnZBVKClfzvUKSAGfcM1iPdgZV4Q+qfmUqFRZeVxsTQShYXFKGTkXQH2uwu7CZu1miaCDMM133VsVsvbV9HP/Y8Vihoz+V/vIfb/yHKu9EHzwUvqVNFMGLre9hVC3QZ7B43An3nbVSUW9982eM81HLpEPXI50v0AOLeoG6tB0x6eN/yd9Mgjtfe/9XQFiijKaqF8wEEbdaNME+bN7jFRayOX8BnUdvS1LQshzmhA2Jnk62mGKChfbGKe/FUJ6U0+DugbAK6pm39dEn4ybOLlmMIkLVvZA3MpClTY+3XxRLlteMESi83ifoOc4G7WcW6q3A3hpuLP6fhmLacEUL75CXfbOL/V7oQyM3VO3c7nxdUuvquEpZJ42idz3X8wxuN6RLSsAYksEat18e95jvHNVHokEC0bJ7Vc3uQcnVj9ayfOfOAEFTlNIkraQo8BxaItErMkE55m4ygbuVhHMX3qhDk+CLKQvo40f1KqQ3nBg8docvWHiUiD1N434QPgtOwW4PBAEyJFcvAkUsJMiF+5CekqJNi5ApFCyjLEwMyTr8IKo5zMDUSlyqGqe+sifePq868cAS7IxjlnBTsY8vciV95lV0iZxVMkuUtl2X6H5LAR860uZ/95YjNWPJnpUrAksvnrTza8KSgcyNAEIQDde2FWbwyzNT+p5goS6CWQwnFON+l+cDhhyJssLI1Eu02qGHGwwHqtGjms14oc/oh89/OPS0eKr9Z1Ghliggcy4GmDh0CIVkFAS2P+5f8BMWRjuzjV/sL+AFVUORrFkiRtzMPm29BETZvc6uBX9qtdUNWpet2jmlQvGhnZYWb0AMXfv7M9B4O5mAJlo21j6BF+1Z6bRQIXoaXg88W3DA/N5GJufG0dYq49WyO90ANwVGCP7s0tsLBzaT80Jnsh01k+rXs1uh19j1WDq1ty7yZ1glmpM8amcGsWKnOXPsnap 7pUFsLoE vQHS0uPg2tUhlAr+7lBXtLa10CoQv5xH+P7j8NyNi0HxvGTSZi/7omWt+UEwUzA6ml5SiFKoppFXe33EeWx26VB84xVrpbsZJoTm7NOgLgWmCXxNb9V9YRtwRyTZGPGGe2YsklDWDEy1M6Q+PfWRv7iShIbmy1ynfAKHfcmtxU/t2xiUNhT8BvDQHVgvhYeOEmJe5b8s160UmJ6z4vjdqNItZ+byXHIRwdbI3QvTxWZKnD5Y4+OHpgEKSjaMjUY7T96FtAJ4DZF4iQPD1I7KxgQFEbtNppLrG++A0pgWfqDVmbYAAUgE8I1c6NOtR1XyhcTfNG9VKzHuXtS+71Oi9iwo7B4Tls9yFIZVFgmXtxAb19gagL8z/LidOvzOeea4kdvP+iWONiD450JObhoANthBYQsRA1IXxf/AWetqXfYcnFbsCjYT+M+i/Yq7ITzTHX237aMzwMMEbq2iA8Ny0CG6qIwECIyU+x0C/D4P2tmXhDrJ3qOMUER1yQg== 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: List-Subscribe: List-Unsubscribe: Hi Joshua, kernel test robot noticed the following build errors: [auto build test ERROR on akpm-mm/mm-everything] [also build test ERROR on next-20241108] [cannot apply to linus/master v6.12-rc6] [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/Joshua-Hahn/memcg-hugetlb-Introduce-memcg_accounts_hugetlb/20241109-053045 base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything patch link: https://lore.kernel.org/r/20241108212946.2642085-3-joshua.hahnjy%40gmail.com patch subject: [PATCH 2/3] memcg/hugetlb: Introduce mem_cgroup_charge_hugetlb config: x86_64-buildonly-randconfig-002-20241109 (https://download.01.org/0day-ci/archive/20241109/202411091344.51lAbqmY-lkp@intel.com/config) compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241109/202411091344.51lAbqmY-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 | Closes: https://lore.kernel.org/oe-kbuild-all/202411091344.51lAbqmY-lkp@intel.com/ All errors (new ones prefixed by >>): In file included from mm/hugetlb.c:8: In file included from include/linux/mm.h:2211: include/linux/vmstat.h:518:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion] 518 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_" | ~~~~~~~~~~~ ^ ~~~ In file included from mm/hugetlb.c:37: include/linux/mm_inline.h:47:41: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion] 47 | __mod_lruvec_state(lruvec, NR_LRU_BASE + lru, nr_pages); | ~~~~~~~~~~~ ^ ~~~ include/linux/mm_inline.h:49:22: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum lru_list') [-Wenum-enum-conversion] 49 | NR_ZONE_LRU_BASE + lru, nr_pages); | ~~~~~~~~~~~~~~~~ ^ ~~~ >> mm/hugetlb.c:3083:8: error: call to undeclared function 'mem_cgroup_charge_hugetlb'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 3083 | ret = mem_cgroup_charge_hugetlb(folio, gfp); | ^ mm/hugetlb.c:3083:8: note: did you mean 'mem_cgroup_charge_skmem'? include/linux/memcontrol.h:1613:6: note: 'mem_cgroup_charge_skmem' declared here 1613 | bool mem_cgroup_charge_skmem(struct mem_cgroup *memcg, unsigned int nr_pages, | ^ 3 warnings and 1 error generated. vim +/mem_cgroup_charge_hugetlb +3083 mm/hugetlb.c 2963 2964 struct folio *alloc_hugetlb_folio(struct vm_area_struct *vma, 2965 unsigned long addr, int avoid_reserve) 2966 { 2967 struct hugepage_subpool *spool = subpool_vma(vma); 2968 struct hstate *h = hstate_vma(vma); 2969 struct folio *folio; 2970 long map_chg, map_commit; 2971 long gbl_chg; 2972 int ret, idx; 2973 struct hugetlb_cgroup *h_cg = NULL; 2974 bool deferred_reserve; 2975 gfp_t gfp = htlb_alloc_mask(h) | __GFP_RETRY_MAYFAIL; 2976 2977 idx = hstate_index(h); 2978 /* 2979 * Examine the region/reserve map to determine if the process 2980 * has a reservation for the page to be allocated. A return 2981 * code of zero indicates a reservation exists (no change). 2982 */ 2983 map_chg = gbl_chg = vma_needs_reservation(h, vma, addr); 2984 if (map_chg < 0) 2985 return ERR_PTR(-ENOMEM); 2986 2987 /* 2988 * Processes that did not create the mapping will have no 2989 * reserves as indicated by the region/reserve map. Check 2990 * that the allocation will not exceed the subpool limit. 2991 * Allocations for MAP_NORESERVE mappings also need to be 2992 * checked against any subpool limit. 2993 */ 2994 if (map_chg || avoid_reserve) { 2995 gbl_chg = hugepage_subpool_get_pages(spool, 1); 2996 if (gbl_chg < 0) 2997 goto out_end_reservation; 2998 2999 /* 3000 * Even though there was no reservation in the region/reserve 3001 * map, there could be reservations associated with the 3002 * subpool that can be used. This would be indicated if the 3003 * return value of hugepage_subpool_get_pages() is zero. 3004 * However, if avoid_reserve is specified we still avoid even 3005 * the subpool reservations. 3006 */ 3007 if (avoid_reserve) 3008 gbl_chg = 1; 3009 } 3010 3011 /* If this allocation is not consuming a reservation, charge it now. 3012 */ 3013 deferred_reserve = map_chg || avoid_reserve; 3014 if (deferred_reserve) { 3015 ret = hugetlb_cgroup_charge_cgroup_rsvd( 3016 idx, pages_per_huge_page(h), &h_cg); 3017 if (ret) 3018 goto out_subpool_put; 3019 } 3020 3021 ret = hugetlb_cgroup_charge_cgroup(idx, pages_per_huge_page(h), &h_cg); 3022 if (ret) 3023 goto out_uncharge_cgroup_reservation; 3024 3025 spin_lock_irq(&hugetlb_lock); 3026 /* 3027 * glb_chg is passed to indicate whether or not a page must be taken 3028 * from the global free pool (global change). gbl_chg == 0 indicates 3029 * a reservation exists for the allocation. 3030 */ 3031 folio = dequeue_hugetlb_folio_vma(h, vma, addr, avoid_reserve, gbl_chg); 3032 if (!folio) { 3033 spin_unlock_irq(&hugetlb_lock); 3034 folio = alloc_buddy_hugetlb_folio_with_mpol(h, vma, addr); 3035 if (!folio) 3036 goto out_uncharge_cgroup; 3037 spin_lock_irq(&hugetlb_lock); 3038 if (!avoid_reserve && vma_has_reserves(vma, gbl_chg)) { 3039 folio_set_hugetlb_restore_reserve(folio); 3040 h->resv_huge_pages--; 3041 } 3042 list_add(&folio->lru, &h->hugepage_activelist); 3043 folio_ref_unfreeze(folio, 1); 3044 /* Fall through */ 3045 } 3046 3047 hugetlb_cgroup_commit_charge(idx, pages_per_huge_page(h), h_cg, folio); 3048 /* If allocation is not consuming a reservation, also store the 3049 * hugetlb_cgroup pointer on the page. 3050 */ 3051 if (deferred_reserve) { 3052 hugetlb_cgroup_commit_charge_rsvd(idx, pages_per_huge_page(h), 3053 h_cg, folio); 3054 } 3055 3056 spin_unlock_irq(&hugetlb_lock); 3057 3058 hugetlb_set_folio_subpool(folio, spool); 3059 3060 map_commit = vma_commit_reservation(h, vma, addr); 3061 if (unlikely(map_chg > map_commit)) { 3062 /* 3063 * The page was added to the reservation map between 3064 * vma_needs_reservation and vma_commit_reservation. 3065 * This indicates a race with hugetlb_reserve_pages. 3066 * Adjust for the subpool count incremented above AND 3067 * in hugetlb_reserve_pages for the same page. Also, 3068 * the reservation count added in hugetlb_reserve_pages 3069 * no longer applies. 3070 */ 3071 long rsv_adjust; 3072 3073 rsv_adjust = hugepage_subpool_put_pages(spool, 1); 3074 hugetlb_acct_memory(h, -rsv_adjust); 3075 if (deferred_reserve) { 3076 spin_lock_irq(&hugetlb_lock); 3077 hugetlb_cgroup_uncharge_folio_rsvd(hstate_index(h), 3078 pages_per_huge_page(h), folio); 3079 spin_unlock_irq(&hugetlb_lock); 3080 } 3081 } 3082 > 3083 ret = mem_cgroup_charge_hugetlb(folio, gfp); 3084 if (ret == -ENOMEM) { 3085 spin_unlock_irq(&hugetlb_lock); 3086 free_huge_folio(folio); 3087 return ERR_PTR(-ENOMEM); 3088 } 3089 else if (!ret) 3090 lruvec_stat_mod_folio(folio, NR_HUGETLB, 3091 pages_per_huge_page(h)); 3092 3093 return folio; 3094 3095 out_uncharge_cgroup: 3096 hugetlb_cgroup_uncharge_cgroup(idx, pages_per_huge_page(h), h_cg); 3097 out_uncharge_cgroup_reservation: 3098 if (deferred_reserve) 3099 hugetlb_cgroup_uncharge_cgroup_rsvd(idx, pages_per_huge_page(h), 3100 h_cg); 3101 out_subpool_put: 3102 if (map_chg || avoid_reserve) 3103 hugepage_subpool_put_pages(spool, 1); 3104 out_end_reservation: 3105 vma_end_reservation(h, vma, addr); 3106 return ERR_PTR(-ENOSPC); 3107 } 3108 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki