All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Jason Wang <jasowang@redhat.com>
Cc: linux-kernel@vger.kernel.org,
	"Eugenio Pérez" <eperezma@redhat.com>,
	kvm@vger.kernel.org, virtualization@lists.linux-foundation.org,
	netdev@vger.kernel.org
Subject: Re: [PATCH] virtio/test: fix up after IOTLB changes
Date: Thu, 2 Apr 2020 08:53:58 -0400	[thread overview]
Message-ID: <20200402084021-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <921fe999-e183-058d-722a-1a6a6ab066e0@redhat.com>

On Thu, Apr 02, 2020 at 12:01:56PM +0800, Jason Wang wrote:
> 
> On 2020/4/2 上午12:51, Michael S. Tsirkin wrote:
> > Allow building vringh without IOTLB (that's the case for userspace
> > builds, will be useful for CAIF/VOD down the road too).
> > Update for API tweaks.
> > Don't include vringh with kernel builds.
> 
> 
> I'm not quite sure we need this.
> 
> E.g the userspace accessor is not used by CAIF/VOP.

Well any exported symbols are always compiled in, right?
So we can save some kernel memory by not building unused stuff ...


> > 
> > Cc: Jason Wang <jasowang@redhat.com>
> > Cc: Eugenio Pérez <eperezma@redhat.com>
> > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> > ---
> >   drivers/vhost/test.c   | 4 ++--
> >   drivers/vhost/vringh.c | 5 +++++
> >   include/linux/vringh.h | 2 ++
> >   tools/virtio/Makefile  | 3 ++-
> >   4 files changed, 11 insertions(+), 3 deletions(-)
> > 
> > diff --git a/drivers/vhost/test.c b/drivers/vhost/test.c
> > index 394e2e5c772d..9a3a09005e03 100644
> > --- a/drivers/vhost/test.c
> > +++ b/drivers/vhost/test.c
> > @@ -120,7 +120,7 @@ static int vhost_test_open(struct inode *inode, struct file *f)
> >   	vqs[VHOST_TEST_VQ] = &n->vqs[VHOST_TEST_VQ];
> >   	n->vqs[VHOST_TEST_VQ].handle_kick = handle_vq_kick;
> >   	vhost_dev_init(dev, vqs, VHOST_TEST_VQ_MAX, UIO_MAXIOV,
> > -		       VHOST_TEST_PKT_WEIGHT, VHOST_TEST_WEIGHT);
> > +		       VHOST_TEST_PKT_WEIGHT, VHOST_TEST_WEIGHT, NULL);
> >   	f->private_data = n;
> > @@ -225,7 +225,7 @@ static long vhost_test_reset_owner(struct vhost_test *n)
> >   {
> >   	void *priv = NULL;
> >   	long err;
> > -	struct vhost_umem *umem;
> > +	struct vhost_iotlb *umem;
> >   	mutex_lock(&n->dev.mutex);
> >   	err = vhost_dev_check_owner(&n->dev);
> > diff --git a/drivers/vhost/vringh.c b/drivers/vhost/vringh.c
> > index ee0491f579ac..878e565dfffe 100644
> > --- a/drivers/vhost/vringh.c
> > +++ b/drivers/vhost/vringh.c
> > @@ -13,9 +13,11 @@
> >   #include <linux/uaccess.h>
> >   #include <linux/slab.h>
> >   #include <linux/export.h>
> > +#ifdef VHOST_IOTLB
> 
> 
> Kbuild bot reports build issues with this.
> 
> It looks to me we should use #if IS_ENABLED(CONFIG_VHOST_IOTLB) here and
> following checks.
> 
> Thanks
> 

In fact IS_REACHEABLE is probably the right thing to do.


> 
> >   #include <linux/bvec.h>
> >   #include <linux/highmem.h>
> >   #include <linux/vhost_iotlb.h>
> > +#endif
> >   #include <uapi/linux/virtio_config.h>
> >   static __printf(1,2) __cold void vringh_bad(const char *fmt, ...)
> > @@ -1059,6 +1061,8 @@ int vringh_need_notify_kern(struct vringh *vrh)
> >   }
> >   EXPORT_SYMBOL(vringh_need_notify_kern);
> > +#ifdef VHOST_IOTLB
> > +
> >   static int iotlb_translate(const struct vringh *vrh,
> >   			   u64 addr, u64 len, struct bio_vec iov[],
> >   			   int iov_size, u32 perm)
> > @@ -1416,5 +1420,6 @@ int vringh_need_notify_iotlb(struct vringh *vrh)
> >   }
> >   EXPORT_SYMBOL(vringh_need_notify_iotlb);
> > +#endif
> >   MODULE_LICENSE("GPL");
> > diff --git a/include/linux/vringh.h b/include/linux/vringh.h
> > index bd0503ca6f8f..ebff121c0b02 100644
> > --- a/include/linux/vringh.h
> > +++ b/include/linux/vringh.h
> > @@ -14,8 +14,10 @@
> >   #include <linux/virtio_byteorder.h>
> >   #include <linux/uio.h>
> >   #include <linux/slab.h>
> > +#ifdef VHOST_IOTLB
> >   #include <linux/dma-direction.h>
> >   #include <linux/vhost_iotlb.h>
> > +#endif
> >   #include <asm/barrier.h>
> >   /* virtio_ring with information needed for host access. */
> > diff --git a/tools/virtio/Makefile b/tools/virtio/Makefile
> > index f33f32f1d208..d3f152f4660b 100644
> > --- a/tools/virtio/Makefile
> > +++ b/tools/virtio/Makefile
> > @@ -22,7 +22,8 @@ OOT_CONFIGS=\
> >   	CONFIG_VHOST=m \
> >   	CONFIG_VHOST_NET=n \
> >   	CONFIG_VHOST_SCSI=n \
> > -	CONFIG_VHOST_VSOCK=n
> > +	CONFIG_VHOST_VSOCK=n \
> > +	CONFIG_VHOST_RING=n
> >   OOT_BUILD=KCFLAGS="-I "${OOT_VHOST} ${MAKE} -C ${OOT_KSRC} V=${V}
> >   oot-build:
> >   	echo "UNSUPPORTED! Don't use the resulting modules in production!"

  reply	other threads:[~2020-04-02 12:53 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-01 16:51 [PATCH] virtio/test: fix up after IOTLB changes Michael S. Tsirkin
2020-04-01 16:51 ` Michael S. Tsirkin
2020-04-02  4:01 ` Jason Wang
2020-04-02 12:53   ` Michael S. Tsirkin [this message]
2020-04-02 14:18     ` Jason Wang
2020-04-02 14:18       ` Jason Wang

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=20200402084021-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=eperezma@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=virtualization@lists.linux-foundation.org \
    /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.