* Re: [PATCH v4 5/5] Drivers: hv: Add support for movable memory regions
[not found] <175976319844.16834.4747024333732752980.stgit@skinsburskii-cloud-desktop.internal.cloudapp.net>
@ 2025-10-10 17:48 ` kernel test robot
2025-10-11 1:12 ` kernel test robot
1 sibling, 0 replies; 2+ messages in thread
From: kernel test robot @ 2025-10-10 17:48 UTC (permalink / raw)
To: Stanislav Kinsburskii, kys, haiyangz, wei.liu, decui
Cc: llvm, oe-kbuild-all, linux-hyperv, linux-kernel
Hi Stanislav,
kernel test robot noticed the following build warnings:
[auto build test WARNING on linus/master]
[also build test WARNING on next-20251010]
[cannot apply to v6.17]
[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/Stanislav-Kinsburskii/Drivers-hv-Refactor-and-rename-memory-region-handling-functions/20251010-111917
base: linus/master
patch link: https://lore.kernel.org/r/175976319844.16834.4747024333732752980.stgit%40skinsburskii-cloud-desktop.internal.cloudapp.net
patch subject: [PATCH v4 5/5] Drivers: hv: Add support for movable memory regions
config: x86_64-randconfig-006-20251010 (https://download.01.org/0day-ci/archive/20251011/202510110134.RmOV83Fz-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251011/202510110134.RmOV83Fz-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/202510110134.RmOV83Fz-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/hv/mshv_root_main.c:1410:11: warning: variable 'ret' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
1410 | else if (!mutex_trylock(®ion->mutex))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/hv/mshv_root_main.c:1434:12: note: uninitialized use occurs here
1434 | WARN_ONCE(ret,
| ^~~
include/asm-generic/bug.h:152:18: note: expanded from macro 'WARN_ONCE'
152 | DO_ONCE_LITE_IF(condition, WARN, 1, format)
| ^~~~~~~~~
include/linux/once_lite.h:28:27: note: expanded from macro 'DO_ONCE_LITE_IF'
28 | bool __ret_do_once = !!(condition); \
| ^~~~~~~~~
drivers/hv/mshv_root_main.c:1410:7: note: remove the 'if' if its condition is always false
1410 | else if (!mutex_trylock(®ion->mutex))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1411 | goto out_fail;
| ~~~~~~~~~~~~~
drivers/hv/mshv_root_main.c:1406:9: note: initialize the variable 'ret' to silence this warning
1406 | int ret;
| ^
| = 0
1 warning generated.
vim +1410 drivers/hv/mshv_root_main.c
1377
1378 /**
1379 * mshv_region_interval_invalidate - Invalidate a range of memory region
1380 * @mni: Pointer to the mmu_interval_notifier structure
1381 * @range: Pointer to the mmu_notifier_range structure
1382 * @cur_seq: Current sequence number for the interval notifier
1383 *
1384 * This function invalidates a memory region by remapping its pages with
1385 * no access permissions. It locks the region's mutex to ensure thread safety
1386 * and updates the sequence number for the interval notifier. If the range
1387 * is blockable, it uses a blocking lock; otherwise, it attempts a non-blocking
1388 * lock and returns false if unsuccessful.
1389 *
1390 * NOTE: Failure to invalidate a region is a serious error, as the pages will
1391 * be considered freed while they are still mapped by the hypervisor.
1392 * Any attempt to access such pages will likely crash the system.
1393 *
1394 * Return: true if the region was successfully invalidated, false otherwise.
1395 */
1396 static bool
1397 mshv_region_interval_invalidate(struct mmu_interval_notifier *mni,
1398 const struct mmu_notifier_range *range,
1399 unsigned long cur_seq)
1400 {
1401 struct mshv_mem_region *region = container_of(mni,
1402 struct mshv_mem_region,
1403 mni);
1404 u64 page_offset, page_count;
1405 unsigned long mstart, mend;
1406 int ret;
1407
1408 if (mmu_notifier_range_blockable(range))
1409 mutex_lock(®ion->mutex);
> 1410 else if (!mutex_trylock(®ion->mutex))
1411 goto out_fail;
1412
1413 mmu_interval_set_seq(mni, cur_seq);
1414
1415 mstart = max(range->start, region->start_uaddr);
1416 mend = min(range->end, region->start_uaddr +
1417 (region->nr_pages << HV_HYP_PAGE_SHIFT));
1418
1419 page_offset = HVPFN_DOWN(mstart - region->start_uaddr);
1420 page_count = HVPFN_DOWN(mend - mstart);
1421
1422 ret = mshv_region_remap_pages(region, HV_MAP_GPA_NO_ACCESS,
1423 page_offset, page_count);
1424 if (ret)
1425 goto out_fail;
1426
1427 mshv_region_invalidate_pages(region, page_offset, page_count);
1428
1429 mutex_unlock(®ion->mutex);
1430
1431 return true;
1432
1433 out_fail:
1434 WARN_ONCE(ret,
1435 "Failed to invalidate region %#llx-%#llx (range %#lx-%#lx, event: %u, pages %#llx-%#llx, mm: %#llx): %d\n",
1436 region->start_uaddr,
1437 region->start_uaddr + (region->nr_pages << HV_HYP_PAGE_SHIFT),
1438 range->start, range->end, range->event,
1439 page_offset, page_offset + page_count - 1, (u64)range->mm, ret);
1440 return false;
1441 }
1442
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH v4 5/5] Drivers: hv: Add support for movable memory regions
[not found] <175976319844.16834.4747024333732752980.stgit@skinsburskii-cloud-desktop.internal.cloudapp.net>
2025-10-10 17:48 ` [PATCH v4 5/5] Drivers: hv: Add support for movable memory regions kernel test robot
@ 2025-10-11 1:12 ` kernel test robot
1 sibling, 0 replies; 2+ messages in thread
From: kernel test robot @ 2025-10-11 1:12 UTC (permalink / raw)
To: Stanislav Kinsburskii, kys, haiyangz, wei.liu, decui
Cc: llvm, oe-kbuild-all, linux-hyperv, linux-kernel
Hi Stanislav,
kernel test robot noticed the following build errors:
[auto build test ERROR on linus/master]
[also build test ERROR on next-20251010]
[cannot apply to v6.17]
[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/Stanislav-Kinsburskii/Drivers-hv-Refactor-and-rename-memory-region-handling-functions/20251010-111917
base: linus/master
patch link: https://lore.kernel.org/r/175976319844.16834.4747024333732752980.stgit%40skinsburskii-cloud-desktop.internal.cloudapp.net
patch subject: [PATCH v4 5/5] Drivers: hv: Add support for movable memory regions
config: x86_64-buildonly-randconfig-001-20251011 (https://download.01.org/0day-ci/archive/20251011/202510110819.km2ehSaB-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251011/202510110819.km2ehSaB-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/202510110819.km2ehSaB-lkp@intel.com/
All errors (new ones prefixed by >>):
>> mm/hmm.c:667:7: error: call to undeclared function 'mmu_interval_check_retry'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
667 | if (mmu_interval_check_retry(range->notifier,
| ^
1 error generated.
vim +/mmu_interval_check_retry +667 mm/hmm.c
7b86ac3371b70c3 Christoph Hellwig 2019-08-28 634
9a4903e49e495bf Christoph Hellwig 2019-07-25 635 /**
9a4903e49e495bf Christoph Hellwig 2019-07-25 636 * hmm_range_fault - try to fault some address in a virtual address range
f970b977e068aa5 Jason Gunthorpe 2020-03-27 637 * @range: argument structure
9a4903e49e495bf Christoph Hellwig 2019-07-25 638 *
be957c886d92aa9 Jason Gunthorpe 2020-05-01 639 * Returns 0 on success or one of the following error codes:
73231612dc7c907 Jérôme Glisse 2019-05-13 640 *
9a4903e49e495bf Christoph Hellwig 2019-07-25 641 * -EINVAL: Invalid arguments or mm or virtual address is in an invalid vma
9a4903e49e495bf Christoph Hellwig 2019-07-25 642 * (e.g., device file vma).
73231612dc7c907 Jérôme Glisse 2019-05-13 643 * -ENOMEM: Out of memory.
9a4903e49e495bf Christoph Hellwig 2019-07-25 644 * -EPERM: Invalid permission (e.g., asking for write and range is read
9a4903e49e495bf Christoph Hellwig 2019-07-25 645 * only).
9a4903e49e495bf Christoph Hellwig 2019-07-25 646 * -EBUSY: The range has been invalidated and the caller needs to wait for
9a4903e49e495bf Christoph Hellwig 2019-07-25 647 * the invalidation to finish.
f970b977e068aa5 Jason Gunthorpe 2020-03-27 648 * -EFAULT: A page was requested to be valid and could not be made valid
f970b977e068aa5 Jason Gunthorpe 2020-03-27 649 * ie it has no backing VMA or it is illegal to access
74eee180b935fcb Jérôme Glisse 2017-09-08 650 *
f970b977e068aa5 Jason Gunthorpe 2020-03-27 651 * This is similar to get_user_pages(), except that it can read the page tables
f970b977e068aa5 Jason Gunthorpe 2020-03-27 652 * without mutating them (ie causing faults).
74eee180b935fcb Jérôme Glisse 2017-09-08 653 */
be957c886d92aa9 Jason Gunthorpe 2020-05-01 654 int hmm_range_fault(struct hmm_range *range)
74eee180b935fcb Jérôme Glisse 2017-09-08 655 {
d28c2c9a487708b Ralph Campbell 2019-11-04 656 struct hmm_vma_walk hmm_vma_walk = {
d28c2c9a487708b Ralph Campbell 2019-11-04 657 .range = range,
d28c2c9a487708b Ralph Campbell 2019-11-04 658 .last = range->start,
d28c2c9a487708b Ralph Campbell 2019-11-04 659 };
a22dd506400d0f4 Jason Gunthorpe 2019-11-12 660 struct mm_struct *mm = range->notifier->mm;
74eee180b935fcb Jérôme Glisse 2017-09-08 661 int ret;
74eee180b935fcb Jérôme Glisse 2017-09-08 662
42fc541404f2497 Michel Lespinasse 2020-06-08 663 mmap_assert_locked(mm);
74eee180b935fcb Jérôme Glisse 2017-09-08 664
a3e0d41c2b1f86b Jérôme Glisse 2019-05-13 665 do {
a3e0d41c2b1f86b Jérôme Glisse 2019-05-13 666 /* If range is no longer valid force retry. */
a22dd506400d0f4 Jason Gunthorpe 2019-11-12 @667 if (mmu_interval_check_retry(range->notifier,
a22dd506400d0f4 Jason Gunthorpe 2019-11-12 668 range->notifier_seq))
2bcbeaefde2f038 Christoph Hellwig 2019-07-24 669 return -EBUSY;
d28c2c9a487708b Ralph Campbell 2019-11-04 670 ret = walk_page_range(mm, hmm_vma_walk.last, range->end,
7b86ac3371b70c3 Christoph Hellwig 2019-08-28 671 &hmm_walk_ops, &hmm_vma_walk);
be957c886d92aa9 Jason Gunthorpe 2020-05-01 672 /*
be957c886d92aa9 Jason Gunthorpe 2020-05-01 673 * When -EBUSY is returned the loop restarts with
be957c886d92aa9 Jason Gunthorpe 2020-05-01 674 * hmm_vma_walk.last set to an address that has not been stored
be957c886d92aa9 Jason Gunthorpe 2020-05-01 675 * in pfns. All entries < last in the pfn array are set to their
be957c886d92aa9 Jason Gunthorpe 2020-05-01 676 * output, and all >= are still at their input values.
be957c886d92aa9 Jason Gunthorpe 2020-05-01 677 */
d28c2c9a487708b Ralph Campbell 2019-11-04 678 } while (ret == -EBUSY);
73231612dc7c907 Jérôme Glisse 2019-05-13 679 return ret;
74eee180b935fcb Jérôme Glisse 2017-09-08 680 }
73231612dc7c907 Jérôme Glisse 2019-05-13 681 EXPORT_SYMBOL(hmm_range_fault);
8cad47130566123 Leon Romanovsky 2025-04-28 682
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-10-11 1:12 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <175976319844.16834.4747024333732752980.stgit@skinsburskii-cloud-desktop.internal.cloudapp.net>
2025-10-10 17:48 ` [PATCH v4 5/5] Drivers: hv: Add support for movable memory regions kernel test robot
2025-10-11 1:12 ` kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox