* [linux-next:master 7003/7050] include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
@ 2020-03-09 2:54 kbuild test robot
2020-03-10 0:53 ` Andrew Morton
2020-03-10 2:19 ` Alexander Duyck
0 siblings, 2 replies; 14+ messages in thread
From: kbuild test robot @ 2020-03-09 2:54 UTC (permalink / raw)
To: Andrew Morton; +Cc: kbuild-all, Linux Memory Management List
[-- Attachment #1: Type: text/plain, Size: 12833 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: b86a6a241b7c60ca7a6ca4fb3c0d2aedbbf2c1b6
commit: 120359931943d2b801ce51a1a045dcc0a5d1a55b [7003/7050] Merge branch 'akpm-current/current'
config: riscv-randconfig-a001-20200308 (attached as .config)
compiler: riscv64-linux-gcc (GCC) 7.5.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 120359931943d2b801ce51a1a045dcc0a5d1a55b
# save the attached .config to linux build tree
GCC_VERSION=7.5.0 make.cross ARCH=riscv
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
drivers/virtio/virtio_balloon.o: In function `leak_balloon':
drivers/virtio/virtio_balloon.c:281: undefined reference to `balloon_page_dequeue'
drivers/virtio/virtio_balloon.o: In function `__virtio_test_bit':
>> include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
drivers/virtio/virtio_balloon.o: In function `virtio_cread32':
include/linux/virtio_config.h:423: undefined reference to `balloon_page_alloc'
drivers/virtio/virtio_balloon.o: In function `fill_balloon':
>> drivers/virtio/virtio_balloon.c:233: undefined reference to `balloon_page_enqueue'
drivers/virtio/virtio_balloon.o: In function `__virtio_test_bit':
>> include/linux/virtio_config.h:113: undefined reference to `page_reporting_register'
drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_remove':
drivers/gpu/drm/virtio/virtgpu_drv.c:139: undefined reference to `drm_dev_unplug'
drivers/gpu/drm/virtio/virtgpu_drv.c:140: undefined reference to `drm_atomic_helper_shutdown'
drivers/gpu/drm/virtio/virtgpu_drv.c:141: undefined reference to `drm_dev_put'
drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_probe':
drivers/gpu/drm/virtio/virtgpu_drv.c:108: undefined reference to `drm_dev_alloc'
drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_pci_quirk':
drivers/gpu/drm/virtio/virtgpu_drv.c:93: undefined reference to `drm_dev_set_unique'
drivers/gpu/drm/virtio/virtgpu_drv.c:94: undefined reference to `drm_dev_put'
drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_probe':
drivers/gpu/drm/virtio/virtgpu_drv.c:119: undefined reference to `drm_dev_register'
drivers/gpu/drm/virtio/virtgpu_drv.o: In function `.LANCHOR0':
virtgpu_drv.c:(.data+0x188): undefined reference to `drm_gem_prime_handle_to_fd'
virtgpu_drv.c:(.data+0x190): undefined reference to `drm_gem_prime_fd_to_handle'
virtgpu_drv.c:(.data+0x1d8): undefined reference to `drm_gem_prime_mmap'
drivers/gpu/drm/virtio/virtgpu_drv.o:(.rodata+0x10): undefined reference to `drm_read'
drivers/gpu/drm/virtio/virtgpu_drv.o:(.rodata+0x48): undefined reference to `drm_poll'
drivers/gpu/drm/virtio/virtgpu_drv.o:(.rodata+0x50): undefined reference to `drm_ioctl'
drivers/gpu/drm/virtio/virtgpu_drv.o:(.rodata+0x60): undefined reference to `drm_gem_mmap'
drivers/gpu/drm/virtio/virtgpu_drv.o:(.rodata+0x70): undefined reference to `drm_open'
drivers/gpu/drm/virtio/virtgpu_drv.o:(.rodata+0x80): undefined reference to `drm_release'
drivers/crypto/virtio/virtio_crypto_core.o: In function `virtcrypto_clear_crypto_engines':
drivers/crypto/virtio/virtio_crypto_core.c:273: undefined reference to `crypto_engine_exit'
drivers/crypto/virtio/virtio_crypto_core.o: In function `virtcrypto_find_vqs':
drivers/crypto/virtio/virtio_crypto_core.c:95: undefined reference to `crypto_engine_alloc_init'
drivers/crypto/virtio/virtio_crypto_core.o: In function `virtcrypto_start_crypto_engines':
drivers/crypto/virtio/virtio_crypto_core.c:249: undefined reference to `crypto_engine_start'
drivers/crypto/virtio/virtio_crypto_core.o: In function `virtcrypto_clean_affinity':
drivers/crypto/virtio/virtio_crypto_core.c:135: undefined reference to `crypto_engine_exit'
drivers/gpu/drm/virtio/virtgpu_kms.o: In function `virtio_gpu_config_changed_work_func':
drivers/gpu/drm/virtio/virtgpu_kms.c:48: undefined reference to `drm_helper_hpd_irq_event'
drivers/gpu/drm/virtio/virtgpu_kms.o: In function `virtio_find_vqs':
include/linux/virtio_config.h:197: undefined reference to `__drm_err'
drivers/gpu/drm/virtio/virtgpu_kms.o: In function `virtio_gpu_init':
drivers/gpu/drm/virtio/virtgpu_kms.c:167: undefined reference to `__drm_err'
drivers/gpu/drm/virtio/virtgpu_kms.c:177: undefined reference to `__drm_err'
drivers/gpu/drm/virtio/virtgpu_kms.o: In function `virtio_gpu_get_capsets':
drivers/gpu/drm/virtio/virtgpu_kms.c:86: undefined reference to `__drm_err'
drivers/gpu/drm/virtio/virtgpu_kms.c:90: undefined reference to `__drm_err'
drivers/gpu/drm/virtio/virtgpu_gem.o: In function `virtio_gpu_gem_create':
drivers/gpu/drm/virtio/virtgpu_gem.c:46: undefined reference to `drm_gem_handle_create'
drivers/gpu/drm/virtio/virtgpu_gem.c:52: undefined reference to `drm_gem_object_put_unlocked'
drivers/gpu/drm/virtio/virtgpu_gem.c:48: undefined reference to `drm_gem_object_release'
drivers/gpu/drm/virtio/virtgpu_gem.o: In function `virtio_gpu_mode_dumb_mmap':
drivers/gpu/drm/virtio/virtgpu_gem.c:97: undefined reference to `drm_gem_object_lookup'
drivers/gpu/drm/virtio/virtgpu_gem.c:104: undefined reference to `drm_gem_object_put_unlocked'
drivers/gpu/drm/virtio/virtgpu_gem.o: In function `virtio_gpu_gem_object_close':
drivers/gpu/drm/virtio/virtgpu_gem.c:148: undefined reference to `drm_gem_lock_reservations'
drivers/gpu/drm/virtio/virtgpu_gem.o: In function `virtio_gpu_array_lock_resv':
drivers/gpu/drm/virtio/virtgpu_gem.c:213: undefined reference to `drm_gem_unlock_reservations'
drivers/gpu/drm/virtio/virtgpu_gem.o: In function `virtio_gpu_array_put_free':
drivers/gpu/drm/virtio/virtgpu_gem.c:238: undefined reference to `drm_gem_object_put_unlocked'
drivers/gpu/drm/virtio/virtgpu_gem.o: In function `virtio_gpu_array_from_handles':
drivers/gpu/drm/virtio/virtgpu_gem.c:171: undefined reference to `drm_gem_object_lookup'
drivers/gpu/drm/virtio/virtgpu_display.o: In function `vgdev_atomic_commit_tail':
drivers/gpu/drm/virtio/virtgpu_display.c:325: undefined reference to `drm_atomic_helper_commit_modeset_disables'
drivers/gpu/drm/virtio/virtgpu_display.c:326: undefined reference to `drm_atomic_helper_commit_modeset_enables'
drivers/gpu/drm/virtio/virtgpu_display.c:327: undefined reference to `drm_atomic_helper_commit_planes'
drivers/gpu/drm/virtio/virtgpu_display.c:329: undefined reference to `drm_atomic_helper_fake_vblank'
drivers/gpu/drm/virtio/virtgpu_display.c:330: undefined reference to `drm_atomic_helper_commit_hw_done'
drivers/gpu/drm/virtio/virtgpu_display.c:332: undefined reference to `drm_atomic_helper_wait_for_vblanks'
drivers/gpu/drm/virtio/virtgpu_display.c:333: undefined reference to `drm_atomic_helper_cleanup_planes'
drivers/gpu/drm/virtio/virtgpu_display.o: In function `virtio_gpu_conn_mode_valid':
drivers/gpu/drm/virtio/virtgpu_display.c:200: undefined reference to `__drm_dbg'
drivers/gpu/drm/virtio/virtgpu_display.o: In function `virtio_gpu_conn_destroy':
drivers/gpu/drm/virtio/virtgpu_display.c:230: undefined reference to `drm_connector_unregister'
drivers/gpu/drm/virtio/virtgpu_display.c:231: undefined reference to `drm_connector_cleanup'
drivers/gpu/drm/virtio/virtgpu_display.o: In function `virtio_gpu_conn_get_modes':
drivers/gpu/drm/virtio/virtgpu_display.c:156: undefined reference to `drm_add_edid_modes'
drivers/gpu/drm/virtio/virtgpu_display.c:163: undefined reference to `drm_add_modes_noedid'
drivers/gpu/drm/virtio/virtgpu_display.c:163: undefined reference to `drm_set_preferred_mode'
drivers/gpu/drm/virtio/virtgpu_display.c:180: undefined reference to `__drm_dbg'
drivers/gpu/drm/virtio/virtgpu_display.c:172: undefined reference to `drm_cvt_mode'
drivers/gpu/drm/virtio/virtgpu_display.c:174: undefined reference to `drm_mode_probed_add'
drivers/gpu/drm/virtio/virtgpu_display.o: In function `virtio_gpu_user_framebuffer_create':
drivers/gpu/drm/virtio/virtgpu_display.c:303: undefined reference to `drm_gem_object_lookup'
drivers/gpu/drm/virtio/virtgpu_display.o: In function `virtio_gpu_framebuffer_init':
drivers/gpu/drm/virtio/virtgpu_display.c:72: undefined reference to `drm_helper_mode_fill_fb_struct'
drivers/gpu/drm/virtio/virtgpu_display.c:74: undefined reference to `drm_framebuffer_init'
drivers/gpu/drm/virtio/virtgpu_display.o: In function `virtio_gpu_user_framebuffer_create':
drivers/gpu/drm/virtio/virtgpu_display.c:313: undefined reference to `drm_gem_object_put_unlocked'
drivers/gpu/drm/virtio/virtgpu_display.o: In function `virtio_gpu_modeset_init':
drivers/gpu/drm/virtio/virtgpu_display.c:350: undefined reference to `drm_mode_config_init'
drivers/gpu/drm/virtio/virtgpu_display.o: In function `vgdev_output_init':
drivers/gpu/drm/virtio/virtgpu_display.c:276: undefined reference to `drm_encoder_init'
drivers/gpu/drm/virtio/virtgpu_display.c:282: undefined reference to `drm_connector_attach_encoder'
drivers/gpu/drm/virtio/virtgpu_display.c:282: undefined reference to `drm_connector_register'
drivers/gpu/drm/virtio/virtgpu_display.c:266: undefined reference to `drm_crtc_init_with_planes'
drivers/gpu/drm/virtio/virtgpu_display.o: In function `drm_crtc_helper_add':
include/drm/drm_modeset_helper_vtables.h:510: undefined reference to `drm_connector_init'
drivers/gpu/drm/virtio/virtgpu_display.o: In function `drm_connector_helper_add':
include/drm/drm_modeset_helper_vtables.h:1092: undefined reference to `drm_connector_attach_edid_property'
drivers/gpu/drm/virtio/virtgpu_display.o: In function `vgdev_output_init':
drivers/gpu/drm/virtio/virtgpu_display.c:277: undefined reference to `drm_mode_config_reset'
drivers/gpu/drm/virtio/virtgpu_display.o: In function `virtio_gpu_modeset_fini':
drivers/gpu/drm/virtio/virtgpu_display.c:371: undefined reference to `drm_mode_config_cleanup'
drivers/gpu/drm/virtio/virtgpu_display.o: In function `.LANCHOR0':
drivers/gpu/drm/virtio/virtgpu_display.c:58: undefined reference to `drm_gem_fb_destroy'
drivers/gpu/drm/virtio/virtgpu_display.o: In function `.LANCHOR0':
virtgpu_display.c:(.rodata+0x8): undefined reference to `drm_gem_fb_create_handle'
vim +113 include/linux/virtio_config.h
ec3d41c4db4c21 Rusty Russell 2007-10-22 92
c45a6816c19dee Rusty Russell 2008-05-02 93 /* If driver didn't advertise the feature, it will never appear. */
c45a6816c19dee Rusty Russell 2008-05-02 94 void virtio_check_driver_offered_feature(const struct virtio_device *vdev,
c45a6816c19dee Rusty Russell 2008-05-02 95 unsigned int fbit);
c45a6816c19dee Rusty Russell 2008-05-02 96
c45a6816c19dee Rusty Russell 2008-05-02 97 /**
d4024af56f7c6c Michael S. Tsirkin 2014-11-27 98 * __virtio_test_bit - helper to test feature bits. For use by transports.
d4024af56f7c6c Michael S. Tsirkin 2014-11-27 99 * Devices should normally use virtio_has_feature,
d4024af56f7c6c Michael S. Tsirkin 2014-11-27 100 * which includes more checks.
c45a6816c19dee Rusty Russell 2008-05-02 101 * @vdev: the device
c45a6816c19dee Rusty Russell 2008-05-02 102 * @fbit: the feature bit
c45a6816c19dee Rusty Russell 2008-05-02 103 */
d4024af56f7c6c Michael S. Tsirkin 2014-11-27 104 static inline bool __virtio_test_bit(const struct virtio_device *vdev,
d4024af56f7c6c Michael S. Tsirkin 2014-11-27 105 unsigned int fbit)
d4024af56f7c6c Michael S. Tsirkin 2014-11-27 106 {
d4024af56f7c6c Michael S. Tsirkin 2014-11-27 107 /* Did you forget to fix assumptions on max features? */
d4024af56f7c6c Michael S. Tsirkin 2014-11-27 108 if (__builtin_constant_p(fbit))
d025477368792b Michael S. Tsirkin 2014-10-07 109 BUILD_BUG_ON(fbit >= 64);
d4024af56f7c6c Michael S. Tsirkin 2014-11-27 110 else
d025477368792b Michael S. Tsirkin 2014-10-07 111 BUG_ON(fbit >= 64);
d4024af56f7c6c Michael S. Tsirkin 2014-11-27 112
d025477368792b Michael S. Tsirkin 2014-10-07 @113 return vdev->features & BIT_ULL(fbit);
d4024af56f7c6c Michael S. Tsirkin 2014-11-27 114 }
d4024af56f7c6c Michael S. Tsirkin 2014-11-27 115
:::::: The code at line 113 was first introduced by commit
:::::: d025477368792b272802146a86e41f81a54d8a19 virtio: add support for 64 bit features.
:::::: TO: Michael S. Tsirkin <mst@redhat.com>
:::::: CC: Michael S. Tsirkin <mst@redhat.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 26036 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-next:master 7003/7050] include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
2020-03-09 2:54 [linux-next:master 7003/7050] include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister' kbuild test robot
@ 2020-03-10 0:53 ` Andrew Morton
2020-03-10 1:00 ` Alexander Duyck
2020-03-10 2:19 ` Alexander Duyck
1 sibling, 1 reply; 14+ messages in thread
From: Andrew Morton @ 2020-03-10 0:53 UTC (permalink / raw)
To: kbuild test robot
Cc: kbuild-all, Linux Memory Management List, Alexander Duyck
On Mon, 9 Mar 2020 10:54:03 +0800 kbuild test robot <lkp@intel.com> wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> head: b86a6a241b7c60ca7a6ca4fb3c0d2aedbbf2c1b6
> commit: 120359931943d2b801ce51a1a045dcc0a5d1a55b [7003/7050] Merge branch 'akpm-current/current'
> config: riscv-randconfig-a001-20200308 (attached as .config)
> compiler: riscv64-linux-gcc (GCC) 7.5.0
> reproduce:
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> git checkout 120359931943d2b801ce51a1a045dcc0a5d1a55b
> # save the attached .config to linux build tree
> GCC_VERSION=7.5.0 make.cross ARCH=riscv
>
> If you fix the issue, kindly add following tag
> Reported-by: kbuild test robot <lkp@intel.com>
>
> All errors (new ones prefixed by >>):
Thanks.
Alexander, could you please take a look?
> drivers/virtio/virtio_balloon.o: In function `leak_balloon':
> drivers/virtio/virtio_balloon.c:281: undefined reference to `balloon_page_dequeue'
> drivers/virtio/virtio_balloon.o: In function `__virtio_test_bit':
> >> include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
> drivers/virtio/virtio_balloon.o: In function `virtio_cread32':
> include/linux/virtio_config.h:423: undefined reference to `balloon_page_alloc'
> drivers/virtio/virtio_balloon.o: In function `fill_balloon':
> >> drivers/virtio/virtio_balloon.c:233: undefined reference to `balloon_page_enqueue'
> drivers/virtio/virtio_balloon.o: In function `__virtio_test_bit':
> >> include/linux/virtio_config.h:113: undefined reference to `page_reporting_register'
> drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_remove':
> drivers/gpu/drm/virtio/virtgpu_drv.c:139: undefined reference to `drm_dev_unplug'
> drivers/gpu/drm/virtio/virtgpu_drv.c:140: undefined reference to `drm_atomic_helper_shutdown'
> drivers/gpu/drm/virtio/virtgpu_drv.c:141: undefined reference to `drm_dev_put'
> drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_probe':
> drivers/gpu/drm/virtio/virtgpu_drv.c:108: undefined reference to `drm_dev_alloc'
> drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_pci_quirk':
> drivers/gpu/drm/virtio/virtgpu_drv.c:93: undefined reference to `drm_dev_set_unique'
> drivers/gpu/drm/virtio/virtgpu_drv.c:94: undefined reference to `drm_dev_put'
> drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_probe':
> drivers/gpu/drm/virtio/virtgpu_drv.c:119: undefined reference to `drm_dev_register'
> drivers/gpu/drm/virtio/virtgpu_drv.o: In function `.LANCHOR0':
> virtgpu_drv.c:(.data+0x188): undefined reference to `drm_gem_prime_handle_to_fd'
> virtgpu_drv.c:(.data+0x190): undefined reference to `drm_gem_prime_fd_to_handle'
> virtgpu_drv.c:(.data+0x1d8): undefined reference to `drm_gem_prime_mmap'
> drivers/gpu/drm/virtio/virtgpu_drv.o:(.rodata+0x10): undefined reference to `drm_read'
> drivers/gpu/drm/virtio/virtgpu_drv.o:(.rodata+0x48): undefined reference to `drm_poll'
> drivers/gpu/drm/virtio/virtgpu_drv.o:(.rodata+0x50): undefined reference to `drm_ioctl'
> drivers/gpu/drm/virtio/virtgpu_drv.o:(.rodata+0x60): undefined reference to `drm_gem_mmap'
> drivers/gpu/drm/virtio/virtgpu_drv.o:(.rodata+0x70): undefined reference to `drm_open'
> drivers/gpu/drm/virtio/virtgpu_drv.o:(.rodata+0x80): undefined reference to `drm_release'
> drivers/crypto/virtio/virtio_crypto_core.o: In function `virtcrypto_clear_crypto_engines':
> drivers/crypto/virtio/virtio_crypto_core.c:273: undefined reference to `crypto_engine_exit'
> drivers/crypto/virtio/virtio_crypto_core.o: In function `virtcrypto_find_vqs':
> drivers/crypto/virtio/virtio_crypto_core.c:95: undefined reference to `crypto_engine_alloc_init'
> drivers/crypto/virtio/virtio_crypto_core.o: In function `virtcrypto_start_crypto_engines':
> drivers/crypto/virtio/virtio_crypto_core.c:249: undefined reference to `crypto_engine_start'
> drivers/crypto/virtio/virtio_crypto_core.o: In function `virtcrypto_clean_affinity':
> drivers/crypto/virtio/virtio_crypto_core.c:135: undefined reference to `crypto_engine_exit'
> drivers/gpu/drm/virtio/virtgpu_kms.o: In function `virtio_gpu_config_changed_work_func':
> drivers/gpu/drm/virtio/virtgpu_kms.c:48: undefined reference to `drm_helper_hpd_irq_event'
> drivers/gpu/drm/virtio/virtgpu_kms.o: In function `virtio_find_vqs':
> include/linux/virtio_config.h:197: undefined reference to `__drm_err'
> drivers/gpu/drm/virtio/virtgpu_kms.o: In function `virtio_gpu_init':
> drivers/gpu/drm/virtio/virtgpu_kms.c:167: undefined reference to `__drm_err'
> drivers/gpu/drm/virtio/virtgpu_kms.c:177: undefined reference to `__drm_err'
> drivers/gpu/drm/virtio/virtgpu_kms.o: In function `virtio_gpu_get_capsets':
> drivers/gpu/drm/virtio/virtgpu_kms.c:86: undefined reference to `__drm_err'
> drivers/gpu/drm/virtio/virtgpu_kms.c:90: undefined reference to `__drm_err'
> drivers/gpu/drm/virtio/virtgpu_gem.o: In function `virtio_gpu_gem_create':
> drivers/gpu/drm/virtio/virtgpu_gem.c:46: undefined reference to `drm_gem_handle_create'
> drivers/gpu/drm/virtio/virtgpu_gem.c:52: undefined reference to `drm_gem_object_put_unlocked'
> drivers/gpu/drm/virtio/virtgpu_gem.c:48: undefined reference to `drm_gem_object_release'
> drivers/gpu/drm/virtio/virtgpu_gem.o: In function `virtio_gpu_mode_dumb_mmap':
> drivers/gpu/drm/virtio/virtgpu_gem.c:97: undefined reference to `drm_gem_object_lookup'
> drivers/gpu/drm/virtio/virtgpu_gem.c:104: undefined reference to `drm_gem_object_put_unlocked'
> drivers/gpu/drm/virtio/virtgpu_gem.o: In function `virtio_gpu_gem_object_close':
> drivers/gpu/drm/virtio/virtgpu_gem.c:148: undefined reference to `drm_gem_lock_reservations'
> drivers/gpu/drm/virtio/virtgpu_gem.o: In function `virtio_gpu_array_lock_resv':
> drivers/gpu/drm/virtio/virtgpu_gem.c:213: undefined reference to `drm_gem_unlock_reservations'
> drivers/gpu/drm/virtio/virtgpu_gem.o: In function `virtio_gpu_array_put_free':
> drivers/gpu/drm/virtio/virtgpu_gem.c:238: undefined reference to `drm_gem_object_put_unlocked'
> drivers/gpu/drm/virtio/virtgpu_gem.o: In function `virtio_gpu_array_from_handles':
> drivers/gpu/drm/virtio/virtgpu_gem.c:171: undefined reference to `drm_gem_object_lookup'
> drivers/gpu/drm/virtio/virtgpu_display.o: In function `vgdev_atomic_commit_tail':
> drivers/gpu/drm/virtio/virtgpu_display.c:325: undefined reference to `drm_atomic_helper_commit_modeset_disables'
> drivers/gpu/drm/virtio/virtgpu_display.c:326: undefined reference to `drm_atomic_helper_commit_modeset_enables'
> drivers/gpu/drm/virtio/virtgpu_display.c:327: undefined reference to `drm_atomic_helper_commit_planes'
> drivers/gpu/drm/virtio/virtgpu_display.c:329: undefined reference to `drm_atomic_helper_fake_vblank'
> drivers/gpu/drm/virtio/virtgpu_display.c:330: undefined reference to `drm_atomic_helper_commit_hw_done'
> drivers/gpu/drm/virtio/virtgpu_display.c:332: undefined reference to `drm_atomic_helper_wait_for_vblanks'
> drivers/gpu/drm/virtio/virtgpu_display.c:333: undefined reference to `drm_atomic_helper_cleanup_planes'
> drivers/gpu/drm/virtio/virtgpu_display.o: In function `virtio_gpu_conn_mode_valid':
> drivers/gpu/drm/virtio/virtgpu_display.c:200: undefined reference to `__drm_dbg'
> drivers/gpu/drm/virtio/virtgpu_display.o: In function `virtio_gpu_conn_destroy':
> drivers/gpu/drm/virtio/virtgpu_display.c:230: undefined reference to `drm_connector_unregister'
> drivers/gpu/drm/virtio/virtgpu_display.c:231: undefined reference to `drm_connector_cleanup'
> drivers/gpu/drm/virtio/virtgpu_display.o: In function `virtio_gpu_conn_get_modes':
> drivers/gpu/drm/virtio/virtgpu_display.c:156: undefined reference to `drm_add_edid_modes'
> drivers/gpu/drm/virtio/virtgpu_display.c:163: undefined reference to `drm_add_modes_noedid'
> drivers/gpu/drm/virtio/virtgpu_display.c:163: undefined reference to `drm_set_preferred_mode'
> drivers/gpu/drm/virtio/virtgpu_display.c:180: undefined reference to `__drm_dbg'
> drivers/gpu/drm/virtio/virtgpu_display.c:172: undefined reference to `drm_cvt_mode'
> drivers/gpu/drm/virtio/virtgpu_display.c:174: undefined reference to `drm_mode_probed_add'
> drivers/gpu/drm/virtio/virtgpu_display.o: In function `virtio_gpu_user_framebuffer_create':
> drivers/gpu/drm/virtio/virtgpu_display.c:303: undefined reference to `drm_gem_object_lookup'
> drivers/gpu/drm/virtio/virtgpu_display.o: In function `virtio_gpu_framebuffer_init':
> drivers/gpu/drm/virtio/virtgpu_display.c:72: undefined reference to `drm_helper_mode_fill_fb_struct'
> drivers/gpu/drm/virtio/virtgpu_display.c:74: undefined reference to `drm_framebuffer_init'
> drivers/gpu/drm/virtio/virtgpu_display.o: In function `virtio_gpu_user_framebuffer_create':
> drivers/gpu/drm/virtio/virtgpu_display.c:313: undefined reference to `drm_gem_object_put_unlocked'
> drivers/gpu/drm/virtio/virtgpu_display.o: In function `virtio_gpu_modeset_init':
> drivers/gpu/drm/virtio/virtgpu_display.c:350: undefined reference to `drm_mode_config_init'
> drivers/gpu/drm/virtio/virtgpu_display.o: In function `vgdev_output_init':
> drivers/gpu/drm/virtio/virtgpu_display.c:276: undefined reference to `drm_encoder_init'
> drivers/gpu/drm/virtio/virtgpu_display.c:282: undefined reference to `drm_connector_attach_encoder'
> drivers/gpu/drm/virtio/virtgpu_display.c:282: undefined reference to `drm_connector_register'
> drivers/gpu/drm/virtio/virtgpu_display.c:266: undefined reference to `drm_crtc_init_with_planes'
> drivers/gpu/drm/virtio/virtgpu_display.o: In function `drm_crtc_helper_add':
> include/drm/drm_modeset_helper_vtables.h:510: undefined reference to `drm_connector_init'
> drivers/gpu/drm/virtio/virtgpu_display.o: In function `drm_connector_helper_add':
> include/drm/drm_modeset_helper_vtables.h:1092: undefined reference to `drm_connector_attach_edid_property'
> drivers/gpu/drm/virtio/virtgpu_display.o: In function `vgdev_output_init':
> drivers/gpu/drm/virtio/virtgpu_display.c:277: undefined reference to `drm_mode_config_reset'
> drivers/gpu/drm/virtio/virtgpu_display.o: In function `virtio_gpu_modeset_fini':
> drivers/gpu/drm/virtio/virtgpu_display.c:371: undefined reference to `drm_mode_config_cleanup'
> drivers/gpu/drm/virtio/virtgpu_display.o: In function `.LANCHOR0':
> drivers/gpu/drm/virtio/virtgpu_display.c:58: undefined reference to `drm_gem_fb_destroy'
> drivers/gpu/drm/virtio/virtgpu_display.o: In function `.LANCHOR0':
> virtgpu_display.c:(.rodata+0x8): undefined reference to `drm_gem_fb_create_handle'
>
> vim +113 include/linux/virtio_config.h
>
> ec3d41c4db4c21 Rusty Russell 2007-10-22 92
> c45a6816c19dee Rusty Russell 2008-05-02 93 /* If driver didn't advertise the feature, it will never appear. */
> c45a6816c19dee Rusty Russell 2008-05-02 94 void virtio_check_driver_offered_feature(const struct virtio_device *vdev,
> c45a6816c19dee Rusty Russell 2008-05-02 95 unsigned int fbit);
> c45a6816c19dee Rusty Russell 2008-05-02 96
> c45a6816c19dee Rusty Russell 2008-05-02 97 /**
> d4024af56f7c6c Michael S. Tsirkin 2014-11-27 98 * __virtio_test_bit - helper to test feature bits. For use by transports.
> d4024af56f7c6c Michael S. Tsirkin 2014-11-27 99 * Devices should normally use virtio_has_feature,
> d4024af56f7c6c Michael S. Tsirkin 2014-11-27 100 * which includes more checks.
> c45a6816c19dee Rusty Russell 2008-05-02 101 * @vdev: the device
> c45a6816c19dee Rusty Russell 2008-05-02 102 * @fbit: the feature bit
> c45a6816c19dee Rusty Russell 2008-05-02 103 */
> d4024af56f7c6c Michael S. Tsirkin 2014-11-27 104 static inline bool __virtio_test_bit(const struct virtio_device *vdev,
> d4024af56f7c6c Michael S. Tsirkin 2014-11-27 105 unsigned int fbit)
> d4024af56f7c6c Michael S. Tsirkin 2014-11-27 106 {
> d4024af56f7c6c Michael S. Tsirkin 2014-11-27 107 /* Did you forget to fix assumptions on max features? */
> d4024af56f7c6c Michael S. Tsirkin 2014-11-27 108 if (__builtin_constant_p(fbit))
> d025477368792b Michael S. Tsirkin 2014-10-07 109 BUILD_BUG_ON(fbit >= 64);
> d4024af56f7c6c Michael S. Tsirkin 2014-11-27 110 else
> d025477368792b Michael S. Tsirkin 2014-10-07 111 BUG_ON(fbit >= 64);
> d4024af56f7c6c Michael S. Tsirkin 2014-11-27 112
> d025477368792b Michael S. Tsirkin 2014-10-07 @113 return vdev->features & BIT_ULL(fbit);
> d4024af56f7c6c Michael S. Tsirkin 2014-11-27 114 }
> d4024af56f7c6c Michael S. Tsirkin 2014-11-27 115
>
> :::::: The code at line 113 was first introduced by commit
> :::::: d025477368792b272802146a86e41f81a54d8a19 virtio: add support for 64 bit features.
>
> :::::: TO: Michael S. Tsirkin <mst@redhat.com>
> :::::: CC: Michael S. Tsirkin <mst@redhat.com>
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-next:master 7003/7050] include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
2020-03-10 0:53 ` Andrew Morton
@ 2020-03-10 1:00 ` Alexander Duyck
0 siblings, 0 replies; 14+ messages in thread
From: Alexander Duyck @ 2020-03-10 1:00 UTC (permalink / raw)
To: Andrew Morton
Cc: kbuild test robot, kbuild-all, Linux Memory Management List,
Alexander Duyck
On Mon, Mar 9, 2020 at 5:53 PM Andrew Morton <akpm@linux-foundation.org> wrote:
>
> On Mon, 9 Mar 2020 10:54:03 +0800 kbuild test robot <lkp@intel.com> wrote:
>
> > tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> > head: b86a6a241b7c60ca7a6ca4fb3c0d2aedbbf2c1b6
> > commit: 120359931943d2b801ce51a1a045dcc0a5d1a55b [7003/7050] Merge branch 'akpm-current/current'
> > config: riscv-randconfig-a001-20200308 (attached as .config)
> > compiler: riscv64-linux-gcc (GCC) 7.5.0
> > reproduce:
> > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> > chmod +x ~/bin/make.cross
> > git checkout 120359931943d2b801ce51a1a045dcc0a5d1a55b
> > # save the attached .config to linux build tree
> > GCC_VERSION=7.5.0 make.cross ARCH=riscv
> >
> > If you fix the issue, kindly add following tag
> > Reported-by: kbuild test robot <lkp@intel.com>
> >
> > All errors (new ones prefixed by >>):
>
> Thanks.
>
> Alexander, could you please take a look?
I'll take a look.
Thanks.
- Alex
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-next:master 7003/7050] include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
2020-03-09 2:54 [linux-next:master 7003/7050] include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister' kbuild test robot
2020-03-10 0:53 ` Andrew Morton
@ 2020-03-10 2:19 ` Alexander Duyck
2020-03-10 6:08 ` Michael S. Tsirkin
2020-03-10 10:22 ` David Hildenbrand
1 sibling, 2 replies; 14+ messages in thread
From: Alexander Duyck @ 2020-03-10 2:19 UTC (permalink / raw)
To: kbuild test robot, linux-riscv, anup.patel, atish.patra,
palmerdabbelt, alistair.francis
Cc: Andrew Morton, Linux Memory Management List, Michael S. Tsirkin
On Sun, Mar 8, 2020 at 7:54 PM kbuild test robot <lkp@intel.com> wrote:
>
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> head: b86a6a241b7c60ca7a6ca4fb3c0d2aedbbf2c1b6
> commit: 120359931943d2b801ce51a1a045dcc0a5d1a55b [7003/7050] Merge branch 'akpm-current/current'
> config: riscv-randconfig-a001-20200308 (attached as .config)
> compiler: riscv64-linux-gcc (GCC) 7.5.0
> reproduce:
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> git checkout 120359931943d2b801ce51a1a045dcc0a5d1a55b
> # save the attached .config to linux build tree
> GCC_VERSION=7.5.0 make.cross ARCH=riscv
>
> If you fix the issue, kindly add following tag
> Reported-by: kbuild test robot <lkp@intel.com>
>
> All errors (new ones prefixed by >>):
>
> drivers/virtio/virtio_balloon.o: In function `leak_balloon':
> drivers/virtio/virtio_balloon.c:281: undefined reference to `balloon_page_dequeue'
> drivers/virtio/virtio_balloon.o: In function `__virtio_test_bit':
> >> include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
> drivers/virtio/virtio_balloon.o: In function `virtio_cread32':
> include/linux/virtio_config.h:423: undefined reference to `balloon_page_alloc'
> drivers/virtio/virtio_balloon.o: In function `fill_balloon':
> >> drivers/virtio/virtio_balloon.c:233: undefined reference to `balloon_page_enqueue'
> drivers/virtio/virtio_balloon.o: In function `__virtio_test_bit':
> >> include/linux/virtio_config.h:113: undefined reference to `page_reporting_register'
> drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_remove':
> drivers/gpu/drm/virtio/virtgpu_drv.c:139: undefined reference to `drm_dev_unplug'
> drivers/gpu/drm/virtio/virtgpu_drv.c:140: undefined reference to `drm_atomic_helper_shutdown'
> drivers/gpu/drm/virtio/virtgpu_drv.c:141: undefined reference to `drm_dev_put'
> drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_probe':
It looks like somehow the config has CONFIG_VIRTIO_BALLOON enabled,
but didn't select CONFIG_MEMORY_BALLOON nor CONFIG_PAGE_REPORTING That
shouldn't be possible since in drivers/virtio/Kconfig we have the
following:
config VIRTIO_BALLOON
tristate "Virtio balloon driver"
depends on VIRTIO
select MEMORY_BALLOON
select PAGE_REPORTING
I think I traced the problem down. It looks like it is related to this patch:
RISC-V: Add kconfig option for QEMU virt machine
We add kconfig option for QEMU virt machine and select all
required VIRTIO drivers using this kconfig option.
Signed-off-by: Anup Patel <anup.patel@wdc.com>
Reviewed-by: Atish Patra <atish.patra@wdc.com>
Reviewed-by: Palmer Dabbelt <palmerdabbelt@google.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
The problem is it is using select to enable things that have
dependencies, and as a result it is enabling things without enabling
the bits needed to support them. That isn't recommended and is
actually called out to something to avoid in the kconfig-language
documentation:
https://elixir.bootlin.com/linux/latest/source/Documentation/kbuild/kconfig-language.rst#L143
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-next:master 7003/7050] include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
2020-03-10 2:19 ` Alexander Duyck
@ 2020-03-10 6:08 ` Michael S. Tsirkin
2020-03-10 7:56 ` Christian Borntraeger
2020-03-10 8:43 ` Anup Patel
2020-03-10 10:22 ` David Hildenbrand
1 sibling, 2 replies; 14+ messages in thread
From: Michael S. Tsirkin @ 2020-03-10 6:08 UTC (permalink / raw)
To: Alexander Duyck
Cc: kbuild test robot, linux-riscv, anup.patel, atish.patra,
palmerdabbelt, alistair.francis, Andrew Morton,
Linux Memory Management List, Christian Borntraeger
On Mon, Mar 09, 2020 at 07:19:51PM -0700, Alexander Duyck wrote:
> On Sun, Mar 8, 2020 at 7:54 PM kbuild test robot <lkp@intel.com> wrote:
> >
> > tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> > head: b86a6a241b7c60ca7a6ca4fb3c0d2aedbbf2c1b6
> > commit: 120359931943d2b801ce51a1a045dcc0a5d1a55b [7003/7050] Merge branch 'akpm-current/current'
> > config: riscv-randconfig-a001-20200308 (attached as .config)
> > compiler: riscv64-linux-gcc (GCC) 7.5.0
> > reproduce:
> > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> > chmod +x ~/bin/make.cross
> > git checkout 120359931943d2b801ce51a1a045dcc0a5d1a55b
> > # save the attached .config to linux build tree
> > GCC_VERSION=7.5.0 make.cross ARCH=riscv
> >
> > If you fix the issue, kindly add following tag
> > Reported-by: kbuild test robot <lkp@intel.com>
> >
> > All errors (new ones prefixed by >>):
> >
> > drivers/virtio/virtio_balloon.o: In function `leak_balloon':
> > drivers/virtio/virtio_balloon.c:281: undefined reference to `balloon_page_dequeue'
> > drivers/virtio/virtio_balloon.o: In function `__virtio_test_bit':
> > >> include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
> > drivers/virtio/virtio_balloon.o: In function `virtio_cread32':
> > include/linux/virtio_config.h:423: undefined reference to `balloon_page_alloc'
> > drivers/virtio/virtio_balloon.o: In function `fill_balloon':
> > >> drivers/virtio/virtio_balloon.c:233: undefined reference to `balloon_page_enqueue'
> > drivers/virtio/virtio_balloon.o: In function `__virtio_test_bit':
> > >> include/linux/virtio_config.h:113: undefined reference to `page_reporting_register'
> > drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_remove':
> > drivers/gpu/drm/virtio/virtgpu_drv.c:139: undefined reference to `drm_dev_unplug'
> > drivers/gpu/drm/virtio/virtgpu_drv.c:140: undefined reference to `drm_atomic_helper_shutdown'
> > drivers/gpu/drm/virtio/virtgpu_drv.c:141: undefined reference to `drm_dev_put'
> > drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_probe':
>
> It looks like somehow the config has CONFIG_VIRTIO_BALLOON enabled,
> but didn't select CONFIG_MEMORY_BALLOON nor CONFIG_PAGE_REPORTING That
> shouldn't be possible since in drivers/virtio/Kconfig we have the
> following:
> config VIRTIO_BALLOON
> tristate "Virtio balloon driver"
> depends on VIRTIO
> select MEMORY_BALLOON
> select PAGE_REPORTING
>
> I think I traced the problem down. It looks like it is related to this patch:
> RISC-V: Add kconfig option for QEMU virt machine
>
> We add kconfig option for QEMU virt machine and select all
> required VIRTIO drivers using this kconfig option.
>
> Signed-off-by: Anup Patel <anup.patel@wdc.com>
> Reviewed-by: Atish Patra <atish.patra@wdc.com>
> Reviewed-by: Palmer Dabbelt <palmerdabbelt@google.com>
> Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
> Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
>
>
> The problem is it is using select to enable things that have
> dependencies, and as a result it is enabling things without enabling
> the bits needed to support them. That isn't recommended and is
> actually called out to something to avoid in the kconfig-language
> documentation:
> https://elixir.bootlin.com/linux/latest/source/Documentation/kbuild/kconfig-language.rst#L143
I agree. And when we change virtio we likely won't remember to fix up RISC-V.
So please don't poke at it from arches.
The right way to do this IMHO is via ARCH_DEFCONFIG, and using
a defconfig per board.
And I think the same applies to s390 and virtio console.
Christian?
--
MST
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-next:master 7003/7050] include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
2020-03-10 6:08 ` Michael S. Tsirkin
@ 2020-03-10 7:56 ` Christian Borntraeger
2020-03-10 8:43 ` Anup Patel
1 sibling, 0 replies; 14+ messages in thread
From: Christian Borntraeger @ 2020-03-10 7:56 UTC (permalink / raw)
To: Michael S. Tsirkin, Alexander Duyck
Cc: kbuild test robot, linux-riscv, anup.patel, atish.patra,
palmerdabbelt, alistair.francis, Andrew Morton,
Linux Memory Management List
On 10.03.20 07:08, Michael S. Tsirkin wrote:
> On Mon, Mar 09, 2020 at 07:19:51PM -0700, Alexander Duyck wrote:
>> On Sun, Mar 8, 2020 at 7:54 PM kbuild test robot <lkp@intel.com> wrote:
>>>
>>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
>>> head: b86a6a241b7c60ca7a6ca4fb3c0d2aedbbf2c1b6
>>> commit: 120359931943d2b801ce51a1a045dcc0a5d1a55b [7003/7050] Merge branch 'akpm-current/current'
>>> config: riscv-randconfig-a001-20200308 (attached as .config)
>>> compiler: riscv64-linux-gcc (GCC) 7.5.0
>>> reproduce:
>>> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>>> chmod +x ~/bin/make.cross
>>> git checkout 120359931943d2b801ce51a1a045dcc0a5d1a55b
>>> # save the attached .config to linux build tree
>>> GCC_VERSION=7.5.0 make.cross ARCH=riscv
>>>
>>> If you fix the issue, kindly add following tag
>>> Reported-by: kbuild test robot <lkp@intel.com>
>>>
>>> All errors (new ones prefixed by >>):
>>>
>>> drivers/virtio/virtio_balloon.o: In function `leak_balloon':
>>> drivers/virtio/virtio_balloon.c:281: undefined reference to `balloon_page_dequeue'
>>> drivers/virtio/virtio_balloon.o: In function `__virtio_test_bit':
>>>>> include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
>>> drivers/virtio/virtio_balloon.o: In function `virtio_cread32':
>>> include/linux/virtio_config.h:423: undefined reference to `balloon_page_alloc'
>>> drivers/virtio/virtio_balloon.o: In function `fill_balloon':
>>>>> drivers/virtio/virtio_balloon.c:233: undefined reference to `balloon_page_enqueue'
>>> drivers/virtio/virtio_balloon.o: In function `__virtio_test_bit':
>>>>> include/linux/virtio_config.h:113: undefined reference to `page_reporting_register'
>>> drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_remove':
>>> drivers/gpu/drm/virtio/virtgpu_drv.c:139: undefined reference to `drm_dev_unplug'
>>> drivers/gpu/drm/virtio/virtgpu_drv.c:140: undefined reference to `drm_atomic_helper_shutdown'
>>> drivers/gpu/drm/virtio/virtgpu_drv.c:141: undefined reference to `drm_dev_put'
>>> drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_probe':
>>
>> It looks like somehow the config has CONFIG_VIRTIO_BALLOON enabled,
>> but didn't select CONFIG_MEMORY_BALLOON nor CONFIG_PAGE_REPORTING That
>> shouldn't be possible since in drivers/virtio/Kconfig we have the
>> following:
>> config VIRTIO_BALLOON
>> tristate "Virtio balloon driver"
>> depends on VIRTIO
>> select MEMORY_BALLOON
>> select PAGE_REPORTING
>>
>> I think I traced the problem down. It looks like it is related to this patch:
>> RISC-V: Add kconfig option for QEMU virt machine
>>
>> We add kconfig option for QEMU virt machine and select all
>> required VIRTIO drivers using this kconfig option.
>>
>> Signed-off-by: Anup Patel <anup.patel@wdc.com>
>> Reviewed-by: Atish Patra <atish.patra@wdc.com>
>> Reviewed-by: Palmer Dabbelt <palmerdabbelt@google.com>
>> Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
>> Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
>>
>>
>> The problem is it is using select to enable things that have
>> dependencies, and as a result it is enabling things without enabling
>> the bits needed to support them. That isn't recommended and is
>> actually called out to something to avoid in the kconfig-language
>> documentation:
>> https://elixir.bootlin.com/linux/latest/source/Documentation/kbuild/kconfig-language.rst#L143
>
>
> I agree. And when we change virtio we likely won't remember to fix up RISC-V.
> So please don't poke at it from arches.
> The right way to do this IMHO is via ARCH_DEFCONFIG, and using
> a defconfig per board.
> And I think the same applies to s390 and virtio console.
> Christian?
Right. The select of VIRTIO_CONSOLE in S390_GUEST ĺooks more like a historic relic.
Will fix.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-next:master 7003/7050] include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
2020-03-10 6:08 ` Michael S. Tsirkin
2020-03-10 7:56 ` Christian Borntraeger
@ 2020-03-10 8:43 ` Anup Patel
2020-03-10 9:07 ` Michael S. Tsirkin
1 sibling, 1 reply; 14+ messages in thread
From: Anup Patel @ 2020-03-10 8:43 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: Alexander Duyck, Anup Patel, kbuild test robot,
Linux Memory Management List, Palmer Dabbelt,
Christian Borntraeger, Atish Patra, Alistair Francis,
linux-riscv, Andrew Morton
On Tue, Mar 10, 2020 at 11:38 AM Michael S. Tsirkin <mst@redhat.com> wrote:
>
> On Mon, Mar 09, 2020 at 07:19:51PM -0700, Alexander Duyck wrote:
> > On Sun, Mar 8, 2020 at 7:54 PM kbuild test robot <lkp@intel.com> wrote:
> > >
> > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> > > head: b86a6a241b7c60ca7a6ca4fb3c0d2aedbbf2c1b6
> > > commit: 120359931943d2b801ce51a1a045dcc0a5d1a55b [7003/7050] Merge branch 'akpm-current/current'
> > > config: riscv-randconfig-a001-20200308 (attached as .config)
> > > compiler: riscv64-linux-gcc (GCC) 7.5.0
> > > reproduce:
> > > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> > > chmod +x ~/bin/make.cross
> > > git checkout 120359931943d2b801ce51a1a045dcc0a5d1a55b
> > > # save the attached .config to linux build tree
> > > GCC_VERSION=7.5.0 make.cross ARCH=riscv
> > >
> > > If you fix the issue, kindly add following tag
> > > Reported-by: kbuild test robot <lkp@intel.com>
> > >
> > > All errors (new ones prefixed by >>):
> > >
> > > drivers/virtio/virtio_balloon.o: In function `leak_balloon':
> > > drivers/virtio/virtio_balloon.c:281: undefined reference to `balloon_page_dequeue'
> > > drivers/virtio/virtio_balloon.o: In function `__virtio_test_bit':
> > > >> include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
> > > drivers/virtio/virtio_balloon.o: In function `virtio_cread32':
> > > include/linux/virtio_config.h:423: undefined reference to `balloon_page_alloc'
> > > drivers/virtio/virtio_balloon.o: In function `fill_balloon':
> > > >> drivers/virtio/virtio_balloon.c:233: undefined reference to `balloon_page_enqueue'
> > > drivers/virtio/virtio_balloon.o: In function `__virtio_test_bit':
> > > >> include/linux/virtio_config.h:113: undefined reference to `page_reporting_register'
> > > drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_remove':
> > > drivers/gpu/drm/virtio/virtgpu_drv.c:139: undefined reference to `drm_dev_unplug'
> > > drivers/gpu/drm/virtio/virtgpu_drv.c:140: undefined reference to `drm_atomic_helper_shutdown'
> > > drivers/gpu/drm/virtio/virtgpu_drv.c:141: undefined reference to `drm_dev_put'
> > > drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_probe':
> >
> > It looks like somehow the config has CONFIG_VIRTIO_BALLOON enabled,
> > but didn't select CONFIG_MEMORY_BALLOON nor CONFIG_PAGE_REPORTING That
> > shouldn't be possible since in drivers/virtio/Kconfig we have the
> > following:
> > config VIRTIO_BALLOON
> > tristate "Virtio balloon driver"
> > depends on VIRTIO
> > select MEMORY_BALLOON
> > select PAGE_REPORTING
> >
> > I think I traced the problem down. It looks like it is related to this patch:
> > RISC-V: Add kconfig option for QEMU virt machine
> >
> > We add kconfig option for QEMU virt machine and select all
> > required VIRTIO drivers using this kconfig option.
> >
> > Signed-off-by: Anup Patel <anup.patel@wdc.com>
> > Reviewed-by: Atish Patra <atish.patra@wdc.com>
> > Reviewed-by: Palmer Dabbelt <palmerdabbelt@google.com>
> > Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
> > Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
> >
> >
> > The problem is it is using select to enable things that have
> > dependencies, and as a result it is enabling things without enabling
> > the bits needed to support them. That isn't recommended and is
> > actually called out to something to avoid in the kconfig-language
> > documentation:
> > https://elixir.bootlin.com/linux/latest/source/Documentation/kbuild/kconfig-language.rst#L143
>
>
> I agree. And when we change virtio we likely won't remember to fix up RISC-V.
> So please don't poke at it from arches.
I will fix RISC-V Kconfig.
Is it fine to use "imply" inplace of "select" ?
Regards,
Anup
> The right way to do this IMHO is via ARCH_DEFCONFIG, and using
> a defconfig per board.
> And I think the same applies to s390 and virtio console.
> Christian?
>
> --
> MST
>
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-next:master 7003/7050] include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
2020-03-10 8:43 ` Anup Patel
@ 2020-03-10 9:07 ` Michael S. Tsirkin
0 siblings, 0 replies; 14+ messages in thread
From: Michael S. Tsirkin @ 2020-03-10 9:07 UTC (permalink / raw)
To: Anup Patel
Cc: Alexander Duyck, Anup Patel, kbuild test robot,
Linux Memory Management List, Palmer Dabbelt,
Christian Borntraeger, Atish Patra, Alistair Francis,
linux-riscv, Andrew Morton
On Tue, Mar 10, 2020 at 02:13:19PM +0530, Anup Patel wrote:
> On Tue, Mar 10, 2020 at 11:38 AM Michael S. Tsirkin <mst@redhat.com> wrote:
> >
> > On Mon, Mar 09, 2020 at 07:19:51PM -0700, Alexander Duyck wrote:
> > > On Sun, Mar 8, 2020 at 7:54 PM kbuild test robot <lkp@intel.com> wrote:
> > > >
> > > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> > > > head: b86a6a241b7c60ca7a6ca4fb3c0d2aedbbf2c1b6
> > > > commit: 120359931943d2b801ce51a1a045dcc0a5d1a55b [7003/7050] Merge branch 'akpm-current/current'
> > > > config: riscv-randconfig-a001-20200308 (attached as .config)
> > > > compiler: riscv64-linux-gcc (GCC) 7.5.0
> > > > reproduce:
> > > > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> > > > chmod +x ~/bin/make.cross
> > > > git checkout 120359931943d2b801ce51a1a045dcc0a5d1a55b
> > > > # save the attached .config to linux build tree
> > > > GCC_VERSION=7.5.0 make.cross ARCH=riscv
> > > >
> > > > If you fix the issue, kindly add following tag
> > > > Reported-by: kbuild test robot <lkp@intel.com>
> > > >
> > > > All errors (new ones prefixed by >>):
> > > >
> > > > drivers/virtio/virtio_balloon.o: In function `leak_balloon':
> > > > drivers/virtio/virtio_balloon.c:281: undefined reference to `balloon_page_dequeue'
> > > > drivers/virtio/virtio_balloon.o: In function `__virtio_test_bit':
> > > > >> include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
> > > > drivers/virtio/virtio_balloon.o: In function `virtio_cread32':
> > > > include/linux/virtio_config.h:423: undefined reference to `balloon_page_alloc'
> > > > drivers/virtio/virtio_balloon.o: In function `fill_balloon':
> > > > >> drivers/virtio/virtio_balloon.c:233: undefined reference to `balloon_page_enqueue'
> > > > drivers/virtio/virtio_balloon.o: In function `__virtio_test_bit':
> > > > >> include/linux/virtio_config.h:113: undefined reference to `page_reporting_register'
> > > > drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_remove':
> > > > drivers/gpu/drm/virtio/virtgpu_drv.c:139: undefined reference to `drm_dev_unplug'
> > > > drivers/gpu/drm/virtio/virtgpu_drv.c:140: undefined reference to `drm_atomic_helper_shutdown'
> > > > drivers/gpu/drm/virtio/virtgpu_drv.c:141: undefined reference to `drm_dev_put'
> > > > drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_probe':
> > >
> > > It looks like somehow the config has CONFIG_VIRTIO_BALLOON enabled,
> > > but didn't select CONFIG_MEMORY_BALLOON nor CONFIG_PAGE_REPORTING That
> > > shouldn't be possible since in drivers/virtio/Kconfig we have the
> > > following:
> > > config VIRTIO_BALLOON
> > > tristate "Virtio balloon driver"
> > > depends on VIRTIO
> > > select MEMORY_BALLOON
> > > select PAGE_REPORTING
> > >
> > > I think I traced the problem down. It looks like it is related to this patch:
> > > RISC-V: Add kconfig option for QEMU virt machine
> > >
> > > We add kconfig option for QEMU virt machine and select all
> > > required VIRTIO drivers using this kconfig option.
> > >
> > > Signed-off-by: Anup Patel <anup.patel@wdc.com>
> > > Reviewed-by: Atish Patra <atish.patra@wdc.com>
> > > Reviewed-by: Palmer Dabbelt <palmerdabbelt@google.com>
> > > Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
> > > Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
> > >
> > >
> > > The problem is it is using select to enable things that have
> > > dependencies, and as a result it is enabling things without enabling
> > > the bits needed to support them. That isn't recommended and is
> > > actually called out to something to avoid in the kconfig-language
> > > documentation:
> > > https://elixir.bootlin.com/linux/latest/source/Documentation/kbuild/kconfig-language.rst#L143
> >
> >
> > I agree. And when we change virtio we likely won't remember to fix up RISC-V.
> > So please don't poke at it from arches.
>
> I will fix RISC-V Kconfig.
>
> Is it fine to use "imply" inplace of "select" ?
>
> Regards,
> Anup
IIUC imply has exactly the same limitations as select,
so this won't do any good.
> > The right way to do this IMHO is via ARCH_DEFCONFIG, and using
> > a defconfig per board.
> > And I think the same applies to s390 and virtio console.
> > Christian?
> >
> > --
> > MST
> >
> >
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-next:master 7003/7050] include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
2020-03-10 2:19 ` Alexander Duyck
2020-03-10 6:08 ` Michael S. Tsirkin
@ 2020-03-10 10:22 ` David Hildenbrand
2020-03-10 10:26 ` David Hildenbrand
1 sibling, 1 reply; 14+ messages in thread
From: David Hildenbrand @ 2020-03-10 10:22 UTC (permalink / raw)
To: Alexander Duyck, kbuild test robot, linux-riscv, anup.patel,
atish.patra, palmerdabbelt, alistair.francis
Cc: Andrew Morton, Linux Memory Management List, Michael S. Tsirkin
On 10.03.20 03:19, Alexander Duyck wrote:
> On Sun, Mar 8, 2020 at 7:54 PM kbuild test robot <lkp@intel.com> wrote:
>>
>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
>> head: b86a6a241b7c60ca7a6ca4fb3c0d2aedbbf2c1b6
>> commit: 120359931943d2b801ce51a1a045dcc0a5d1a55b [7003/7050] Merge branch 'akpm-current/current'
>> config: riscv-randconfig-a001-20200308 (attached as .config)
>> compiler: riscv64-linux-gcc (GCC) 7.5.0
>> reproduce:
>> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>> chmod +x ~/bin/make.cross
>> git checkout 120359931943d2b801ce51a1a045dcc0a5d1a55b
>> # save the attached .config to linux build tree
>> GCC_VERSION=7.5.0 make.cross ARCH=riscv
>>
>> If you fix the issue, kindly add following tag
>> Reported-by: kbuild test robot <lkp@intel.com>
>>
>> All errors (new ones prefixed by >>):
>>
>> drivers/virtio/virtio_balloon.o: In function `leak_balloon':
>> drivers/virtio/virtio_balloon.c:281: undefined reference to `balloon_page_dequeue'
>> drivers/virtio/virtio_balloon.o: In function `__virtio_test_bit':
>>>> include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
>> drivers/virtio/virtio_balloon.o: In function `virtio_cread32':
>> include/linux/virtio_config.h:423: undefined reference to `balloon_page_alloc'
>> drivers/virtio/virtio_balloon.o: In function `fill_balloon':
>>>> drivers/virtio/virtio_balloon.c:233: undefined reference to `balloon_page_enqueue'
>> drivers/virtio/virtio_balloon.o: In function `__virtio_test_bit':
>>>> include/linux/virtio_config.h:113: undefined reference to `page_reporting_register'
>> drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_remove':
>> drivers/gpu/drm/virtio/virtgpu_drv.c:139: undefined reference to `drm_dev_unplug'
>> drivers/gpu/drm/virtio/virtgpu_drv.c:140: undefined reference to `drm_atomic_helper_shutdown'
>> drivers/gpu/drm/virtio/virtgpu_drv.c:141: undefined reference to `drm_dev_put'
>> drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_probe':
>
> It looks like somehow the config has CONFIG_VIRTIO_BALLOON enabled,
> but didn't select CONFIG_MEMORY_BALLOON nor CONFIG_PAGE_REPORTING That
> shouldn't be possible since in drivers/virtio/Kconfig we have the
> following:
> config VIRTIO_BALLOON
> tristate "Virtio balloon driver"
> depends on VIRTIO
> select MEMORY_BALLOON
> select PAGE_REPORTING
IMHO that's perfectly valid. You might want to have ballooning without
page compaction (MEMORY_BALLOON). Same with PAGE_REPORTING.
AFAIK, "select" will still allow you to disable these things - which
used to work fine with MEMORY_BALLOON (did that myself when debugging a
compaction issue).
--
Thanks,
David / dhildenb
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-next:master 7003/7050] include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
2020-03-10 10:22 ` David Hildenbrand
@ 2020-03-10 10:26 ` David Hildenbrand
2020-03-10 12:02 ` Anup Patel
0 siblings, 1 reply; 14+ messages in thread
From: David Hildenbrand @ 2020-03-10 10:26 UTC (permalink / raw)
To: Alexander Duyck, kbuild test robot, linux-riscv, anup.patel,
atish.patra, palmerdabbelt, alistair.francis
Cc: Andrew Morton, Linux Memory Management List, Michael S. Tsirkin
On 10.03.20 11:22, David Hildenbrand wrote:
> On 10.03.20 03:19, Alexander Duyck wrote:
>> On Sun, Mar 8, 2020 at 7:54 PM kbuild test robot <lkp@intel.com> wrote:
>>>
>>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
>>> head: b86a6a241b7c60ca7a6ca4fb3c0d2aedbbf2c1b6
>>> commit: 120359931943d2b801ce51a1a045dcc0a5d1a55b [7003/7050] Merge branch 'akpm-current/current'
>>> config: riscv-randconfig-a001-20200308 (attached as .config)
>>> compiler: riscv64-linux-gcc (GCC) 7.5.0
>>> reproduce:
>>> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>>> chmod +x ~/bin/make.cross
>>> git checkout 120359931943d2b801ce51a1a045dcc0a5d1a55b
>>> # save the attached .config to linux build tree
>>> GCC_VERSION=7.5.0 make.cross ARCH=riscv
>>>
>>> If you fix the issue, kindly add following tag
>>> Reported-by: kbuild test robot <lkp@intel.com>
>>>
>>> All errors (new ones prefixed by >>):
>>>
>>> drivers/virtio/virtio_balloon.o: In function `leak_balloon':
>>> drivers/virtio/virtio_balloon.c:281: undefined reference to `balloon_page_dequeue'
>>> drivers/virtio/virtio_balloon.o: In function `__virtio_test_bit':
>>>>> include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
>>> drivers/virtio/virtio_balloon.o: In function `virtio_cread32':
>>> include/linux/virtio_config.h:423: undefined reference to `balloon_page_alloc'
>>> drivers/virtio/virtio_balloon.o: In function `fill_balloon':
>>>>> drivers/virtio/virtio_balloon.c:233: undefined reference to `balloon_page_enqueue'
>>> drivers/virtio/virtio_balloon.o: In function `__virtio_test_bit':
>>>>> include/linux/virtio_config.h:113: undefined reference to `page_reporting_register'
>>> drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_remove':
>>> drivers/gpu/drm/virtio/virtgpu_drv.c:139: undefined reference to `drm_dev_unplug'
>>> drivers/gpu/drm/virtio/virtgpu_drv.c:140: undefined reference to `drm_atomic_helper_shutdown'
>>> drivers/gpu/drm/virtio/virtgpu_drv.c:141: undefined reference to `drm_dev_put'
>>> drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_probe':
>>
>> It looks like somehow the config has CONFIG_VIRTIO_BALLOON enabled,
>> but didn't select CONFIG_MEMORY_BALLOON nor CONFIG_PAGE_REPORTING That
>> shouldn't be possible since in drivers/virtio/Kconfig we have the
>> following:
>> config VIRTIO_BALLOON
>> tristate "Virtio balloon driver"
>> depends on VIRTIO
>> select MEMORY_BALLOON
>> select PAGE_REPORTING
>
> IMHO that's perfectly valid. You might want to have ballooning without
> page compaction (MEMORY_BALLOON). Same with PAGE_REPORTING.
>
> AFAIK, "select" will still allow you to disable these things - which
> used to work fine with MEMORY_BALLOON (did that myself when debugging a
> compaction issue).
>
Correction: I disabled BALLOON_COMPACTION back then ... so ignore my
comment regarding that :)
But we should be able to build VIRTIO_BALLOON without PAGE_REPORTING
somehow IMHO.
--
Thanks,
David / dhildenb
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-next:master 7003/7050] include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
2020-03-10 10:26 ` David Hildenbrand
@ 2020-03-10 12:02 ` Anup Patel
2020-03-10 12:13 ` David Hildenbrand
0 siblings, 1 reply; 14+ messages in thread
From: Anup Patel @ 2020-03-10 12:02 UTC (permalink / raw)
To: David Hildenbrand
Cc: Alexander Duyck, kbuild test robot, linux-riscv, Anup Patel,
Atish Patra, Palmer Dabbelt, Alistair Francis,
Linux Memory Management List, Andrew Morton, Michael S. Tsirkin
On Tue, Mar 10, 2020 at 3:56 PM David Hildenbrand <david@redhat.com> wrote:
>
> On 10.03.20 11:22, David Hildenbrand wrote:
> > On 10.03.20 03:19, Alexander Duyck wrote:
> >> On Sun, Mar 8, 2020 at 7:54 PM kbuild test robot <lkp@intel.com> wrote:
> >>>
> >>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> >>> head: b86a6a241b7c60ca7a6ca4fb3c0d2aedbbf2c1b6
> >>> commit: 120359931943d2b801ce51a1a045dcc0a5d1a55b [7003/7050] Merge branch 'akpm-current/current'
> >>> config: riscv-randconfig-a001-20200308 (attached as .config)
> >>> compiler: riscv64-linux-gcc (GCC) 7.5.0
> >>> reproduce:
> >>> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> >>> chmod +x ~/bin/make.cross
> >>> git checkout 120359931943d2b801ce51a1a045dcc0a5d1a55b
> >>> # save the attached .config to linux build tree
> >>> GCC_VERSION=7.5.0 make.cross ARCH=riscv
> >>>
> >>> If you fix the issue, kindly add following tag
> >>> Reported-by: kbuild test robot <lkp@intel.com>
> >>>
> >>> All errors (new ones prefixed by >>):
> >>>
> >>> drivers/virtio/virtio_balloon.o: In function `leak_balloon':
> >>> drivers/virtio/virtio_balloon.c:281: undefined reference to `balloon_page_dequeue'
> >>> drivers/virtio/virtio_balloon.o: In function `__virtio_test_bit':
> >>>>> include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
> >>> drivers/virtio/virtio_balloon.o: In function `virtio_cread32':
> >>> include/linux/virtio_config.h:423: undefined reference to `balloon_page_alloc'
> >>> drivers/virtio/virtio_balloon.o: In function `fill_balloon':
> >>>>> drivers/virtio/virtio_balloon.c:233: undefined reference to `balloon_page_enqueue'
> >>> drivers/virtio/virtio_balloon.o: In function `__virtio_test_bit':
> >>>>> include/linux/virtio_config.h:113: undefined reference to `page_reporting_register'
> >>> drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_remove':
> >>> drivers/gpu/drm/virtio/virtgpu_drv.c:139: undefined reference to `drm_dev_unplug'
> >>> drivers/gpu/drm/virtio/virtgpu_drv.c:140: undefined reference to `drm_atomic_helper_shutdown'
> >>> drivers/gpu/drm/virtio/virtgpu_drv.c:141: undefined reference to `drm_dev_put'
> >>> drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_probe':
> >>
> >> It looks like somehow the config has CONFIG_VIRTIO_BALLOON enabled,
> >> but didn't select CONFIG_MEMORY_BALLOON nor CONFIG_PAGE_REPORTING That
> >> shouldn't be possible since in drivers/virtio/Kconfig we have the
> >> following:
> >> config VIRTIO_BALLOON
> >> tristate "Virtio balloon driver"
> >> depends on VIRTIO
> >> select MEMORY_BALLOON
> >> select PAGE_REPORTING
> >
> > IMHO that's perfectly valid. You might want to have ballooning without
> > page compaction (MEMORY_BALLOON). Same with PAGE_REPORTING.
> >
> > AFAIK, "select" will still allow you to disable these things - which
> > used to work fine with MEMORY_BALLOON (did that myself when debugging a
> > compaction issue).
> >
>
> Correction: I disabled BALLOON_COMPACTION back then ... so ignore my
> comment regarding that :)
>
> But we should be able to build VIRTIO_BALLOON without PAGE_REPORTING
> somehow IMHO.
I have moved all VIRTIO driver selection to defconfigs for RISC-V which was
the case before.
Here's the patch:
https://patchwork.kernel.org/patch/11429217/
Thanks,
Anup
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-next:master 7003/7050] include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
2020-03-10 12:02 ` Anup Patel
@ 2020-03-10 12:13 ` David Hildenbrand
2020-03-10 15:08 ` Alexander Duyck
0 siblings, 1 reply; 14+ messages in thread
From: David Hildenbrand @ 2020-03-10 12:13 UTC (permalink / raw)
To: Anup Patel
Cc: Alexander Duyck, kbuild test robot, linux-riscv, Anup Patel,
Atish Patra, Palmer Dabbelt, Alistair Francis,
Linux Memory Management List, Andrew Morton, Michael S. Tsirkin
On 10.03.20 13:02, Anup Patel wrote:
> On Tue, Mar 10, 2020 at 3:56 PM David Hildenbrand <david@redhat.com> wrote:
>>
>> On 10.03.20 11:22, David Hildenbrand wrote:
>>> On 10.03.20 03:19, Alexander Duyck wrote:
>>>> On Sun, Mar 8, 2020 at 7:54 PM kbuild test robot <lkp@intel.com> wrote:
>>>>>
>>>>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
>>>>> head: b86a6a241b7c60ca7a6ca4fb3c0d2aedbbf2c1b6
>>>>> commit: 120359931943d2b801ce51a1a045dcc0a5d1a55b [7003/7050] Merge branch 'akpm-current/current'
>>>>> config: riscv-randconfig-a001-20200308 (attached as .config)
>>>>> compiler: riscv64-linux-gcc (GCC) 7.5.0
>>>>> reproduce:
>>>>> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>>>>> chmod +x ~/bin/make.cross
>>>>> git checkout 120359931943d2b801ce51a1a045dcc0a5d1a55b
>>>>> # save the attached .config to linux build tree
>>>>> GCC_VERSION=7.5.0 make.cross ARCH=riscv
>>>>>
>>>>> If you fix the issue, kindly add following tag
>>>>> Reported-by: kbuild test robot <lkp@intel.com>
>>>>>
>>>>> All errors (new ones prefixed by >>):
>>>>>
>>>>> drivers/virtio/virtio_balloon.o: In function `leak_balloon':
>>>>> drivers/virtio/virtio_balloon.c:281: undefined reference to `balloon_page_dequeue'
>>>>> drivers/virtio/virtio_balloon.o: In function `__virtio_test_bit':
>>>>>>> include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
>>>>> drivers/virtio/virtio_balloon.o: In function `virtio_cread32':
>>>>> include/linux/virtio_config.h:423: undefined reference to `balloon_page_alloc'
>>>>> drivers/virtio/virtio_balloon.o: In function `fill_balloon':
>>>>>>> drivers/virtio/virtio_balloon.c:233: undefined reference to `balloon_page_enqueue'
>>>>> drivers/virtio/virtio_balloon.o: In function `__virtio_test_bit':
>>>>>>> include/linux/virtio_config.h:113: undefined reference to `page_reporting_register'
>>>>> drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_remove':
>>>>> drivers/gpu/drm/virtio/virtgpu_drv.c:139: undefined reference to `drm_dev_unplug'
>>>>> drivers/gpu/drm/virtio/virtgpu_drv.c:140: undefined reference to `drm_atomic_helper_shutdown'
>>>>> drivers/gpu/drm/virtio/virtgpu_drv.c:141: undefined reference to `drm_dev_put'
>>>>> drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_probe':
>>>>
>>>> It looks like somehow the config has CONFIG_VIRTIO_BALLOON enabled,
>>>> but didn't select CONFIG_MEMORY_BALLOON nor CONFIG_PAGE_REPORTING That
>>>> shouldn't be possible since in drivers/virtio/Kconfig we have the
>>>> following:
>>>> config VIRTIO_BALLOON
>>>> tristate "Virtio balloon driver"
>>>> depends on VIRTIO
>>>> select MEMORY_BALLOON
>>>> select PAGE_REPORTING
>>>
>>> IMHO that's perfectly valid. You might want to have ballooning without
>>> page compaction (MEMORY_BALLOON). Same with PAGE_REPORTING.
>>>
>>> AFAIK, "select" will still allow you to disable these things - which
>>> used to work fine with MEMORY_BALLOON (did that myself when debugging a
>>> compaction issue).
>>>
>>
>> Correction: I disabled BALLOON_COMPACTION back then ... so ignore my
>> comment regarding that :)
>>
>> But we should be able to build VIRTIO_BALLOON without PAGE_REPORTING
>> somehow IMHO.
>
> I have moved all VIRTIO driver selection to defconfigs for RISC-V which was
> the case before.
>
> Here's the patch:
> https://patchwork.kernel.org/patch/11429217/
Make perfect sense. Still I think we might want to have the option to
build without page reporting in the future, similar to building without
balloon compaction (which is another discussion).
--
Thanks,
David / dhildenb
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-next:master 7003/7050] include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
2020-03-10 12:13 ` David Hildenbrand
@ 2020-03-10 15:08 ` Alexander Duyck
2020-03-10 15:13 ` David Hildenbrand
0 siblings, 1 reply; 14+ messages in thread
From: Alexander Duyck @ 2020-03-10 15:08 UTC (permalink / raw)
To: David Hildenbrand
Cc: Anup Patel, kbuild test robot, linux-riscv, Anup Patel,
Atish Patra, Palmer Dabbelt, Alistair Francis,
Linux Memory Management List, Andrew Morton, Michael S. Tsirkin
On Tue, Mar 10, 2020 at 5:13 AM David Hildenbrand <david@redhat.com> wrote:
>
> On 10.03.20 13:02, Anup Patel wrote:
> > On Tue, Mar 10, 2020 at 3:56 PM David Hildenbrand <david@redhat.com> wrote:
> >>
> >> On 10.03.20 11:22, David Hildenbrand wrote:
> >>> On 10.03.20 03:19, Alexander Duyck wrote:
> >>>> On Sun, Mar 8, 2020 at 7:54 PM kbuild test robot <lkp@intel.com> wrote:
> >>>>>
> >>>>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> >>>>> head: b86a6a241b7c60ca7a6ca4fb3c0d2aedbbf2c1b6
> >>>>> commit: 120359931943d2b801ce51a1a045dcc0a5d1a55b [7003/7050] Merge branch 'akpm-current/current'
> >>>>> config: riscv-randconfig-a001-20200308 (attached as .config)
> >>>>> compiler: riscv64-linux-gcc (GCC) 7.5.0
> >>>>> reproduce:
> >>>>> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> >>>>> chmod +x ~/bin/make.cross
> >>>>> git checkout 120359931943d2b801ce51a1a045dcc0a5d1a55b
> >>>>> # save the attached .config to linux build tree
> >>>>> GCC_VERSION=7.5.0 make.cross ARCH=riscv
> >>>>>
> >>>>> If you fix the issue, kindly add following tag
> >>>>> Reported-by: kbuild test robot <lkp@intel.com>
> >>>>>
> >>>>> All errors (new ones prefixed by >>):
> >>>>>
> >>>>> drivers/virtio/virtio_balloon.o: In function `leak_balloon':
> >>>>> drivers/virtio/virtio_balloon.c:281: undefined reference to `balloon_page_dequeue'
> >>>>> drivers/virtio/virtio_balloon.o: In function `__virtio_test_bit':
> >>>>>>> include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
> >>>>> drivers/virtio/virtio_balloon.o: In function `virtio_cread32':
> >>>>> include/linux/virtio_config.h:423: undefined reference to `balloon_page_alloc'
> >>>>> drivers/virtio/virtio_balloon.o: In function `fill_balloon':
> >>>>>>> drivers/virtio/virtio_balloon.c:233: undefined reference to `balloon_page_enqueue'
> >>>>> drivers/virtio/virtio_balloon.o: In function `__virtio_test_bit':
> >>>>>>> include/linux/virtio_config.h:113: undefined reference to `page_reporting_register'
> >>>>> drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_remove':
> >>>>> drivers/gpu/drm/virtio/virtgpu_drv.c:139: undefined reference to `drm_dev_unplug'
> >>>>> drivers/gpu/drm/virtio/virtgpu_drv.c:140: undefined reference to `drm_atomic_helper_shutdown'
> >>>>> drivers/gpu/drm/virtio/virtgpu_drv.c:141: undefined reference to `drm_dev_put'
> >>>>> drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_probe':
> >>>>
> >>>> It looks like somehow the config has CONFIG_VIRTIO_BALLOON enabled,
> >>>> but didn't select CONFIG_MEMORY_BALLOON nor CONFIG_PAGE_REPORTING That
> >>>> shouldn't be possible since in drivers/virtio/Kconfig we have the
> >>>> following:
> >>>> config VIRTIO_BALLOON
> >>>> tristate "Virtio balloon driver"
> >>>> depends on VIRTIO
> >>>> select MEMORY_BALLOON
> >>>> select PAGE_REPORTING
> >>>
> >>> IMHO that's perfectly valid. You might want to have ballooning without
> >>> page compaction (MEMORY_BALLOON). Same with PAGE_REPORTING.
> >>>
> >>> AFAIK, "select" will still allow you to disable these things - which
> >>> used to work fine with MEMORY_BALLOON (did that myself when debugging a
> >>> compaction issue).
> >>>
> >>
> >> Correction: I disabled BALLOON_COMPACTION back then ... so ignore my
> >> comment regarding that :)
> >>
> >> But we should be able to build VIRTIO_BALLOON without PAGE_REPORTING
> >> somehow IMHO.
> >
> > I have moved all VIRTIO driver selection to defconfigs for RISC-V which was
> > the case before.
> >
> > Here's the patch:
> > https://patchwork.kernel.org/patch/11429217/
>
> Make perfect sense. Still I think we might want to have the option to
> build without page reporting in the future, similar to building without
> balloon compaction (which is another discussion).
As far as page reporting it would be pretty simple to make it so that
we can build without having it enabled. It would just depend on how we
want to go about it.
My past experience has been that you end up having to create a third
Kconfig option that depends on VIRTIO_BALLOON and selects the other
config item. Then it is just a matter of figuring out if we want to
use the new define as a wrapper in the virtio balloon driver, or if we
want to create stubbed-out versions of page reporting and balloon
compaction.
- Alex
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-next:master 7003/7050] include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
2020-03-10 15:08 ` Alexander Duyck
@ 2020-03-10 15:13 ` David Hildenbrand
0 siblings, 0 replies; 14+ messages in thread
From: David Hildenbrand @ 2020-03-10 15:13 UTC (permalink / raw)
To: Alexander Duyck
Cc: Anup Patel, kbuild test robot, linux-riscv, Anup Patel,
Atish Patra, Palmer Dabbelt, Alistair Francis,
Linux Memory Management List, Andrew Morton, Michael S. Tsirkin
On 10.03.20 16:08, Alexander Duyck wrote:
> On Tue, Mar 10, 2020 at 5:13 AM David Hildenbrand <david@redhat.com> wrote:
>>
>> On 10.03.20 13:02, Anup Patel wrote:
>>> On Tue, Mar 10, 2020 at 3:56 PM David Hildenbrand <david@redhat.com> wrote:
>>>>
>>>> On 10.03.20 11:22, David Hildenbrand wrote:
>>>>> On 10.03.20 03:19, Alexander Duyck wrote:
>>>>>> On Sun, Mar 8, 2020 at 7:54 PM kbuild test robot <lkp@intel.com> wrote:
>>>>>>>
>>>>>>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
>>>>>>> head: b86a6a241b7c60ca7a6ca4fb3c0d2aedbbf2c1b6
>>>>>>> commit: 120359931943d2b801ce51a1a045dcc0a5d1a55b [7003/7050] Merge branch 'akpm-current/current'
>>>>>>> config: riscv-randconfig-a001-20200308 (attached as .config)
>>>>>>> compiler: riscv64-linux-gcc (GCC) 7.5.0
>>>>>>> reproduce:
>>>>>>> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>>>>>>> chmod +x ~/bin/make.cross
>>>>>>> git checkout 120359931943d2b801ce51a1a045dcc0a5d1a55b
>>>>>>> # save the attached .config to linux build tree
>>>>>>> GCC_VERSION=7.5.0 make.cross ARCH=riscv
>>>>>>>
>>>>>>> If you fix the issue, kindly add following tag
>>>>>>> Reported-by: kbuild test robot <lkp@intel.com>
>>>>>>>
>>>>>>> All errors (new ones prefixed by >>):
>>>>>>>
>>>>>>> drivers/virtio/virtio_balloon.o: In function `leak_balloon':
>>>>>>> drivers/virtio/virtio_balloon.c:281: undefined reference to `balloon_page_dequeue'
>>>>>>> drivers/virtio/virtio_balloon.o: In function `__virtio_test_bit':
>>>>>>>>> include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
>>>>>>> drivers/virtio/virtio_balloon.o: In function `virtio_cread32':
>>>>>>> include/linux/virtio_config.h:423: undefined reference to `balloon_page_alloc'
>>>>>>> drivers/virtio/virtio_balloon.o: In function `fill_balloon':
>>>>>>>>> drivers/virtio/virtio_balloon.c:233: undefined reference to `balloon_page_enqueue'
>>>>>>> drivers/virtio/virtio_balloon.o: In function `__virtio_test_bit':
>>>>>>>>> include/linux/virtio_config.h:113: undefined reference to `page_reporting_register'
>>>>>>> drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_remove':
>>>>>>> drivers/gpu/drm/virtio/virtgpu_drv.c:139: undefined reference to `drm_dev_unplug'
>>>>>>> drivers/gpu/drm/virtio/virtgpu_drv.c:140: undefined reference to `drm_atomic_helper_shutdown'
>>>>>>> drivers/gpu/drm/virtio/virtgpu_drv.c:141: undefined reference to `drm_dev_put'
>>>>>>> drivers/gpu/drm/virtio/virtgpu_drv.o: In function `virtio_gpu_probe':
>>>>>>
>>>>>> It looks like somehow the config has CONFIG_VIRTIO_BALLOON enabled,
>>>>>> but didn't select CONFIG_MEMORY_BALLOON nor CONFIG_PAGE_REPORTING That
>>>>>> shouldn't be possible since in drivers/virtio/Kconfig we have the
>>>>>> following:
>>>>>> config VIRTIO_BALLOON
>>>>>> tristate "Virtio balloon driver"
>>>>>> depends on VIRTIO
>>>>>> select MEMORY_BALLOON
>>>>>> select PAGE_REPORTING
>>>>>
>>>>> IMHO that's perfectly valid. You might want to have ballooning without
>>>>> page compaction (MEMORY_BALLOON). Same with PAGE_REPORTING.
>>>>>
>>>>> AFAIK, "select" will still allow you to disable these things - which
>>>>> used to work fine with MEMORY_BALLOON (did that myself when debugging a
>>>>> compaction issue).
>>>>>
>>>>
>>>> Correction: I disabled BALLOON_COMPACTION back then ... so ignore my
>>>> comment regarding that :)
>>>>
>>>> But we should be able to build VIRTIO_BALLOON without PAGE_REPORTING
>>>> somehow IMHO.
>>>
>>> I have moved all VIRTIO driver selection to defconfigs for RISC-V which was
>>> the case before.
>>>
>>> Here's the patch:
>>> https://patchwork.kernel.org/patch/11429217/
>>
>> Make perfect sense. Still I think we might want to have the option to
>> build without page reporting in the future, similar to building without
>> balloon compaction (which is another discussion).
>
> As far as page reporting it would be pretty simple to make it so that
> we can build without having it enabled. It would just depend on how we
> want to go about it.
>
> My past experience has been that you end up having to create a third
> Kconfig option that depends on VIRTIO_BALLOON and selects the other
> config item. Then it is just a matter of figuring out if we want to
Yes, came to the same conclusion.
> use the new define as a wrapper in the virtio balloon driver, or if we
> want to create stubbed-out versions of page reporting and balloon
> compaction.
At least balloon compaction has stubs but still requires special
handling in the balloon drivers (e.g., skip balloon mount etc.)
Nothing urgent.
--
Thanks,
David / dhildenb
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2020-03-10 15:13 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-09 2:54 [linux-next:master 7003/7050] include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister' kbuild test robot
2020-03-10 0:53 ` Andrew Morton
2020-03-10 1:00 ` Alexander Duyck
2020-03-10 2:19 ` Alexander Duyck
2020-03-10 6:08 ` Michael S. Tsirkin
2020-03-10 7:56 ` Christian Borntraeger
2020-03-10 8:43 ` Anup Patel
2020-03-10 9:07 ` Michael S. Tsirkin
2020-03-10 10:22 ` David Hildenbrand
2020-03-10 10:26 ` David Hildenbrand
2020-03-10 12:02 ` Anup Patel
2020-03-10 12:13 ` David Hildenbrand
2020-03-10 15:08 ` Alexander Duyck
2020-03-10 15:13 ` David Hildenbrand
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).