[Virtio-fs] [External] Re: [RFC PATCH 9/9] virtiofsd: (work around) Comment qsort in inflight I/O tracking

Jiachen Zhang zhangjiachen.jaycee at bytedance.com
Thu Feb 4 14:20:05 UTC 2021


On Thu, Feb 4, 2021 at 8:16 PM Dr. David Alan Gilbert <dgilbert at redhat.com>
wrote:

> * Jiachen Zhang (zhangjiachen.jaycee at bytedance.com) wrote:
> > This is a work around. The qsort function will malloc memory instead of
> use
> > stack memory when the resubmit_num is larger than 64 (total size larger
> than
> > 1024 Bytes). This will cause seccomp kill virtiofsd, so we comment qsort.
> > This work around will not affect the correctness of inflight I/O
> tracking.
> >
> > Signed-off-by: Jiachen Zhang <zhangjiachen.jaycee at bytedance.com>
> > Signed-off-by: Xie Yongji <xieyongji at bytedance.com>
>
> That's an odd hack!   Just follow the audit log to see what seccomp was
> upset by and add the right syscall.
>
> Dave
>
>
We recently found the cause is sysinfo (2). We will revert this and add
sysinfo to the
whitelist in the 2nd version patchset. Thanks!

Jiachen



> > ---
> >  contrib/libvhost-user/libvhost-user.c | 18 ------------------
> >  1 file changed, 18 deletions(-)
> >
> > diff --git a/contrib/libvhost-user/libvhost-user.c
> b/contrib/libvhost-user/libvhost-user.c
> > index 8c97013e59..c226d5d915 100644
> > --- a/contrib/libvhost-user/libvhost-user.c
> > +++ b/contrib/libvhost-user/libvhost-user.c
> > @@ -1167,20 +1167,6 @@ vu_check_queue_msg_file(VuDev *dev, VhostUserMsg
> *vmsg)
> >      return true;
> >  }
> >
> > -static int
> > -inflight_desc_compare(const void *a, const void *b)
> > -{
> > -    VuVirtqInflightDesc *desc0 = (VuVirtqInflightDesc *)a,
> > -                        *desc1 = (VuVirtqInflightDesc *)b;
> > -
> > -    if (desc1->counter > desc0->counter &&
> > -        (desc1->counter - desc0->counter) < VIRTQUEUE_MAX_SIZE * 2) {
> > -        return 1;
> > -    }
> > -
> > -    return -1;
> > -}
> > -
> >  static int
> >  vu_check_queue_inflights(VuDev *dev, VuVirtq *vq)
> >  {
> > @@ -1236,10 +1222,6 @@ vu_check_queue_inflights(VuDev *dev, VuVirtq *vq)
> >              }
> >          }
> >
> > -        if (vq->resubmit_num > 1) {
> > -            qsort(vq->resubmit_list, vq->resubmit_num,
> > -                  sizeof(VuVirtqInflightDesc), inflight_desc_compare);
> > -        }
> >          vq->counter = vq->resubmit_list[0].counter + 1;
> >      }
> >
> > --
> > 2.20.1
> >
> --
> Dr. David Alan Gilbert / dgilbert at redhat.com / Manchester, UK
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/virtio-fs/attachments/20210204/51dade92/attachment.htm>


More information about the Virtio-fs mailing list