[PATCH 3/3] vmw_balloon: open-code vmballoon_compaction_init()

Nadav Amit posted 3 patches 3 years, 6 months ago
[PATCH 3/3] vmw_balloon: open-code vmballoon_compaction_init()
Posted by Nadav Amit 3 years, 6 months ago
From: Nadav Amit <namit@vmware.com>

Following commit 68f2736a85832 ("mm: Convert all PageMovable users to
movable_operations"), the code of vmballoon_compaction_init() is very
simple and does not worth a separate function.

Instead, open code vmballoon_compaction_init. As migratepage is always
defined, use IS_ENABLED(), which makes the code easier to read. No
functional change is intended.

Signed-off-by: Nadav Amit <namit@vmware.com>
---
 drivers/misc/vmw_balloon.c | 26 +++-----------------------
 1 file changed, 3 insertions(+), 23 deletions(-)

diff --git a/drivers/misc/vmw_balloon.c b/drivers/misc/vmw_balloon.c
index 762442b9ece8..46212cd09854 100644
--- a/drivers/misc/vmw_balloon.c
+++ b/drivers/misc/vmw_balloon.c
@@ -1848,28 +1848,6 @@ static int vmballoon_migratepage(struct balloon_dev_info *b_dev_info,
 	return ret;
 }
 
-/**
- * vmballoon_compaction_init() - initialized compaction for the balloon.
- *
- * @b: pointer to the balloon.
- *
- * If during the initialization a failure occurred, this function does not
- * perform cleanup. The caller must call vmballoon_compaction_deinit() in this
- * case.
- *
- * Return: zero on success or error code on failure.
- */
-static __init void vmballoon_compaction_init(struct vmballoon *b)
-{
-	b->b_dev_info.migratepage = vmballoon_migratepage;
-}
-
-#else /* CONFIG_BALLOON_COMPACTION */
-static inline void vmballoon_compaction_init(struct vmballoon *b)
-{
-}
-#endif /* CONFIG_BALLOON_COMPACTION */
-
 static int __init vmballoon_init(void)
 {
 	int error;
@@ -1909,7 +1887,9 @@ static int __init vmballoon_init(void)
 	 * balloon_devinfo_init() .
 	 */
 	balloon_devinfo_init(&balloon.b_dev_info);
-	vmballoon_compaction_init(&balloon);
+
+	if (IS_ENABLED(CONFIG_BALLOON_COMPACTION))
+		b->b_dev_info.migratepage = vmballoon_migratepage;
 
 	queue_delayed_work(system_freezable_wq, &balloon.dwork, 0);
 
-- 
2.25.1
Re: [PATCH 3/3] vmw_balloon: open-code vmballoon_compaction_init()
Posted by David Hildenbrand 3 years, 6 months ago
On 13.09.22 11:43, Nadav Amit wrote:
> From: Nadav Amit <namit@vmware.com>
> 
> Following commit 68f2736a85832 ("mm: Convert all PageMovable users to
> movable_operations"), the code of vmballoon_compaction_init() is very
> simple and does not worth a separate function.
> 
> Instead, open code vmballoon_compaction_init. As migratepage is always
> defined, use IS_ENABLED(), which makes the code easier to read. No
> functional change is intended.
> 
> Signed-off-by: Nadav Amit <namit@vmware.com>
> ---

Reviewed-by: David Hildenbrand <david@redhat.com>

-- 
Thanks,

David / dhildenb
Re: [PATCH 3/3] vmw_balloon: open-code vmballoon_compaction_init()
Posted by kernel test robot 3 years, 6 months ago
Hi Nadav,

I love your patch! Yet something to improve:

[auto build test ERROR on char-misc/char-misc-testing]
[also build test ERROR on linus/master v6.0-rc5 next-20220914]
[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/Nadav-Amit/vmw_balloon-misc-fixes-and-enhancements/20220914-021333
base:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git ceecbbddbf549fe0b7ffa3804a6e255b3360030f
config: i386-randconfig-a012-20220912 (https://download.01.org/0day-ci/archive/20220915/202209150729.vb9gopf2-lkp@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1)
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/aa1f38765dd703cbeb3450454d0b5b2c7f5a8f8d
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Nadav-Amit/vmw_balloon-misc-fixes-and-enhancements/20220914-021333
        git checkout aa1f38765dd703cbeb3450454d0b5b2c7f5a8f8d
        # 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=i386 SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

>> drivers/misc/vmw_balloon.c:1732:2: error: unterminated conditional directive
   #ifdef CONFIG_BALLOON_COMPACTION
    ^
   1 error generated.


vim +1732 drivers/misc/vmw_balloon.c

453dc65931915ab drivers/misc/vmware_balloon.c Dmitry Torokhov 2010-04-23  1730  
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1731  
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25 @1732  #ifdef CONFIG_BALLOON_COMPACTION
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1733  /**
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1734   * vmballoon_migratepage() - migrates a balloon page.
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1735   * @b_dev_info: balloon device information descriptor.
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1736   * @newpage: the page to which @page should be migrated.
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1737   * @page: a ballooned page that should be migrated.
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1738   * @mode: migration mode, ignored.
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1739   *
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1740   * This function is really open-coded, but that is according to the interface
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1741   * that balloon_compaction provides.
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1742   *
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1743   * Return: zero on success, -EAGAIN when migration cannot be performed
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1744   *	   momentarily, and -EBUSY if migration failed and should be retried
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1745   *	   with that specific page.
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1746   */
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1747  static int vmballoon_migratepage(struct balloon_dev_info *b_dev_info,
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1748  				 struct page *newpage, struct page *page,
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1749  				 enum migrate_mode mode)
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1750  {
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1751  	unsigned long status, flags;
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1752  	struct vmballoon *b;
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1753  	int ret;
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1754  
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1755  	b = container_of(b_dev_info, struct vmballoon, b_dev_info);
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1756  
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1757  	/*
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1758  	 * If the semaphore is taken, there is ongoing configuration change
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1759  	 * (i.e., balloon reset), so try again.
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1760  	 */
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1761  	if (!down_read_trylock(&b->conf_sem))
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1762  		return -EAGAIN;
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1763  
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1764  	spin_lock(&b->comm_lock);
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1765  	/*
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1766  	 * We must start by deflating and not inflating, as otherwise the
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1767  	 * hypervisor may tell us that it has enough memory and the new page is
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1768  	 * not needed. Since the old page is isolated, we cannot use the list
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1769  	 * interface to unlock it, as the LRU field is used for isolation.
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1770  	 * Instead, we use the native interface directly.
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1771  	 */
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1772  	vmballoon_add_page(b, 0, page);
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1773  	status = vmballoon_lock_op(b, 1, VMW_BALLOON_4K_PAGE,
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1774  				   VMW_BALLOON_DEFLATE);
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1775  
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1776  	if (status == VMW_BALLOON_SUCCESS)
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1777  		status = vmballoon_status_page(b, 0, &page);
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1778  
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1779  	/*
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1780  	 * If a failure happened, let the migration mechanism know that it
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1781  	 * should not retry.
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1782  	 */
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1783  	if (status != VMW_BALLOON_SUCCESS) {
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1784  		spin_unlock(&b->comm_lock);
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1785  		ret = -EBUSY;
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1786  		goto out_unlock;
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1787  	}
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1788  
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1789  	/*
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1790  	 * The page is isolated, so it is safe to delete it without holding
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1791  	 * @pages_lock . We keep holding @comm_lock since we will need it in a
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1792  	 * second.
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1793  	 */
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1794  	balloon_page_delete(page);
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1795  
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1796  	put_page(page);
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1797  
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1798  	/* Inflate */
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1799  	vmballoon_add_page(b, 0, newpage);
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1800  	status = vmballoon_lock_op(b, 1, VMW_BALLOON_4K_PAGE,
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1801  				   VMW_BALLOON_INFLATE);
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1802  
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1803  	if (status == VMW_BALLOON_SUCCESS)
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1804  		status = vmballoon_status_page(b, 0, &newpage);
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1805  
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1806  	spin_unlock(&b->comm_lock);
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1807  
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1808  	if (status != VMW_BALLOON_SUCCESS) {
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1809  		/*
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1810  		 * A failure happened. While we can deflate the page we just
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1811  		 * inflated, this deflation can also encounter an error. Instead
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1812  		 * we will decrease the size of the balloon to reflect the
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1813  		 * change and report failure.
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1814  		 */
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1815  		atomic64_dec(&b->size);
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1816  		ret = -EBUSY;
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1817  	} else {
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1818  		/*
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1819  		 * Success. Take a reference for the page, and we will add it to
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1820  		 * the list after acquiring the lock.
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1821  		 */
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1822  		get_page(newpage);
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1823  		ret = MIGRATEPAGE_SUCCESS;
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1824  	}
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1825  
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1826  	/* Update the balloon list under the @pages_lock */
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1827  	spin_lock_irqsave(&b->b_dev_info.pages_lock, flags);
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1828  
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1829  	/*
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1830  	 * On inflation success, we already took a reference for the @newpage.
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1831  	 * If we succeed just insert it to the list and update the statistics
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1832  	 * under the lock.
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1833  	 */
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1834  	if (ret == MIGRATEPAGE_SUCCESS) {
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1835  		balloon_page_insert(&b->b_dev_info, newpage);
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1836  		__count_vm_event(BALLOON_MIGRATE);
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1837  	}
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1838  
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1839  	/*
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1840  	 * We deflated successfully, so regardless to the inflation success, we
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1841  	 * need to reduce the number of isolated_pages.
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1842  	 */
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1843  	b->b_dev_info.isolated_pages--;
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1844  	spin_unlock_irqrestore(&b->b_dev_info.pages_lock, flags);
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1845  
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1846  out_unlock:
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1847  	up_read(&b->conf_sem);
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1848  	return ret;
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1849  }
83a8afa72e9c0a2 drivers/misc/vmw_balloon.c    Nadav Amit      2019-04-25  1850  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
Re: [PATCH 3/3] vmw_balloon: open-code vmballoon_compaction_init()
Posted by Nadav Amit 3 years, 6 months ago
On Sep 14, 2022, at 5:05 PM, kernel test robot <lkp@intel.com> wrote:

> ⚠ External Email
> 
> Hi Nadav,
> 
> I love your patch! Yet something to improve:

Ugh. Last minute change and my build was done without VMW_BALLOON.

Sorry. Will send v2.

Regards,
Nadav
Re: [PATCH 3/3] vmw_balloon: open-code vmballoon_compaction_init()
Posted by kernel test robot 3 years, 6 months ago
Hi Nadav,

I love your patch! Yet something to improve:

[auto build test ERROR on char-misc/char-misc-testing]
[also build test ERROR on linus/master v6.0-rc5 next-20220915]
[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/Nadav-Amit/vmw_balloon-misc-fixes-and-enhancements/20220914-021333
base:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git ceecbbddbf549fe0b7ffa3804a6e255b3360030f
config: x86_64-randconfig-a014 (https://download.01.org/0day-ci/archive/20220916/202209161512.GNTVEnlu-lkp@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1)
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/aa1f38765dd703cbeb3450454d0b5b2c7f5a8f8d
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Nadav-Amit/vmw_balloon-misc-fixes-and-enhancements/20220914-021333
        git checkout aa1f38765dd703cbeb3450454d0b5b2c7f5a8f8d
        # 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 where applicable
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

>> drivers/misc/vmw_balloon.c:1892:3: error: use of undeclared identifier 'b'
                   b->b_dev_info.migratepage = vmballoon_migratepage;
                   ^
   drivers/misc/vmw_balloon.c:1732:2: error: unterminated conditional directive
   #ifdef CONFIG_BALLOON_COMPACTION
    ^
   2 errors generated.


vim +/b +1892 drivers/misc/vmw_balloon.c

  1850	
  1851	static int __init vmballoon_init(void)
  1852	{
  1853		int error;
  1854	
  1855		/*
  1856		 * Check if we are running on VMware's hypervisor and bail out
  1857		 * if we are not.
  1858		 */
  1859		if (x86_hyper_type != X86_HYPER_VMWARE)
  1860			return -ENODEV;
  1861	
  1862		INIT_LIST_HEAD(&balloon.huge_pages);
  1863		spin_lock_init(&balloon.comm_lock);
  1864		init_rwsem(&balloon.conf_sem);
  1865		balloon.vmci_doorbell = VMCI_INVALID_HANDLE;
  1866		balloon.batch_page = NULL;
  1867		balloon.page = NULL;
  1868		balloon.reset_required = true;
  1869	
  1870		/*
  1871		 * Reset the balloon to check that it is indeed supported.
  1872		 */
  1873		error = vmballoon_reset(&balloon);
  1874		if (error) {
  1875			pr_err("memory ballooning is disabled");
  1876			goto fail;
  1877		}
  1878	
  1879		INIT_DELAYED_WORK(&balloon.dwork, vmballoon_work);
  1880	
  1881		error = vmballoon_register_shrinker(&balloon);
  1882		if (error)
  1883			goto fail;
  1884	
  1885		/*
  1886		 * Initialization of compaction must be done after the call to
  1887		 * balloon_devinfo_init() .
  1888		 */
  1889		balloon_devinfo_init(&balloon.b_dev_info);
  1890	
  1891		if (IS_ENABLED(CONFIG_BALLOON_COMPACTION))
> 1892			b->b_dev_info.migratepage = vmballoon_migratepage;
  1893	
  1894		queue_delayed_work(system_freezable_wq, &balloon.dwork, 0);
  1895	
  1896		vmballoon_debugfs_init(&balloon);
  1897	
  1898		return 0;
  1899	fail:
  1900		vmballoon_unregister_shrinker(&balloon);
  1901		return error;
  1902	}
  1903	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp