linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Alexander Duyck <alexander.duyck@gmail.com>
To: David Hildenbrand <david@redhat.com>
Cc: Anup Patel <anup@brainfault.org>,
	kbuild test robot <lkp@intel.com>,
	 linux-riscv <linux-riscv@lists.infradead.org>,
	Anup Patel <anup.patel@wdc.com>,
	 Atish Patra <atish.patra@wdc.com>,
	Palmer Dabbelt <palmerdabbelt@google.com>,
	 Alistair Francis <alistair.francis@wdc.com>,
	 Linux Memory Management List <linux-mm@kvack.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	 "Michael S. Tsirkin" <mst@redhat.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 08:08:12 -0700	[thread overview]
Message-ID: <CAKgT0Uco3j_KFKvPKt0GGtfjJQFozqDjnmMYH_9znfKPDoXGVA@mail.gmail.com> (raw)
In-Reply-To: <8373ea85-40d8-972c-fb45-dcfc9142f13b@redhat.com>

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


  reply	other threads:[~2020-03-10 15:08 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-09  2:54 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 [this message]
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=CAKgT0Uco3j_KFKvPKt0GGtfjJQFozqDjnmMYH_9znfKPDoXGVA@mail.gmail.com \
    --to=alexander.duyck@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=alistair.francis@wdc.com \
    --cc=anup.patel@wdc.com \
    --cc=anup@brainfault.org \
    --cc=atish.patra@wdc.com \
    --cc=david@redhat.com \
    --cc=linux-mm@kvack.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=lkp@intel.com \
    --cc=mst@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox