From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755911AbdEKN17 convert rfc822-to-8bit (ORCPT ); Thu, 11 May 2017 09:27:59 -0400 Received: from mx1.redhat.com ([209.132.183.28]:32780 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755496AbdEKN15 (ORCPT ); Thu, 11 May 2017 09:27:57 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com E09578553D Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=kraxel@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com E09578553D Message-ID: <1494509273.17970.12.camel@redhat.com> Subject: Re: [RFC PATCH 6/6] drm/i915/gvt: support QEMU getting the dmabuf From: Gerd Hoffmann To: "Chen, Xiaoguang" Cc: Alex Williamson , "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" Date: Thu, 11 May 2017 15:27:53 +0200 In-Reply-To: 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> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8BIT Mime-Version: 1.0 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Thu, 11 May 2017 13:27:57 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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. cheers, Gerd