From: kernel test robot <lkp@intel.com>
To: Balbir Singh <balbirs@nvidia.com>, linux-mm@kvack.org
Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org,
"Balbir Singh" <balbirs@nvidia.com>,
"Karol Herbst" <kherbst@redhat.com>,
"Lyude Paul" <lyude@redhat.com>,
"Danilo Krummrich" <dakr@kernel.org>,
"David Airlie" <airlied@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>,
"Jérôme Glisse" <jglisse@redhat.com>,
"Shuah Khan" <skhan@linuxfoundation.org>,
"David Hildenbrand" <david@redhat.com>,
"Barry Song" <baohua@kernel.org>,
"Baolin Wang" <baolin.wang@linux.alibaba.com>,
"Ryan Roberts" <ryan.roberts@arm.com>,
"Matthew Wilcox" <willy@infradead.org>,
"Peter Xu" <peterx@redhat.com>, "Zi Yan" <ziy@nvidia.com>,
"Kefeng Wang" <wangkefeng.wang@huawei.com>,
"Jane Chu" <jane.chu@oracle.com>,
"Alistair Popple" <apopple@nvidia.com>,
"Donet Tom" <donettom@linux.ibm.com>,
"Mika Penttilä" <mpenttil@redhat.com>,
"Matthew Brost" <matthew.brost@intel.com>,
"Francois Dugast" <francois.dugast@intel.com>,
"Ralph Campbell" <rcampbell@nvidia.com>
Subject: Re: [v2 03/11] mm/migrate_device: THP migration of zone device pages
Date: Fri, 1 Aug 2025 00:19:52 +0800 [thread overview]
Message-ID: <202507312342.dmLxVgli-lkp@intel.com> (raw)
In-Reply-To: <20250730092139.3890844-4-balbirs@nvidia.com>
Hi Balbir,
kernel test robot noticed the following build warnings:
[auto build test WARNING on akpm-mm/mm-everything]
[also build test WARNING on next-20250731]
[cannot apply to akpm-mm/mm-nonmm-unstable shuah-kselftest/next shuah-kselftest/fixes linus/master v6.16]
[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/Balbir-Singh/mm-zone_device-support-large-zone-device-private-folios/20250730-172600
base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
patch link: https://lore.kernel.org/r/20250730092139.3890844-4-balbirs%40nvidia.com
patch subject: [v2 03/11] mm/migrate_device: THP migration of zone device pages
config: x86_64-randconfig-122-20250731 (https://download.01.org/0day-ci/archive/20250731/202507312342.dmLxVgli-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14+deb12u1) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250731/202507312342.dmLxVgli-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/202507312342.dmLxVgli-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> mm/migrate_device.c:769:13: sparse: sparse: incorrect type in assignment (different base types) @@ expected int [assigned] ret @@ got restricted vm_fault_t @@
mm/migrate_device.c:769:13: sparse: expected int [assigned] ret
mm/migrate_device.c:769:13: sparse: got restricted vm_fault_t
mm/migrate_device.c:130:25: sparse: sparse: context imbalance in 'migrate_vma_collect_huge_pmd' - unexpected unlock
mm/migrate_device.c:815:16: sparse: sparse: context imbalance in 'migrate_vma_insert_huge_pmd_page' - different lock contexts for basic block
vim +769 mm/migrate_device.c
689
690 #ifdef CONFIG_ARCH_ENABLE_THP_MIGRATION
691 /**
692 * migrate_vma_insert_huge_pmd_page: Insert a huge folio into @migrate->vma->vm_mm
693 * at @addr. folio is already allocated as a part of the migration process with
694 * large page.
695 *
696 * @folio needs to be initialized and setup after it's allocated. The code bits
697 * here follow closely the code in __do_huge_pmd_anonymous_page(). This API does
698 * not support THP zero pages.
699 *
700 * @migrate: migrate_vma arguments
701 * @addr: address where the folio will be inserted
702 * @folio: folio to be inserted at @addr
703 * @src: src pfn which is being migrated
704 * @pmdp: pointer to the pmd
705 */
706 static int migrate_vma_insert_huge_pmd_page(struct migrate_vma *migrate,
707 unsigned long addr,
708 struct page *page,
709 unsigned long *src,
710 pmd_t *pmdp)
711 {
712 struct vm_area_struct *vma = migrate->vma;
713 gfp_t gfp = vma_thp_gfp_mask(vma);
714 struct folio *folio = page_folio(page);
715 int ret;
716 spinlock_t *ptl;
717 pgtable_t pgtable;
718 pmd_t entry;
719 bool flush = false;
720 unsigned long i;
721
722 VM_WARN_ON_FOLIO(!folio, folio);
723 VM_WARN_ON_ONCE(!pmd_none(*pmdp) && !is_huge_zero_pmd(*pmdp));
724
725 if (!thp_vma_suitable_order(vma, addr, HPAGE_PMD_ORDER))
726 return -EINVAL;
727
728 ret = anon_vma_prepare(vma);
729 if (ret)
730 return ret;
731
732 folio_set_order(folio, HPAGE_PMD_ORDER);
733 folio_set_large_rmappable(folio);
734
735 if (mem_cgroup_charge(folio, migrate->vma->vm_mm, gfp)) {
736 count_vm_event(THP_FAULT_FALLBACK);
737 count_mthp_stat(HPAGE_PMD_ORDER, MTHP_STAT_ANON_FAULT_FALLBACK_CHARGE);
738 ret = -ENOMEM;
739 goto abort;
740 }
741
742 __folio_mark_uptodate(folio);
743
744 pgtable = pte_alloc_one(vma->vm_mm);
745 if (unlikely(!pgtable))
746 goto abort;
747
748 if (folio_is_device_private(folio)) {
749 swp_entry_t swp_entry;
750
751 if (vma->vm_flags & VM_WRITE)
752 swp_entry = make_writable_device_private_entry(
753 page_to_pfn(page));
754 else
755 swp_entry = make_readable_device_private_entry(
756 page_to_pfn(page));
757 entry = swp_entry_to_pmd(swp_entry);
758 } else {
759 if (folio_is_zone_device(folio) &&
760 !folio_is_device_coherent(folio)) {
761 goto abort;
762 }
763 entry = folio_mk_pmd(folio, vma->vm_page_prot);
764 if (vma->vm_flags & VM_WRITE)
765 entry = pmd_mkwrite(pmd_mkdirty(entry), vma);
766 }
767
768 ptl = pmd_lock(vma->vm_mm, pmdp);
> 769 ret = check_stable_address_space(vma->vm_mm);
770 if (ret)
771 goto abort;
772
773 /*
774 * Check for userfaultfd but do not deliver the fault. Instead,
775 * just back off.
776 */
777 if (userfaultfd_missing(vma))
778 goto unlock_abort;
779
780 if (!pmd_none(*pmdp)) {
781 if (!is_huge_zero_pmd(*pmdp))
782 goto unlock_abort;
783 flush = true;
784 } else if (!pmd_none(*pmdp))
785 goto unlock_abort;
786
787 add_mm_counter(vma->vm_mm, MM_ANONPAGES, HPAGE_PMD_NR);
788 folio_add_new_anon_rmap(folio, vma, addr, RMAP_EXCLUSIVE);
789 if (!folio_is_zone_device(folio))
790 folio_add_lru_vma(folio, vma);
791 folio_get(folio);
792
793 if (flush) {
794 pte_free(vma->vm_mm, pgtable);
795 flush_cache_page(vma, addr, addr + HPAGE_PMD_SIZE);
796 pmdp_invalidate(vma, addr, pmdp);
797 } else {
798 pgtable_trans_huge_deposit(vma->vm_mm, pmdp, pgtable);
799 mm_inc_nr_ptes(vma->vm_mm);
800 }
801 set_pmd_at(vma->vm_mm, addr, pmdp, entry);
802 update_mmu_cache_pmd(vma, addr, pmdp);
803
804 spin_unlock(ptl);
805
806 count_vm_event(THP_FAULT_ALLOC);
807 count_mthp_stat(HPAGE_PMD_ORDER, MTHP_STAT_ANON_FAULT_ALLOC);
808 count_memcg_event_mm(vma->vm_mm, THP_FAULT_ALLOC);
809
810 return 0;
811
812 unlock_abort:
813 spin_unlock(ptl);
814 abort:
815 for (i = 0; i < HPAGE_PMD_NR; i++)
816 src[i] &= ~MIGRATE_PFN_MIGRATE;
817 return 0;
818 }
819 #else /* !CONFIG_ARCH_ENABLE_THP_MIGRATION */
820 static int migrate_vma_insert_huge_pmd_page(struct migrate_vma *migrate,
821 unsigned long addr,
822 struct page *page,
823 unsigned long *src,
824 pmd_t *pmdp)
825 {
826 return 0;
827 }
828 #endif
829
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2025-07-31 16:20 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-30 9:21 [v2 00/11] THP support for zone device page migration Balbir Singh
2025-07-30 9:21 ` [v2 01/11] mm/zone_device: support large zone device private folios Balbir Singh
2025-07-30 9:50 ` David Hildenbrand
2025-08-04 23:43 ` Balbir Singh
2025-08-05 4:22 ` Balbir Singh
2025-08-05 10:57 ` David Hildenbrand
2025-08-05 11:01 ` Balbir Singh
2025-08-05 12:58 ` David Hildenbrand
2025-08-05 21:15 ` Matthew Brost
2025-08-06 12:19 ` Balbir Singh
2025-07-30 9:21 ` [v2 02/11] mm/thp: zone_device awareness in THP handling code Balbir Singh
2025-07-30 11:16 ` Mika Penttilä
2025-07-30 11:27 ` Zi Yan
2025-07-30 11:30 ` Zi Yan
2025-07-30 11:42 ` Mika Penttilä
2025-07-30 12:08 ` Mika Penttilä
2025-07-30 12:25 ` Zi Yan
2025-07-30 12:49 ` Mika Penttilä
2025-07-30 15:10 ` Zi Yan
2025-07-30 15:40 ` Mika Penttilä
2025-07-30 15:58 ` Zi Yan
2025-07-30 16:29 ` Mika Penttilä
2025-07-31 7:15 ` David Hildenbrand
2025-07-31 8:39 ` Balbir Singh
2025-07-31 11:26 ` Zi Yan
2025-07-31 12:32 ` David Hildenbrand
2025-07-31 13:34 ` Zi Yan
2025-07-31 19:09 ` David Hildenbrand
2025-08-01 0:49 ` Balbir Singh
2025-08-01 1:09 ` Zi Yan
2025-08-01 7:01 ` David Hildenbrand
2025-08-01 1:16 ` Mika Penttilä
2025-08-01 4:44 ` Balbir Singh
2025-08-01 5:57 ` Balbir Singh
2025-08-01 6:01 ` Mika Penttilä
2025-08-01 7:04 ` David Hildenbrand
2025-08-01 8:01 ` Balbir Singh
2025-08-01 8:46 ` David Hildenbrand
2025-08-01 11:10 ` Zi Yan
2025-08-01 12:20 ` Mika Penttilä
2025-08-01 12:28 ` Zi Yan
2025-08-02 1:17 ` Balbir Singh
2025-08-02 10:37 ` Balbir Singh
2025-08-02 12:13 ` Mika Penttilä
2025-08-04 22:46 ` Balbir Singh
2025-08-04 23:26 ` Mika Penttilä
2025-08-05 4:10 ` Balbir Singh
2025-08-05 4:24 ` Mika Penttilä
2025-08-05 5:19 ` Mika Penttilä
2025-08-05 10:27 ` Balbir Singh
2025-08-05 10:35 ` Mika Penttilä
2025-08-05 10:36 ` Balbir Singh
2025-08-05 10:46 ` Mika Penttilä
2025-07-30 20:05 ` kernel test robot
2025-07-30 9:21 ` [v2 03/11] mm/migrate_device: THP migration of zone device pages Balbir Singh
2025-07-31 16:19 ` kernel test robot [this message]
2025-07-30 9:21 ` [v2 04/11] mm/memory/fault: add support for zone device THP fault handling Balbir Singh
2025-07-30 9:21 ` [v2 05/11] lib/test_hmm: test cases and support for zone device private THP Balbir Singh
2025-07-31 11:17 ` kernel test robot
2025-07-30 9:21 ` [v2 06/11] mm/memremap: add folio_split support Balbir Singh
2025-07-30 9:21 ` [v2 07/11] mm/thp: add split during migration support Balbir Singh
2025-07-31 10:04 ` kernel test robot
2025-07-30 9:21 ` [v2 08/11] lib/test_hmm: add test case for split pages Balbir Singh
2025-07-30 9:21 ` [v2 09/11] selftests/mm/hmm-tests: new tests for zone device THP migration Balbir Singh
2025-07-30 9:21 ` [v2 10/11] gpu/drm/nouveau: add THP migration support Balbir Singh
2025-07-30 9:21 ` [v2 11/11] selftests/mm/hmm-tests: new throughput tests including THP Balbir Singh
2025-07-30 11:30 ` [v2 00/11] THP support for zone device page migration David Hildenbrand
2025-07-30 23:18 ` Alistair Popple
2025-07-31 8:41 ` Balbir Singh
2025-07-31 8:56 ` David Hildenbrand
2025-08-05 21:34 ` Matthew Brost
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=202507312342.dmLxVgli-lkp@intel.com \
--to=lkp@intel.com \
--cc=airlied@gmail.com \
--cc=apopple@nvidia.com \
--cc=balbirs@nvidia.com \
--cc=baohua@kernel.org \
--cc=baolin.wang@linux.alibaba.com \
--cc=dakr@kernel.org \
--cc=david@redhat.com \
--cc=donettom@linux.ibm.com \
--cc=francois.dugast@intel.com \
--cc=jane.chu@oracle.com \
--cc=jglisse@redhat.com \
--cc=kherbst@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lyude@redhat.com \
--cc=matthew.brost@intel.com \
--cc=mpenttil@redhat.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=peterx@redhat.com \
--cc=rcampbell@nvidia.com \
--cc=ryan.roberts@arm.com \
--cc=simona@ffwll.ch \
--cc=skhan@linuxfoundation.org \
--cc=wangkefeng.wang@huawei.com \
--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.