All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Zach O'Keefe" <zokeefe@google.com>
To: kernel test robot <lkp@intel.com>
Cc: Alex Shi <alex.shi@linux.alibaba.com>,
	David Hildenbrand <david@redhat.com>,
	 David Rientjes <rientjes@google.com>,
	Matthew Wilcox <willy@infradead.org>,
	 Michal Hocko <mhocko@suse.com>,
	Pasha Tatashin <pasha.tatashin@soleen.com>,
	 Peter Xu <peterx@redhat.com>, SeongJae Park <sj@kernel.org>,
	Song Liu <songliubraving@fb.com>,
	 Vlastimil Babka <vbabka@suse.cz>, Yang Shi <shy828301@gmail.com>,
	Zi Yan <ziy@nvidia.com>,
	 linux-mm@kvack.org, llvm@lists.linux.dev,
	kbuild-all@lists.01.org,  Andrea Arcangeli <aarcange@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	 Arnd Bergmann <arnd@arndb.de>,
	Axel Rasmussen <axelrasmussen@google.com>,
	 Chris Kennelly <ckennelly@google.com>,
	Chris Zankel <chris@zankel.net>, Helge Deller <deller@gmx.de>,
	 Hugh Dickins <hughd@google.com>,
	Ivan Kokshaysky <ink@jurassic.park.msu.ru>,
	 "James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
	Jens Axboe <axboe@kernel.dk>,
	 "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
	Matt Turner <mattst88@gmail.com>,
	 Max Filippov <jcmvbkbc@gmail.com>,
	Miaohe Lin <linmiaohe@huawei.com>,
	 Minchan Kim <minchan@kernel.org>
Subject: Re: [PATCH v4 08/13] mm/madvise: introduce MADV_COLLAPSE sync hugepage collapse
Date: Wed, 4 May 2022 14:46:42 -0700	[thread overview]
Message-ID: <CAAa6QmSdj5j4fdsANkUKtM5OLaRQ_By0ose=7n_H-=RB9b-6+w@mail.gmail.com> (raw)
In-Reply-To: <202205031501.6qBJrsPn-lkp@intel.com>

Sorry again - fixed in v5

On Tue, May 3, 2022 at 12:22 AM kernel test robot <lkp@intel.com> wrote:
>
> Hi Zach,
>
> Thank you for the patch! Perhaps something to improve:
>
> [auto build test WARNING on next-20220502]
> [cannot apply to hnaz-mm/master rostedt-trace/for-next deller-parisc/for-next arnd-asm-generic/master linus/master v5.18-rc5 v5.18-rc4 v5.18-rc3 v5.18-rc5]
> [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]
>
> url:    https://github.com/intel-lab-lkp/linux/commits/Zach-O-Keefe/mm-khugepaged-record-SCAN_PMD_MAPPED-when-scan_pmd-finds-THP/20220503-031727
> base:    9f9b9a2972eb8dcaad09d826c5c6d7488eaca3e6
> config: x86_64-randconfig-a011-20220502 (https://download.01.org/0day-ci/archive/20220503/202205031501.6qBJrsPn-lkp@intel.com/config)
> compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 09325d36061e42b495d1f4c7e933e260eac260ed)
> 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
>         # https://github.com/intel-lab-lkp/linux/commit/9f69946c58d8d53c271a4d75ac477b4a5164a511
>         git remote add linux-review https://github.com/intel-lab-lkp/linux
>         git fetch --no-tags linux-review Zach-O-Keefe/mm-khugepaged-record-SCAN_PMD_MAPPED-when-scan_pmd-finds-THP/20220503-031727
>         git checkout 9f69946c58d8d53c271a4d75ac477b4a5164a511
>         # 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=x86_64 SHELL=/bin/bash
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
>
> All warnings (new ones prefixed by >>):
>
>    mm/khugepaged.c:1105:29: warning: incompatible integer to pointer conversion passing 'gfp_t' (aka 'unsigned int') to parameter of type 'struct page **' [-Wint-conversion]
>            if (!khugepaged_alloc_page(gfp, node, cc))
>                                       ^~~
>    mm/khugepaged.c:963:49: note: passing argument to parameter 'hpage' here
>    static bool khugepaged_alloc_page(struct page **hpage, gfp_t gfp, int node)
>                                                    ^
>    mm/khugepaged.c:1105:40: warning: incompatible pointer to integer conversion passing 'struct collapse_control *' to parameter of type 'int' [-Wint-conversion]
>            if (!khugepaged_alloc_page(gfp, node, cc))
>                                                  ^~
>    mm/khugepaged.c:963:71: note: passing argument to parameter 'node' here
>    static bool khugepaged_alloc_page(struct page **hpage, gfp_t gfp, int node)
>                                                                          ^
> >> mm/khugepaged.c:2565:3: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough]
>                    case SCAN_PMD_NULL:
>                    ^
>    mm/khugepaged.c:2565:3: note: insert 'break;' to avoid fall-through
>                    case SCAN_PMD_NULL:
>                    ^
>                    break;
>    3 warnings generated.
>
>
> vim +2565 mm/khugepaged.c
>
>   2511
>   2512  int madvise_collapse(struct vm_area_struct *vma, struct vm_area_struct **prev,
>   2513                       unsigned long start, unsigned long end)
>   2514  {
>   2515          struct collapse_control cc = {
>   2516                  .enforce_pte_scan_limits = false,
>   2517                  .enforce_young = false,
>   2518                  .last_target_node = NUMA_NO_NODE,
>   2519                  .hpage = NULL,
>   2520                  .alloc_charge_hpage = &madvise_alloc_charge_hpage,
>   2521          };
>   2522          struct mm_struct *mm = vma->vm_mm;
>   2523          unsigned long hstart, hend, addr;
>   2524          int thps = 0, nr_hpages = 0, result = SCAN_FAIL;
>   2525          bool mmap_locked = true;
>   2526
>   2527          BUG_ON(vma->vm_start > start);
>   2528          BUG_ON(vma->vm_end < end);
>   2529
>   2530          *prev = vma;
>   2531
>   2532          if (IS_ENABLED(CONFIG_SHMEM) && vma->vm_file)
>   2533                  return -EINVAL;
>   2534
>   2535          hstart = (start + ~HPAGE_PMD_MASK) & HPAGE_PMD_MASK;
>   2536          hend = end & HPAGE_PMD_MASK;
>   2537          nr_hpages = (hend - hstart) >> HPAGE_PMD_SHIFT;
>   2538
>   2539          if (hstart >= hend || !transparent_hugepage_active(vma))
>   2540                  return -EINVAL;
>   2541
>   2542          mmgrab(mm);
>   2543          lru_add_drain();
>   2544
>   2545          for (addr = hstart; ; ) {
>   2546                  mmap_assert_locked(mm);
>   2547                  cond_resched();
>   2548                  result = SCAN_FAIL;
>   2549
>   2550                  if (unlikely(khugepaged_test_exit(mm))) {
>   2551                          result = SCAN_ANY_PROCESS;
>   2552                          break;
>   2553                  }
>   2554
>   2555                  memset(cc.node_load, 0, sizeof(cc.node_load));
>   2556                  result = khugepaged_scan_pmd(mm, vma, addr, &mmap_locked, &cc);
>   2557                  if (!mmap_locked)
>   2558                          *prev = NULL;  /* tell madvise we dropped mmap_lock */
>   2559
>   2560                  switch (result) {
>   2561                  /* Whitelisted set of results where continuing OK */
>   2562                  case SCAN_SUCCEED:
>   2563                  case SCAN_PMD_MAPPED:
>   2564                          ++thps;
> > 2565                  case SCAN_PMD_NULL:
>
> --
> 0-DAY CI Kernel Test Service
> https://01.org/lkp

WARNING: multiple messages have this Message-ID (diff)
From: Zach O'Keefe <zokeefe@google.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH v4 08/13] mm/madvise: introduce MADV_COLLAPSE sync hugepage collapse
Date: Wed, 04 May 2022 14:46:42 -0700	[thread overview]
Message-ID: <CAAa6QmSdj5j4fdsANkUKtM5OLaRQ_By0ose=7n_H-=RB9b-6+w@mail.gmail.com> (raw)
In-Reply-To: <202205031501.6qBJrsPn-lkp@intel.com>

[-- Attachment #1: Type: text/plain, Size: 5931 bytes --]

Sorry again - fixed in v5

On Tue, May 3, 2022 at 12:22 AM kernel test robot <lkp@intel.com> wrote:
>
> Hi Zach,
>
> Thank you for the patch! Perhaps something to improve:
>
> [auto build test WARNING on next-20220502]
> [cannot apply to hnaz-mm/master rostedt-trace/for-next deller-parisc/for-next arnd-asm-generic/master linus/master v5.18-rc5 v5.18-rc4 v5.18-rc3 v5.18-rc5]
> [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]
>
> url:    https://github.com/intel-lab-lkp/linux/commits/Zach-O-Keefe/mm-khugepaged-record-SCAN_PMD_MAPPED-when-scan_pmd-finds-THP/20220503-031727
> base:    9f9b9a2972eb8dcaad09d826c5c6d7488eaca3e6
> config: x86_64-randconfig-a011-20220502 (https://download.01.org/0day-ci/archive/20220503/202205031501.6qBJrsPn-lkp(a)intel.com/config)
> compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 09325d36061e42b495d1f4c7e933e260eac260ed)
> 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
>         # https://github.com/intel-lab-lkp/linux/commit/9f69946c58d8d53c271a4d75ac477b4a5164a511
>         git remote add linux-review https://github.com/intel-lab-lkp/linux
>         git fetch --no-tags linux-review Zach-O-Keefe/mm-khugepaged-record-SCAN_PMD_MAPPED-when-scan_pmd-finds-THP/20220503-031727
>         git checkout 9f69946c58d8d53c271a4d75ac477b4a5164a511
>         # 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=x86_64 SHELL=/bin/bash
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
>
> All warnings (new ones prefixed by >>):
>
>    mm/khugepaged.c:1105:29: warning: incompatible integer to pointer conversion passing 'gfp_t' (aka 'unsigned int') to parameter of type 'struct page **' [-Wint-conversion]
>            if (!khugepaged_alloc_page(gfp, node, cc))
>                                       ^~~
>    mm/khugepaged.c:963:49: note: passing argument to parameter 'hpage' here
>    static bool khugepaged_alloc_page(struct page **hpage, gfp_t gfp, int node)
>                                                    ^
>    mm/khugepaged.c:1105:40: warning: incompatible pointer to integer conversion passing 'struct collapse_control *' to parameter of type 'int' [-Wint-conversion]
>            if (!khugepaged_alloc_page(gfp, node, cc))
>                                                  ^~
>    mm/khugepaged.c:963:71: note: passing argument to parameter 'node' here
>    static bool khugepaged_alloc_page(struct page **hpage, gfp_t gfp, int node)
>                                                                          ^
> >> mm/khugepaged.c:2565:3: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough]
>                    case SCAN_PMD_NULL:
>                    ^
>    mm/khugepaged.c:2565:3: note: insert 'break;' to avoid fall-through
>                    case SCAN_PMD_NULL:
>                    ^
>                    break;
>    3 warnings generated.
>
>
> vim +2565 mm/khugepaged.c
>
>   2511
>   2512  int madvise_collapse(struct vm_area_struct *vma, struct vm_area_struct **prev,
>   2513                       unsigned long start, unsigned long end)
>   2514  {
>   2515          struct collapse_control cc = {
>   2516                  .enforce_pte_scan_limits = false,
>   2517                  .enforce_young = false,
>   2518                  .last_target_node = NUMA_NO_NODE,
>   2519                  .hpage = NULL,
>   2520                  .alloc_charge_hpage = &madvise_alloc_charge_hpage,
>   2521          };
>   2522          struct mm_struct *mm = vma->vm_mm;
>   2523          unsigned long hstart, hend, addr;
>   2524          int thps = 0, nr_hpages = 0, result = SCAN_FAIL;
>   2525          bool mmap_locked = true;
>   2526
>   2527          BUG_ON(vma->vm_start > start);
>   2528          BUG_ON(vma->vm_end < end);
>   2529
>   2530          *prev = vma;
>   2531
>   2532          if (IS_ENABLED(CONFIG_SHMEM) && vma->vm_file)
>   2533                  return -EINVAL;
>   2534
>   2535          hstart = (start + ~HPAGE_PMD_MASK) & HPAGE_PMD_MASK;
>   2536          hend = end & HPAGE_PMD_MASK;
>   2537          nr_hpages = (hend - hstart) >> HPAGE_PMD_SHIFT;
>   2538
>   2539          if (hstart >= hend || !transparent_hugepage_active(vma))
>   2540                  return -EINVAL;
>   2541
>   2542          mmgrab(mm);
>   2543          lru_add_drain();
>   2544
>   2545          for (addr = hstart; ; ) {
>   2546                  mmap_assert_locked(mm);
>   2547                  cond_resched();
>   2548                  result = SCAN_FAIL;
>   2549
>   2550                  if (unlikely(khugepaged_test_exit(mm))) {
>   2551                          result = SCAN_ANY_PROCESS;
>   2552                          break;
>   2553                  }
>   2554
>   2555                  memset(cc.node_load, 0, sizeof(cc.node_load));
>   2556                  result = khugepaged_scan_pmd(mm, vma, addr, &mmap_locked, &cc);
>   2557                  if (!mmap_locked)
>   2558                          *prev = NULL;  /* tell madvise we dropped mmap_lock */
>   2559
>   2560                  switch (result) {
>   2561                  /* Whitelisted set of results where continuing OK */
>   2562                  case SCAN_SUCCEED:
>   2563                  case SCAN_PMD_MAPPED:
>   2564                          ++thps;
> > 2565                  case SCAN_PMD_NULL:
>
> --
> 0-DAY CI Kernel Test Service
> https://01.org/lkp

  reply	other threads:[~2022-05-04 21:47 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-02 18:17 [PATCH v4 00/12] mm: userspace hugepage collapse Zach O'Keefe
2022-05-02 18:17 ` [PATCH v4 01/13] mm/khugepaged: record SCAN_PMD_MAPPED when scan_pmd() finds THP Zach O'Keefe
2022-05-02 18:17 ` [PATCH v4 02/13] mm/khugepaged: add struct collapse_control Zach O'Keefe
2022-05-02 18:17 ` [PATCH v4 03/13] mm/khugepaged: dedup and simplify hugepage alloc and charging Zach O'Keefe
2022-05-02 18:17 ` [PATCH v4 04/13] mm/khugepaged: make hugepage allocation context-specific Zach O'Keefe
2022-05-03  3:38   ` kernel test robot
2022-05-03  6:30   ` kernel test robot
2022-05-04 21:45     ` Zach O'Keefe
2022-05-04 21:45       ` Zach O'Keefe
2022-05-04  2:25   ` [mm/khugepaged] 0d006aeaf9: BUG:unable_to_handle_page_fault_for_address kernel test robot
2022-05-04  2:25     ` kernel test robot
2022-05-04 21:46     ` Zach O'Keefe
2022-05-04 21:46       ` Zach O'Keefe
2022-05-02 18:17 ` [PATCH v4 05/13] mm/khugepaged: pipe enum scan_result codes back to callers Zach O'Keefe
2022-05-02 18:17 ` [PATCH v4 06/13] mm/khugepaged: add flag to ignore khugepaged_max_ptes_* Zach O'Keefe
2022-05-02 18:17 ` [PATCH v4 07/13] mm/khugepaged: add flag to ignore page young/referenced requirement Zach O'Keefe
2022-05-02 18:17 ` [PATCH v4 08/13] mm/madvise: introduce MADV_COLLAPSE sync hugepage collapse Zach O'Keefe
2022-05-03  7:21   ` kernel test robot
2022-05-04 21:46     ` Zach O'Keefe [this message]
2022-05-04 21:46       ` Zach O'Keefe
2022-05-02 18:17 ` [PATCH v4 09/13] mm/khugepaged: rename prefix of shared collapse functions Zach O'Keefe
2022-05-02 18:17 ` [PATCH v4 10/13] mm/madvise: add MADV_COLLAPSE to process_madvise() Zach O'Keefe
2022-05-02 18:17 ` [PATCH v4 11/13] selftests/vm: modularize collapse selftests Zach O'Keefe
2022-05-02 18:17 ` [PATCH v4 12/13] selftests/vm: add MADV_COLLAPSE collapse context to selftests Zach O'Keefe
2022-05-02 18:17 ` [PATCH v4 13/13] selftests/vm: add test to verify recollapse of THPs Zach O'Keefe

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='CAAa6QmSdj5j4fdsANkUKtM5OLaRQ_By0ose=7n_H-=RB9b-6+w@mail.gmail.com' \
    --to=zokeefe@google.com \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=aarcange@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=alex.shi@linux.alibaba.com \
    --cc=arnd@arndb.de \
    --cc=axboe@kernel.dk \
    --cc=axelrasmussen@google.com \
    --cc=chris@zankel.net \
    --cc=ckennelly@google.com \
    --cc=david@redhat.com \
    --cc=deller@gmx.de \
    --cc=hughd@google.com \
    --cc=ink@jurassic.park.msu.ru \
    --cc=jcmvbkbc@gmail.com \
    --cc=kbuild-all@lists.01.org \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=linmiaohe@huawei.com \
    --cc=linux-mm@kvack.org \
    --cc=lkp@intel.com \
    --cc=llvm@lists.linux.dev \
    --cc=mattst88@gmail.com \
    --cc=mhocko@suse.com \
    --cc=minchan@kernel.org \
    --cc=pasha.tatashin@soleen.com \
    --cc=peterx@redhat.com \
    --cc=rientjes@google.com \
    --cc=shy828301@gmail.com \
    --cc=sj@kernel.org \
    --cc=songliubraving@fb.com \
    --cc=vbabka@suse.cz \
    --cc=willy@infradead.org \
    --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.