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 <[email protected]> Signed-off-by: Xie Yongji <[email protected]> --- 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 _______________________________________________ Virtio-fs mailing list [email protected] https://www.redhat.com/mailman/listinfo/virtio-fs
