From: "Michael S. Tsirkin" <mst@redhat.com>
To: Alexander Duyck <alexander.duyck@gmail.com>
Cc: anup.patel@wdc.com, kbuild test robot <lkp@intel.com>,
Linux Memory Management List <linux-mm@kvack.org>,
palmerdabbelt@google.com,
Christian Borntraeger <borntraeger@de.ibm.com>,
atish.patra@wdc.com, alistair.francis@wdc.com,
linux-riscv@lists.infradead.org,
Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [linux-next:master 7003/7050] include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
Date: Tue, 10 Mar 2020 02:08:34 -0400 [thread overview]
Message-ID: <20200310015958-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <CAKgT0UcHjPqF-djZWYXBg=vqkBfp295QihvPrWn6xq_jY4NNYg@mail.gmail.com>
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
WARNING: multiple messages have this Message-ID (diff)
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Alexander Duyck <alexander.duyck@gmail.com>
Cc: kbuild test robot <lkp@intel.com>,
linux-riscv@lists.infradead.org, anup.patel@wdc.com,
atish.patra@wdc.com, palmerdabbelt@google.com,
alistair.francis@wdc.com,
Andrew Morton <akpm@linux-foundation.org>,
Linux Memory Management List <linux-mm@kvack.org>,
Christian Borntraeger <borntraeger@de.ibm.com>
Subject: Re: [linux-next:master 7003/7050] include/linux/virtio_config.h:113: undefined reference to `page_reporting_unregister'
Date: Tue, 10 Mar 2020 02:08:34 -0400 [thread overview]
Message-ID: <20200310015958-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <CAKgT0UcHjPqF-djZWYXBg=vqkBfp295QihvPrWn6xq_jY4NNYg@mail.gmail.com>
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
next prev parent reply other threads:[~2020-03-10 6:08 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
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-09 2:54 ` kbuild test robot
2020-03-10 0:53 ` Andrew Morton
2020-03-10 0:53 ` Andrew Morton
2020-03-10 1:00 ` Alexander Duyck
2020-03-10 2:19 ` Alexander Duyck
2020-03-10 2:19 ` Alexander Duyck
2020-03-10 6:08 ` Michael S. Tsirkin [this message]
2020-03-10 6:08 ` Michael S. Tsirkin
2020-03-10 7:56 ` Christian Borntraeger
2020-03-10 7:56 ` Christian Borntraeger
2020-03-10 8:43 ` Anup Patel
2020-03-10 8:43 ` Anup Patel
2020-03-10 9:07 ` Michael S. Tsirkin
2020-03-10 9:07 ` Michael S. Tsirkin
2020-03-10 10:22 ` David Hildenbrand
2020-03-10 10:22 ` David Hildenbrand
2020-03-10 10:26 ` David Hildenbrand
2020-03-10 10:26 ` David Hildenbrand
2020-03-10 12:02 ` Anup Patel
2020-03-10 12:02 ` Anup Patel
2020-03-10 12:13 ` David Hildenbrand
2020-03-10 12:13 ` David Hildenbrand
2020-03-10 15:08 ` Alexander Duyck
2020-03-10 15:08 ` Alexander Duyck
2020-03-10 15:13 ` David Hildenbrand
2020-03-10 15:13 ` David Hildenbrand
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200310015958-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=alexander.duyck@gmail.com \
--cc=alistair.francis@wdc.com \
--cc=anup.patel@wdc.com \
--cc=atish.patra@wdc.com \
--cc=borntraeger@de.ibm.com \
--cc=linux-mm@kvack.org \
--cc=linux-riscv@lists.infradead.org \
--cc=lkp@intel.com \
--cc=palmerdabbelt@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.