All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: "Michael S. Tsirkin" <mst@redhat.com>, linux-kernel@vger.kernel.org
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
	"Alexander Duyck" <alexander.h.duyck@linux.intel.com>,
	"Xuan Zhuo" <xuanzhuo@linux.alibaba.com>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Linux Memory Management List" <linux-mm@kvack.org>,
	"David Hildenbrand" <david@redhat.com>,
	"Jason Wang" <jasowang@redhat.com>,
	"Eugenio Pérez" <eperezma@redhat.com>,
	virtualization@lists.linux.dev
Subject: Re: [PATCH v2 1/2] virtio_balloon: add work around for out of spec QEMU
Date: Thu, 11 Jul 2024 21:23:52 +0800	[thread overview]
Message-ID: <202407112126.plGUWi8I-lkp@intel.com> (raw)
In-Reply-To: <19d916257b76148f89de7386389eeb7267b1b61c.1720611677.git.mst@redhat.com>

Hi Michael,

kernel test robot noticed the following build errors:

[auto build test ERROR on next-20240710]
[cannot apply to uml/next remoteproc/rproc-next s390/features linus/master uml/fixes v6.10-rc7 v6.10-rc6 v6.10-rc5 v6.10-rc7]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Michael-S-Tsirkin/virtio_balloon-add-work-around-for-out-of-spec-QEMU/20240711-004346
base:   next-20240710
patch link:    https://lore.kernel.org/r/19d916257b76148f89de7386389eeb7267b1b61c.1720611677.git.mst%40redhat.com
patch subject: [PATCH v2 1/2] virtio_balloon: add work around for out of spec QEMU
config: i386-randconfig-005-20240711 (https://download.01.org/0day-ci/archive/20240711/202407112126.plGUWi8I-lkp@intel.com/config)
compiler: clang version 18.1.5 (https://github.com/llvm/llvm-project 617a15a9eac96088ae5e9134248d8236e34b91b1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240711/202407112126.plGUWi8I-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202407112126.plGUWi8I-lkp@intel.com/

All errors (new ones prefixed by >>):

>> drivers/virtio/virtio_balloon.c:603:55: error: too few arguments to function call, expected 5, have 4
     602 |                         err = virtio_find_vqs(vb->vdev,
         |                               ~~~~~~~~~~~~~~~
     603 |                                               VIRTIO_BALLOON_VQ_REPORTING, vqs_info, NULL);
         |                                                                                          ^
   include/linux/virtio_config.h:225:5: note: 'virtio_find_vqs' declared here
     225 | int virtio_find_vqs(struct virtio_device *vdev, unsigned int nvqs,
         |     ^               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     226 |                     struct virtqueue *vqs[],
         |                     ~~~~~~~~~~~~~~~~~~~~~~~~
     227 |                     struct virtqueue_info vqs_info[],
         |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     228 |                     struct irq_affinity *desc)
         |                     ~~~~~~~~~~~~~~~~~~~~~~~~~
   1 error generated.


vim +603 drivers/virtio/virtio_balloon.c

   560	
   561	static int init_vqs(struct virtio_balloon *vb)
   562	{
   563		struct virtqueue_info vqs_info[VIRTIO_BALLOON_VQ_MAX] = {};
   564		struct virtqueue *vqs[VIRTIO_BALLOON_VQ_MAX];
   565		int err;
   566	
   567		/*
   568		 * Inflateq and deflateq are used unconditionally. The names[]
   569		 * will be NULL if the related feature is not enabled, which will
   570		 * cause no allocation for the corresponding virtqueue in find_vqs.
   571		 */
   572		vqs_info[VIRTIO_BALLOON_VQ_INFLATE].callback = balloon_ack;
   573		vqs_info[VIRTIO_BALLOON_VQ_INFLATE].name = "inflate";
   574		vqs_info[VIRTIO_BALLOON_VQ_DEFLATE].callback = balloon_ack;
   575		vqs_info[VIRTIO_BALLOON_VQ_DEFLATE].name = "deflate";
   576	
   577		if (virtio_has_feature(vb->vdev, VIRTIO_BALLOON_F_STATS_VQ)) {
   578			vqs_info[VIRTIO_BALLOON_VQ_STATS].name = "stats";
   579			vqs_info[VIRTIO_BALLOON_VQ_STATS].callback = stats_request;
   580		}
   581	
   582		if (virtio_has_feature(vb->vdev, VIRTIO_BALLOON_F_FREE_PAGE_HINT))
   583			vqs_info[VIRTIO_BALLOON_VQ_FREE_PAGE].name = "free_page_vq";
   584	
   585		if (virtio_has_feature(vb->vdev, VIRTIO_BALLOON_F_REPORTING)) {
   586			vqs_info[VIRTIO_BALLOON_VQ_REPORTING].name = "reporting_vq";
   587			vqs_info[VIRTIO_BALLOON_VQ_REPORTING].callback = balloon_ack;
   588		}
   589	
   590		err = virtio_find_vqs(vb->vdev, VIRTIO_BALLOON_VQ_MAX, vqs,
   591				      vqs_info, NULL);
   592		if (err) {
   593			/*
   594			 * Try to work around QEMU bug which since 2020 confused vq numbers
   595			 * when VIRTIO_BALLOON_F_REPORTING but not
   596			 * VIRTIO_BALLOON_F_FREE_PAGE_HINT are offered.
   597			 */
   598			if (virtio_has_feature(vb->vdev, VIRTIO_BALLOON_F_REPORTING) &&
   599			    !virtio_has_feature(vb->vdev, VIRTIO_BALLOON_F_FREE_PAGE_HINT)) {
   600				vqs_info[VIRTIO_BALLOON_VQ_FREE_PAGE].name = "reporting_vq";
   601				vqs_info[VIRTIO_BALLOON_VQ_FREE_PAGE].callback = balloon_ack;
   602				err = virtio_find_vqs(vb->vdev,
 > 603						      VIRTIO_BALLOON_VQ_REPORTING, vqs_info, NULL);
   604			}
   605	
   606			if (err)
   607				return err;
   608		}
   609	
   610		vb->inflate_vq = vqs[VIRTIO_BALLOON_VQ_INFLATE];
   611		vb->deflate_vq = vqs[VIRTIO_BALLOON_VQ_DEFLATE];
   612		if (virtio_has_feature(vb->vdev, VIRTIO_BALLOON_F_STATS_VQ)) {
   613			struct scatterlist sg;
   614			unsigned int num_stats;
   615			vb->stats_vq = vqs[VIRTIO_BALLOON_VQ_STATS];
   616	
   617			/*
   618			 * Prime this virtqueue with one buffer so the hypervisor can
   619			 * use it to signal us later (it can't be broken yet!).
   620			 */
   621			num_stats = update_balloon_stats(vb);
   622	
   623			sg_init_one(&sg, vb->stats, sizeof(vb->stats[0]) * num_stats);
   624			err = virtqueue_add_outbuf(vb->stats_vq, &sg, 1, vb,
   625						   GFP_KERNEL);
   626			if (err) {
   627				dev_warn(&vb->vdev->dev, "%s: add stat_vq failed\n",
   628					 __func__);
   629				return err;
   630			}
   631			virtqueue_kick(vb->stats_vq);
   632		}
   633	
   634		if (virtio_has_feature(vb->vdev, VIRTIO_BALLOON_F_FREE_PAGE_HINT))
   635			vb->free_page_vq = vqs[VIRTIO_BALLOON_VQ_FREE_PAGE];
   636	
   637		if (virtio_has_feature(vb->vdev, VIRTIO_BALLOON_F_REPORTING))
   638			vb->reporting_vq = vqs[VIRTIO_BALLOON_VQ_REPORTING];
   639	
   640		return 0;
   641	}
   642	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

  reply	other threads:[~2024-07-11 13:24 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-10 11:42 [PATCH v2 0/2] virtio-balloon: make it spec compliant Michael S. Tsirkin
2024-07-10 11:42 ` [PATCH v2 1/2] virtio_balloon: add work around for out of spec QEMU Michael S. Tsirkin
2024-07-11 13:23   ` kernel test robot [this message]
2024-07-10 11:42 ` [PATCH v2 2/2] virtio: fix vq # for balloon Michael S. Tsirkin
2024-07-10 15:28   ` Mathieu Poirier
2024-07-10 18:12   ` Daniel Verkamp
2024-07-10 18:39     ` Michael S. Tsirkin
2024-07-10 19:58       ` Daniel Verkamp
2024-07-10 20:38         ` Michael S. Tsirkin
2024-07-10 22:54           ` Daniel Verkamp
2024-07-10 23:05             ` Michael S. Tsirkin
2024-07-10 18:40     ` Michael S. Tsirkin
2024-07-11 13:23   ` kernel test robot
2024-07-16 10:52   ` Halil Pasic
2024-07-10 18:25 ` [PATCH v2 0/2] virtio-balloon: make it spec compliant David Hildenbrand
2024-07-10 18:41   ` Michael S. Tsirkin

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=202407112126.plGUWi8I-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=alexander.h.duyck@linux.intel.com \
    --cc=david@redhat.com \
    --cc=eperezma@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=llvm@lists.linux.dev \
    --cc=mst@redhat.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=virtualization@lists.linux.dev \
    --cc=xuanzhuo@linux.alibaba.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.