On Fri, Jun 28, 2019 at 3:05 AM Gerd Hoffmann <kraxel@xxxxxxxxxx> wrote: > > On Wed, Jun 26, 2019 at 04:55:20PM -0700, Chia-I Wu wrote: > > On Wed, Jun 19, 2019 at 11:07 PM Gerd Hoffmann <kraxel@xxxxxxxxxx> wrote: > > > > > > Use drm_gem_reservation_object_wait() in virtio_gpu_wait_ioctl(). > > > This also makes the ioctl run lockless. > > The userspace has a BO cache to avoid freeing BOs immediately but to > > reuse them on next allocations. The BO cache checks if a BO is busy > > before reuse, and I am seeing a big negative perf impact because of > > slow virtio_gpu_wait_ioctl. I wonder if this helps. > > Could help indeed (assuming it checks with NOWAIT). Yeah, that is the case. > > How many objects does userspace check in one go typically? Maybe it > makes sense to add an ioctl which checks a list, to reduce the system > call overhead. One. The cache sorts BOs by the time they are freed, and checks only the first (compatible) BO. If it is idle, cache hit. Otherwise, cache miss. A new ioctl probably won't help. > > > > + if (args->flags & VIRTGPU_WAIT_NOWAIT) { > > > + obj = drm_gem_object_lookup(file, args->handle); > > Don't we need a NULL check here? > > Yes, we do. Will fix. > > thanks, > Gerd > _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization