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 85320C433EF for ; Mon, 6 Jun 2022 20:20:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EA9FD6B0072; Mon, 6 Jun 2022 16:20:17 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E32B16B0073; Mon, 6 Jun 2022 16:20:17 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CACF46B0074; Mon, 6 Jun 2022 16:20:17 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id B8F346B0072 for ; Mon, 6 Jun 2022 16:20:17 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay13.hostedemail.com (Postfix) with ESMTP id 9558C60A47 for ; Mon, 6 Jun 2022 20:20:17 +0000 (UTC) X-FDA: 79548928074.01.A441967 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) by imf17.hostedemail.com (Postfix) with ESMTP id 167134005F for ; Mon, 6 Jun 2022 20:19:36 +0000 (UTC) Received: by mail-pl1-f172.google.com with SMTP id o6so7933027plg.2 for ; Mon, 06 Jun 2022 13:20:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=M4wKD8NUBf2qgiMnd22wiyCBE95sx7Rerl3DzCPu+vI=; b=PhMLNVdxwXiYFVWO9F3PVPcv1nBsyxtEXDjFA5ueJJ6W8nblbIspyHT8cp1BAMyMqp I+fGefy2j2sS/H8acTphL0a9oMVFfJFa1PgCty/YWftBDfsTlLRco2E00dYFEJ69Bvb5 +AXnGHAs3Ag8aR8SxEBT+Fc0UAKraPC9sbw0R5RRJveUY7HOlf2HIOcG2GXY0G8s0g0w 1BcYwY08r5xQ/zat4BKcfr6vgL7qN5PpW2OOZ72Ugpzg1WEQSClTUfxH56AO5FQzirFE 5CHGv/BgqSKqQgVrfrbFpAu+KyJHIa+P/7w7VTTAhE5+k29baPV1FLvBk50f+PF8P8BW 6Z3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=M4wKD8NUBf2qgiMnd22wiyCBE95sx7Rerl3DzCPu+vI=; b=kU5xTM3ma47Mmk+jInseWN+leDTta9MxSrIN4zJRxPf1kpSuwXwEVEii72uIVJyfdz Guqi8/6nn1/PJ/6Vqmwnu4RXtwYsTsvLKICdBptzMMcG4trgK/YYV2gWBpMjlrdJBUWB 2b+7paSYmQ8a09AKS+UucYaHET0ywRv3WSwejW4qoNcpq3viHyR1GcK22J4umVlgdeef hWbNNCsMTHCpkBXWfvbH1mdGKHYSka53UL7+ai1srlmY2Z6SX/+tQX6SeDM1mLTZXF/I trV5yPTSMqwg4vnVJrLXeis690mQ5CQICyIR+BtBj1L58bpiKuGAeG41r2YieBpgOv1k 0FLA== X-Gm-Message-State: AOAM531+VFRKd0qGL3bMri8DwmEEZgYsGMHkwTA5kKTGMXWs4XjvwOjl qByFmdUFKGTlcjDPaicqszBPIiImIQ5WqPqyGI4= X-Google-Smtp-Source: ABdhPJwi0xU9Qixl9WyHKOCn0KakY14UotRqBdvLTlyD3/9Tim4OlxLPDN4pwyI5aepkYoR2synBPIDyQcjWPyAbBAU= X-Received: by 2002:a17:90a:de15:b0:1df:63dd:9cfc with SMTP id m21-20020a17090ade1500b001df63dd9cfcmr28615702pjv.200.1654546815911; Mon, 06 Jun 2022 13:20:15 -0700 (PDT) MIME-Version: 1.0 References: <20220604004004.954674-4-zokeefe@google.com> <202206060911.I8rRqGwC-lkp@intel.com> In-Reply-To: From: Yang Shi Date: Mon, 6 Jun 2022 13:20:02 -0700 Message-ID: Subject: Re: [PATCH v6 03/15] mm/khugepaged: add struct collapse_control To: "Zach O'Keefe" Cc: kernel test robot , Alex Shi , David Hildenbrand , David Rientjes , Matthew Wilcox , Michal Hocko , Pasha Tatashin , Peter Xu , Rongwei Wang , SeongJae Park , Song Liu , Vlastimil Babka , Zi Yan , Linux MM , kbuild-all@lists.01.org, Andrea Arcangeli , Andrew Morton , Arnd Bergmann , Axel Rasmussen , Chris Kennelly , Chris Zankel , Helge Deller , Hugh Dickins , Ivan Kokshaysky , "James E.J. Bottomley" , Jens Axboe , "Kirill A. Shutemov" , Matt Turner , Max Filippov , Miaohe Lin Content-Type: text/plain; charset="UTF-8" X-Rspam-User: Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=PhMLNVdx; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf17.hostedemail.com: domain of shy828301@gmail.com designates 209.85.214.172 as permitted sender) smtp.mailfrom=shy828301@gmail.com X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 167134005F X-Stat-Signature: ukjktmmr4mbsttt3dy6jinou3qgcq7na X-HE-Tag: 1654546776-885012 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: On Mon, Jun 6, 2022 at 9:40 AM Zach O'Keefe wrote: > > On Sun, Jun 5, 2022 at 7:42 PM kernel test robot wrote: > > > > Hi Zach, > > > > Thank you for the patch! Perhaps something to improve: > > > > [auto build test WARNING on akpm-mm/mm-everything] > > > > url: https://github.com/intel-lab-lkp/linux/commits/Zach-O-Keefe/mm-userspace-hugepage-collapse/20220606-012953 > > base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything > > config: x86_64-rhel-8.3 (https://download.01.org/0day-ci/archive/20220606/202206060911.I8rRqGwC-lkp@intel.com/config) > > compiler: gcc-11 (Debian 11.3.0-1) 11.3.0 > > reproduce (this is a W=1 build): > > # https://github.com/intel-lab-lkp/linux/commit/d87b6065d6050b89930cca0814921aca7c269286 > > git remote add linux-review https://github.com/intel-lab-lkp/linux > > git fetch --no-tags linux-review Zach-O-Keefe/mm-userspace-hugepage-collapse/20220606-012953 > > git checkout d87b6065d6050b89930cca0814921aca7c269286 > > # save the config file > > mkdir build_dir && cp config build_dir/.config > > make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash > > > > If you fix the issue, kindly add following tag where applicable > > Reported-by: kernel test robot > > > > All warnings (new ones prefixed by >>): > > > > mm/khugepaged.c: In function 'khugepaged': > > >> mm/khugepaged.c:2284:1: warning: the frame size of 4160 bytes is larger than 2048 bytes [-Wframe-larger-than=] > > 2284 | } > > | ^ > > Thanks lkp@intel.com. > > This is due to config with: > > CONFIG_FRAME_WARN=2048 > CONFIG_NODES_SHIFT=10 > > Where struct collapse_control has a member int > node_load[MAX_NUMNODES], and we stack allocate one. > > Is this a configuration that needs to be supported? 1024 nodes seems > like a lot and I'm not sure if these configs are randomly generated or > are reminiscent of real systems. I don't have a better idea other than moving it out of the collapse_control struct. You may consider changing node_load to two dimensions, for example: node_load[2][MAX_NUMNODES], then define: enum { /* khugepaged */ COLLAPSE_ASYNC, /* MADV_COLLAPSE */ COLLAPSE_SYNC } Then khugepaged and MADV_COLLAPSE get their dedicated node_load respectively. The more aggressive approach may be just killing node_load, but I'm not sure what impact it may incur. > > Thanks, > Zach > > > > > vim +2284 mm/khugepaged.c > > > > b46e756f5e4703 Kirill A. Shutemov 2016-07-26 2261 > > b46e756f5e4703 Kirill A. Shutemov 2016-07-26 2262 static int khugepaged(void *none) > > b46e756f5e4703 Kirill A. Shutemov 2016-07-26 2263 { > > b46e756f5e4703 Kirill A. Shutemov 2016-07-26 2264 struct mm_slot *mm_slot; > > d87b6065d6050b Zach O'Keefe 2022-06-03 2265 struct collapse_control cc = { > > d87b6065d6050b Zach O'Keefe 2022-06-03 2266 .last_target_node = NUMA_NO_NODE, > > d87b6065d6050b Zach O'Keefe 2022-06-03 2267 }; > > b46e756f5e4703 Kirill A. Shutemov 2016-07-26 2268 > > b46e756f5e4703 Kirill A. Shutemov 2016-07-26 2269 set_freezable(); > > b46e756f5e4703 Kirill A. Shutemov 2016-07-26 2270 set_user_nice(current, MAX_NICE); > > b46e756f5e4703 Kirill A. Shutemov 2016-07-26 2271 > > b46e756f5e4703 Kirill A. Shutemov 2016-07-26 2272 while (!kthread_should_stop()) { > > d87b6065d6050b Zach O'Keefe 2022-06-03 2273 khugepaged_do_scan(&cc); > > b46e756f5e4703 Kirill A. Shutemov 2016-07-26 2274 khugepaged_wait_work(); > > b46e756f5e4703 Kirill A. Shutemov 2016-07-26 2275 } > > b46e756f5e4703 Kirill A. Shutemov 2016-07-26 2276 > > b46e756f5e4703 Kirill A. Shutemov 2016-07-26 2277 spin_lock(&khugepaged_mm_lock); > > b46e756f5e4703 Kirill A. Shutemov 2016-07-26 2278 mm_slot = khugepaged_scan.mm_slot; > > b46e756f5e4703 Kirill A. Shutemov 2016-07-26 2279 khugepaged_scan.mm_slot = NULL; > > b46e756f5e4703 Kirill A. Shutemov 2016-07-26 2280 if (mm_slot) > > b46e756f5e4703 Kirill A. Shutemov 2016-07-26 2281 collect_mm_slot(mm_slot); > > b46e756f5e4703 Kirill A. Shutemov 2016-07-26 2282 spin_unlock(&khugepaged_mm_lock); > > b46e756f5e4703 Kirill A. Shutemov 2016-07-26 2283 return 0; > > b46e756f5e4703 Kirill A. Shutemov 2016-07-26 @2284 } > > b46e756f5e4703 Kirill A. Shutemov 2016-07-26 2285 > > > > -- > > 0-DAY CI Kernel Test Service > > https://01.org/lkp > >