RE: [PATCH 2/2] tools/virtio: Add hints when module is not installed

From: Liming Wu
Date: Sun Oct 08 2023 - 22:47:44 EST




> -----Original Message-----
> From: Jason Wang <jasowang@xxxxxxxxxx>
> Sent: Sunday, October 8, 2023 12:36 PM
> To: Liming Wu <liming.wu@xxxxxxxxxxxxxxx>
> Cc: Michael S . Tsirkin <mst@xxxxxxxxxx>; kvm@xxxxxxxxxxxxxxx;
> virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; 398776277@xxxxxx
> Subject: Re: [PATCH 2/2] tools/virtio: Add hints when module is not installed
>
> On Tue, Sep 26, 2023 at 1:00 PM <liming.wu@xxxxxxxxxxxxxxx> wrote:
> >
> > From: Liming Wu <liming.wu@xxxxxxxxxxxxxxx>
> >
> > Need to insmod vhost_test.ko before run virtio_test.
> > Give some hints to users.
> >
> > Signed-off-by: Liming Wu <liming.wu@xxxxxxxxxxxxxxx>
> > ---
> > tools/virtio/virtio_test.c | 4 ++++
> > 1 file changed, 4 insertions(+)
> >
> > diff --git a/tools/virtio/virtio_test.c b/tools/virtio/virtio_test.c
> > index 028f54e6854a..ce2c4d93d735 100644
> > --- a/tools/virtio/virtio_test.c
> > +++ b/tools/virtio/virtio_test.c
> > @@ -135,6 +135,10 @@ static void vdev_info_init(struct vdev_info* dev,
> unsigned long long features)
> > dev->buf = malloc(dev->buf_size);
> > assert(dev->buf);
> > dev->control = open("/dev/vhost-test", O_RDWR);
> > +
> > + if (dev->control < 0)
> > + fprintf(stderr, "Install vhost_test module" \
> > + "(./vhost_test/vhost_test.ko) firstly\n");
>
> There should be many other reasons to fail for open().
>
> Let's use strerror()?
Yes, Thanks for the review.
Please rechecked the code as follow:
--- a/tools/virtio/virtio_test.c
+++ b/tools/virtio/virtio_test.c
@@ -135,6 +135,11 @@ static void vdev_info_init(struct vdev_info* dev, unsigned long long features)
dev->buf = malloc(dev->buf_size);
assert(dev->buf);
dev->control = open("/dev/vhost-test", O_RDWR);
+
+ if (dev->control == NULL)
+ fprintf(stderr,
+ "%s: Check whether vhost_test.ko is installed.\n",
+ strerror(errno));
assert(dev->control >= 0);
r = ioctl(dev->control, VHOST_SET_OWNER, NULL);
assert(r >= 0);

Thanks