From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757245AbdEKPpb (ORCPT ); Thu, 11 May 2017 11:45:31 -0400 Received: from mx1.redhat.com ([209.132.183.28]:49016 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757079AbdEKPp2 (ORCPT ); Thu, 11 May 2017 11:45:28 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 4502337EEE Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=alex.williamson@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 4502337EEE Date: Thu, 11 May 2017 09:45:26 -0600 From: Alex Williamson To: Gerd Hoffmann Cc: "Chen, Xiaoguang" , "Tian, Kevin" , "intel-gfx@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" , "zhenyuw@linux.intel.com" , "Lv, Zhiyuan" , "intel-gvt-dev@lists.freedesktop.org" , "Wang, Zhi A" Subject: Re: [RFC PATCH 6/6] drm/i915/gvt: support QEMU getting the dmabuf Message-ID: <20170511094526.164985ee@w520.home> In-Reply-To: <1494509273.17970.12.camel@redhat.com> References: <1493372130-27727-1-git-send-email-xiaoguang.chen@intel.com> <1493372130-27727-7-git-send-email-xiaoguang.chen@intel.com> <1493718658.8581.82.camel@redhat.com> <20170504100833.199bc8ba@t450s.home> <1493967331.371.53.camel@redhat.com> <20170505091115.7a680636@t450s.home> <1494509273.17970.12.camel@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Thu, 11 May 2017 15:45:28 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 11 May 2017 15:27:53 +0200 Gerd Hoffmann wrote: > Hi, > > > While read the framebuffer region we have to tell the vendor driver which framebuffer we want to read? There are two framebuffers now in KVMGT that is primary and cursor. > > There are two methods to implement this: > > 1) write the plane id first and then read the framebuffer. > > 2) create 2 vfio regions one for primary and one for cursor. > > (3) Place information for both planes into one vfio region. > Which allows to fetch both with a single read() syscall. > > The question is how you'll get the file descriptor then. If the ioctl > returns the dma-buf fd only you have a racy interface: Things can > change between read(vfio-region) and ioctl(need-dmabuf-fd). > > ioctl(need-dma-buf) could return both dmabuf fd and plane info to fix > the race, but then it is easier to go with ioctl only interface (simliar > to the orginal one from dec last year) I think. If the dmabuf fd is provided by a separate mdev vendor driver specific ioctl, I don't see how vfio regions should be involved. Selecting which framebuffer should be an ioctl parameter. What sort of information needs to be conveyed about each plane? Is it static information or something that needs to be read repeatedly? Do we need it before we get the dmabuf fd or can it be an ioctl on the dmabuf fd? Thanks, Alex