From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Williamson Subject: Re: [PATCH v9 5/7] vfio: Define vfio based dma-buf operations Date: Tue, 20 Jun 2017 17:22:04 -0600 Message-ID: <20170620172204.09405cf4@w520.home> References: <1497513611-2814-1-git-send-email-xiaoguang.chen@intel.com> <1497513611-2814-6-git-send-email-xiaoguang.chen@intel.com> <1497542438.29252.1.camel@redhat.com> <20170615143833.7526351b@w520.home> <24c4880b-24f5-ea07-834c-c77d3e895c78@nvidia.com> <1497854312.4207.4.camel@redhat.com> <20170619085530.1f5e46dc@w520.home> <237F54289DF84E4997F34151298ABEBC7C56EBE0@SHSMSX101.ccr.corp.intel.com> <1497956256.16795.7.camel@redhat.com> <20170620090004.44ac7fbc@w520.home> <237F54289DF84E4997F34151298ABEBC7C56F3DC@SHSMSX101.ccr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <237F54289DF84E4997F34151298ABEBC7C56F3DC@SHSMSX101.ccr.corp.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Zhang, Tina" Cc: "Wang, Zhenyu Z" , "intel-gfx@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" , "Chen, Xiaoguang" , Kirti Wankhede , Gerd Hoffmann , "intel-gvt-dev@lists.freedesktop.org" , "Lv, Zhiyuan" List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAyMCBKdW4gMjAxNyAyMzowMTo1MyArMDAwMAoiWmhhbmcsIFRpbmEiIDx0aW5hLnpo YW5nQGludGVsLmNvbT4gd3JvdGU6Cgo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiA+ IEZyb206IEFsZXggV2lsbGlhbXNvbiBbbWFpbHRvOmFsZXgud2lsbGlhbXNvbkByZWRoYXQuY29t XQo+ID4gU2VudDogVHVlc2RheSwgSnVuZSAyMCwgMjAxNyAxMTowMCBQTQo+ID4gVG86IEdlcmQg SG9mZm1hbm4gPGtyYXhlbEByZWRoYXQuY29tPgo+ID4gQ2M6IFpoYW5nLCBUaW5hIDx0aW5hLnpo YW5nQGludGVsLmNvbT47IGludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IGxpbnV4LQo+ ID4ga2VybmVsQHZnZXIua2VybmVsLm9yZzsgS2lydGkgV2Fua2hlZGUgPGt3YW5raGVkZUBudmlk aWEuY29tPjsgQ2hlbiwKPiA+IFhpYW9ndWFuZyA8eGlhb2d1YW5nLmNoZW5AaW50ZWwuY29tPjsg aW50ZWwtZ3Z0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmc7Cj4gPiBMdiwgWmhpeXVhbiA8emhp eXVhbi5sdkBpbnRlbC5jb20+OyBXYW5nLCBaaGkgQSA8emhpLmEud2FuZ0BpbnRlbC5jb20+Owo+ ID4gV2FuZywgWmhlbnl1IFogPHpoZW55dS56LndhbmdAaW50ZWwuY29tPgo+ID4gU3ViamVjdDog UmU6IFtJbnRlbC1nZnhdIFtQQVRDSCB2OSA1LzddIHZmaW86IERlZmluZSB2ZmlvIGJhc2VkIGRt YS1idWYKPiA+IG9wZXJhdGlvbnMKPiA+IAo+ID4gT24gVHVlLCAyMCBKdW4gMjAxNyAxMjo1Nzoz NiArMDIwMAo+ID4gR2VyZCBIb2ZmbWFubiA8a3JheGVsQHJlZGhhdC5jb20+IHdyb3RlOgo+ID4g ICAKPiA+ID4gT24gVHVlLCAyMDE3LTA2LTIwIGF0IDA4OjQxICswMDAwLCBaaGFuZywgVGluYSB3 cm90ZTogIAo+ID4gPiA+IEhpLAo+ID4gPiA+Cj4gPiA+ID4gVGhhbmtzIGZvciBhbGwgdGhlIGNv bW1lbnRzLiBIZXJlIGFyZSB0aGUgc3VtbWFyaWVzOgo+ID4gPiA+Cj4gPiA+ID4gMS4gTW9kaWZ5 IHRoZSBzdHJ1Y3R1cmVzIHRvIG1ha2UgaXQgbW9yZSBnZW5lcmFsLgo+ID4gPiA+IHN0cnVjdCB2 ZmlvX2RldmljZV9nZnhfcGxhbmVfaW5mbyB7Cj4gPiA+ID4gCV9fdTY0IHN0YXJ0Owo+ID4gPiA+ IAlfX3U2NCBkcm1fZm9ybWF0X21vZDsKPiA+ID4gPiAJX191MzIgZHJtX2Zvcm1hdDsKPiA+ID4g PiAJX191MzIgd2lkdGg7Cj4gPiA+ID4gCV9fdTMyIGhlaWdodDsKPiA+ID4gPiAJX191MzIgc3Ry aWRlOwo+ID4gPiA+IAlfX3UzMiBzaXplOwo+ID4gPiA+IAlfX3UzMiB4X3BvczsKPiA+ID4gPiAJ X191MzIgeV9wb3M7Cj4gPiA+ID4gCV9fdTMyIGdlbmVyYXRpb247Cj4gPiA+ID4gfTsgIAo+ID4g Pgo+ID4gPiBMb29rcyBnb29kIHRvIG1lLgo+ID4gPiAgCj4gPiA+ID4gc3RydWN0IHZmaW9fZGV2 aWNlX3F1ZXJ5X2dmeF9wbGFuZSB7Cj4gPiA+ID4gCV9fdTMyIGFyZ3N6Owo+ID4gPiA+IAlfX3Uz MiBmbGFnczsKPiA+ID4gPiAjZGVmaW5lIFZGSU9fR0ZYX1BMQU5FX0ZMQUdTX1JFR0lPTl9JRAkJ KDEgPDwgMCkKPiA+ID4gPiAjZGVmaW5lIFZGSU9fR0ZYX1BMQU5FX0ZMQUdTX1BMQU5FX0lECQko MSA8PCAxKQo+ID4gPiA+IAlzdHJ1Y3QgdmZpb19kZXZpY2VfZ2Z4X3BsYW5lX2luZm8gcGxhbmVf aW5mbzsKPiA+ID4gPiAJX191MzIgaWQ7Cj4gPiA+ID4gfTsgIAo+ID4gPgo+ID4gPiBJJ20gbm90 IGNvbnZpbmNlZCB0aGUgZmxhZ3MgYXJlIGEgZ3JlYXQgaWRlYS4gIFdoZW5ldmVyIGRtYWJ1ZnMg b3IgYQo+ID4gPiByZWdpb24gaXMgdXNlZCBpcyBhIHN0YXRpYyBwcm9wZXJ0eSBvZiB0aGUgZGV2 aWNlLCBub3Qgb2YgZWFjaAo+ID4gPiBpbmRpdmlkdWFsIHBsYW5lLgo+ID4gPgo+ID4gPgo+ID4g PiBJIHRoaW5rIHdlIHNob3VsZCBoYXZlIHRoaXMgZm9yIHVzZXJzcGFjZSB0byBmaWd1cmU6Cj4g PiA+Cj4gPiA+IGVudW0gdmZpb19kZXZpY2VfZ2Z4X3R5cGUgewo+ID4gPiAgICAgICAgIFZGSU9f REVWSUNFX0dGWF9OT05FLAo+ID4gPiAgICAgICAgIFZGSU9fREVWSUNFX0dGWF9ETUFCVUYsCj4g PiA+ICAgICAgICAgVkZJT19ERVZJQ0VfR0ZYX1JFR0lPTiwKPiA+ID4gfTsKPiA+ID4KPiA+ID4g c3RydWN0IHZmaW9fZGV2aWNlX2dmeF9xdWVyeV9jYXBzIHsKPiA+ID4gICAgICAgICBfX3UzMiBh cmdzejsKPiA+ID4gICAgICAgICBfX3UzMiBmbGFnczsKPiA+ID4gICAgICAgICBlbnVtIHZmaW9f ZGV2aWNlX2dmeF90eXBlOwo+ID4gPiB9OyAgCj4gPiAKPiA+IFdlIGFscmVhZHkgaGF2ZSBWRklP X0RFVklDRV9HRVRfSU5GTyB3aGljaCByZXR1cm5zOgo+ID4gCj4gPiBzdHJ1Y3QgdmZpb19kZXZp Y2VfaW5mbyB7Cj4gPiAgICAgICAgIF9fdTMyICAgYXJnc3o7Cj4gPiAgICAgICAgIF9fdTMyICAg ZmxhZ3M7Cj4gPiAjZGVmaW5lIFZGSU9fREVWSUNFX0ZMQUdTX1JFU0VUICgxIDw8IDApICAgICAg ICAvKiBEZXZpY2Ugc3VwcG9ydHMgcmVzZXQgKi8KPiA+ICNkZWZpbmUgVkZJT19ERVZJQ0VfRkxB R1NfUENJICAgKDEgPDwgMSkgICAgICAgIC8qIHZmaW8tcGNpIGRldmljZSAqLwo+ID4gI2RlZmlu ZSBWRklPX0RFVklDRV9GTEFHU19QTEFURk9STSAoMSA8PCAyKSAgICAgLyogdmZpby1wbGF0Zm9y bSBkZXZpY2UgKi8KPiA+ICNkZWZpbmUgVkZJT19ERVZJQ0VfRkxBR1NfQU1CQSAgKDEgPDwgMykg ICAgICAgIC8qIHZmaW8tYW1iYSBkZXZpY2UgKi8KPiA+ICNkZWZpbmUgVkZJT19ERVZJQ0VfRkxB R1NfQ0NXICAgKDEgPDwgNCkgICAgICAgIC8qIHZmaW8tY2N3IGRldmljZSAqLwo+ID4gICAgICAg ICBfX3UzMiAgIG51bV9yZWdpb25zOyAgICAvKiBNYXggcmVnaW9uIGluZGV4ICsgMSAqLwo+ID4g ICAgICAgICBfX3UzMiAgIG51bV9pcnFzOyAgICAgICAvKiBNYXggSVJRIGluZGV4ICsgMSAqLwo+ ID4gfTsKPiA+IAo+ID4gV2UgY291bGQgdXNlIHR3byBmbGFnIGJpdHMgdG8gaW5kaWNhdGUgZG1h YnVmIG9yIGdyYXBoaWNzIHJlZ2lvbiBzdXBwb3J0Lgo+ID4gdmZpb19kZXZpY2VfZ2Z4X3F1ZXJ5 X2NhcHMgc2VlbXMgdG8gaW1wbHkgYSBuZXcgaW9jdGwsIHdoaWNoIHdvdWxkIGJlCj4gPiB1bm5l Y2Vzc2FyeS4KPiA+ICAgCj4gPiA+IFRoZW4gdGhpcyB0byBxdWVyeSB0aGUgcGxhbmU6Cj4gPiA+ Cj4gPiA+IHN0cnVjdCB2ZmlvX2RldmljZV9nZnhfcXVlcnlfcGxhbmUgewo+ID4gPiAgICAgICAg IF9fdTMyIGFyZ3N6Owo+ID4gPiAgICAgICAgIF9fdTMyIGZsYWdzOwo+ID4gPiAgICAgICAgIHN0 cnVjdCB2ZmlvX2RldmljZV9nZnhfcGxhbmVfaW5mbyBwbGFuZV9pbmZvOyAgLyogb3V0ICovCj4g PiA+ICAgICAgICAgX191MzIgcGxhbmVfdHlwZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiBpbiAgKi8KPiA+ID4gfTsgIAo+ID4gCj4gPiBJJ20gbm90IHN1cmUgd2h5IHdlJ3JlIHVz aW5nIGFuIGVudW0gZm9yIHNvbWV0aGluZyB0aGF0IGNhbiBjdXJyZW50bHkgYmUKPiA+IGRlZmlu ZWQgd2l0aCAyIGJpdHMsIHNlZW1zIGxpa2UgdGhpcyB3b3VsZCBiZSBhbm90aGVyIGdvb2QgdXNl IG9mIGZsYWdzLiAgV2UKPiA+IGNvdWxkIGV2ZW4gZW1iZWQgYW4gZW51bSBpbnRvIHRoZSBmbGFn cyBpZiB3ZSB3YW50IHRvIGxlYXZlIHNvbWUgZXhwYW5zaW9uCj4gPiByb29tLCA0IGJpdHMgbWF5 YmU/ICBBbHNvLCBJIHdhcyBpbWFnaW5pbmcgdGhhdCBhIGRldmljZSBjb3VsZCBzdXBwb3J0IG11 bHRpcGxlCj4gPiBncmFwaGljcyByZWdpb25zLCB0aGF0J3Mgd2hlcmUgc3BlY2lmeWluZyB0aGUg ImlkIiBhcyBhIHJlZ2lvbiBpbmRleCBzZWVtZWQKPiA+IHVzZWZ1bC4gIFdlIGxvc2UgdGhhdCBh YmlsaXR5IGhlcmUgdW5sZXNzIHdlIGdvIGJhY2sgdG8gZGVmaW5pbmcgYSBmbGFnIGJpdCB0bwo+ ID4gc3BlY2lmeSBob3cgdG8gaW50ZXJwcmV0IHRoaXMgbGFzdCBmaWVsZC4KPiA+ICAgCj4gPiA+ IDIuIFJlbW92ZSBkbWFidWYgbWdyIGZkIGFuZCBhZGQgdGhlc2UgdHdvIGlvY3RsIGNvbW1hbmRz IHRvIHRoZSB2ZmlvCj4gPiA+IGRldmljZSBmZC4gIAo+ID4gPiA+IFZGSU9fREVWSUNFX1FVRVJZ X0dGWF9QTEFORSA6IHVzZWQgdG8gcXVlcnkKPiA+ID4gPiB2ZmlvX2RldmljZV9nZnhfcGxhbmVf aW5mby4gIAo+ID4gPgo+ID4gPiBZZXMuCj4gPiA+ICAKPiA+ID4gPiBWRklPX0RFVklDRV9HRVRf RE1BQlVGX0ZEOiB1c2VkIHRvIGNyZWF0ZSBhbmQgcmV0dXJuIHRoZSBkbWFidWYgZmQuICAKPiA+ IAo+ID4gSSdtIG5vdCBjb252aW5jZWQgdGhpcyBhZGRzIHZhbHVlLCBidXQgSSdsbCBsaXN0IGl0 IGFzIGFuIG9wdGlvbjoKPiA+IAo+ID4gVkZJT19ERVZJQ0VfUVVFUlkoVkZJT19ERVZJQ0VfR0ZY X1BMQU5FKQo+ID4gVkZJT19ERVZJQ0VfR0VUX0ZEKFZGSU9fREVWSUNFX0dGWF9ETUFCVUZfRkQp Cj4gPiAKPiA+IFRoZSBiZW5lZml0IGlzIHRoYXQgaXQgbWlnaHQgaGVscCB0byBhdm9pZCBhIHBy b2xpZmVyYXRpb24gb2YgaW9jdGxzIG9uIHRoZSBkZXZpY2UgdGhlCj4gPiBwYWluIGlzIHRoYXQg d2UgbmVlZCB0byBlaXRoZXIgZGVmaW5lIGEgZmllbGQgb3Igc2VjdGlvbiBvZiBmbGFncyB3aGlj aCBpZGVudGlmeQo+ID4gd2hhdCBpcyBiZWluZyBxdWVyaWVkIG9yIHdoYXQgdHlwZSBvZiBkZXZp Y2UgZmQgaXMgYmVpbmcgcmVxdWVzdGVkLiAgCj4gSSBkaWRuJ3QgdW5kZXJzdGFuZCBoZXJlLiBU aGUgcGF0Y2ggaW50cm9kdWNlcyB0aHJlZSBpb2N0bCBjb21tYW5kczogVkZJT19ERVZJQ0VfR0VU X0ZELCBWRklPX0RNQUJVRl9NR1JfUVVFUllfUExBTkUsIFZGSU9fRE1BQlVGX01HUl9DUkVBVEVf RE1BQlVGLgo+IFdoYXQgSSBtZWFuIHdhcyB3ZSBjb3VsZCByZW1vdmUgdGhlIGZpcnN0IG9uZSwg YS5rLmEgIFZGSU9fREVWSUNFX0dFVF9GRCwgd2hpY2ggaXMgdXNlZCB0byBnZXQgdGhlIGZkIG9m IGRtYWJ1ZiBtZ3IsIGFzIHdlIHdhbnQgdG8gcmVtb3ZlIHRoZSBsb2dpYyBvZiBkbWFidWYgbWdy LiBGb3IgdGhlIG90aGVyIHR3byBpb2N0bHMsIEkgdGhpbmsgd2UgY2FuIGdpdmUgdGhlbSBuZXcg bmFtZXMgd2hpY2ggbG9va3MgbGlrZSBtb3JlIGdlbmVyYWwuIAo+IFNvLCBkbyB5b3UgbWVhbiB0 aGVyZSBpcyBhbm90aGVyIHdheSBpbnN0ZWFkIG9mIGlvY3Rscz8gVGhhbmtzLgoKSW4gdGhpcyB2 OSBzZXJpZXMsIHdlIGhhdmUgYSBWRklPX0RFVklDRV9HRVRfRkQgd2hlcmUgd2UgY291bGQgcGFz cwpWRklPX0RFVklDRV9ETUFCVUZfTUdSX0ZEIHRvIGdldCB0aGUgbWFuYWdlciBmZCwgZnJvbSB0 aGF0IGZkIHdlIGNvdWxkCnF1ZXJ5IHBsYW5lIGluZm8gb3IgZ2V0IGEgZG1hYnVmIGZkLiAgTm93 IHdlJ3JlIGdldHRpbmcgcmlkIG9mIHRoZQptYW5hZ2VyIGZkIGFuZCBJJ20gcXVlc3Rpb25pbmcg d2hldGhlciBnZW5lcmljIGlvY3RscyBvciBzcGVjaWZpYwppb2N0bHMgYXJlIHRoZSByaWdodCBw YXRoLgoKRm9yIGluc3RhbmNlIHdlIGNvdWxkIHN0aWxsIHVzZSBhIFZGSU9fREVWSUNFX0dFVF9G RCBpb2N0bCB0byBnZXQgdGhlCmRtYWJ1ZiBmZCByYXRoZXIgdGhhbiBjcmVhdGluZyBhIFZGSU9f REVWSUNFX0dFVF9ETUFCVUZfRkQgaW9jdGwuICBJdCdzCmp1c3QgYSBtYXR0ZXIgb2YgZGVmaW5p bmcgYSBjb21tb24gaGVhZGVyIG9uIHRoZSBkYXRhIHN0cnVjdHVyZSBzbyB0aGF0CndlIGtub3cg aG93IHRvIGludGVycHJldCB0aGUgcmVtYWluZGVyIG9mIHRoZSBzdHJ1Y3R1cmUuCgpMaWtld2lz ZSBHZXJkIHByb3Bvc2VzIGFib3ZlIGEgVkZJT19ERVZJQ0VfUVVFUllfR0ZYX1BMQU5FIGlvY3Rs IGFuZApJJ20gYXNraW5nIHdoZXRoZXIgYSBnZW5lcmljIFZGSU9fREVWSUNFX1FVRVJZIGlvY3Rs IHdoZXJlIHdlIGRlZmluZSBhCmNvbW1vbiBoZWFkZXIgaW4gdGhlIHN0cnVjdHVyZSB0byBrbm93 IHRoYXQgdGhlIHF1ZXJ5IGlzIGZvciBncmFwaGljcwpwbGFuZSBpbmZvcm1hdGlvbiBoYXMgdmFs dWUuCgpJT1csIHNob3VsZCB3ZSBzcGVuZCBhIGxpdHRsZSBiaXQgb2YgdGltZSBub3cgY3JhZnRp bmcgaW9jdGxzIHRoYXQgd2UKY2FuIHVzZSBmb3IgcHVycG9zZXMgYmV5b25kIHdoYXQgd2UncmUg bG9va2luZyBhdCB0b2RheSwgb3IgZG8gd2UgYnVybgpvZmYgYSBjb3VwbGUgZm9yIHNpbmd1bGFy IHVzZXMgaGVyZT8gIFRoYW5rcywKCkFsZXgKCgo+ID4gPiBZZXMuICBUaGUgcGxhbmUgbWlnaHQg aGF2ZSBjaGFuZ2VkIGJldHdlZW4gcXVlcnktcGxhbmUgYW5kIGdldC1kbWFidWYKPiA+ID4gaW9j dGwgY2FsbHMgdGhvdWdoLCB3ZSBtdXN0IG1ha2Ugc3VyZSB3ZSBoYW5kbGUgdGhhdCBzb21laG93 LiAgQ3VycmVudAo+ID4gPiBwYXRjaGVzIHJldHVybiBwbGFuZV9pbmZvIG9uIGdldC1kbWFidWYg aW9jdGwgdG9vLCBzbyB1c2Vyc3BhY2UgY2FuCj4gPiA+IHNlZSB3aGF0IGl0IGFjdHVhbGx5IGdv dC4KPiA+ID4KPiA+ID4gV2l0aCB0aGUgZ2VuZXJhdGlvbiB3ZSBjYW4gYWxzbyBkbyBzb21ldGhp bmcgZGlmZmVyZW50OiAgUGFzcyBpbgo+ID4gPiBwbGFuZV90eXBlIGFuZCBnZW5lcmF0aW9uLCBh bmQgaGF2ZSBWRklPX0RFVklDRV9HRVRfRE1BQlVGX0ZEIHJldHVybgo+ID4gPiBhbiBlcnJvciBp biBjYXNlIHRoZSBnZW5lcmF0aW9uIGRvZXNuJ3QgbWF0Y2guICBJbiB0aGF0IGNhc2UgaXQKPiA+ ID4gZG9lc24ndCBtYWtlIG11Y2ggc2Vuc2UgYW55IG1vcmUgdG8gaGF2ZSBhIHNlcGFyYXRlIHBs YW5lX2luZm8gc3RydWN0LAo+ID4gPiB3aGljaCB3YXMgYWRkZWQgc28gd2UgZG9uJ3QgaGF2ZSB0 byBkdXBsaWNhdGUgdGhpbmdzIGluIHF1ZXJ5LXBsYW5lCj4gPiA+IGFuZCBnZXQtIGRtYWJ1ZiBp b2N0bCBzdHJ1Y3RzLiAgCj4gPiAKPiA+IEknbSBub3Qgc3VyZSBJIHVuZGVyc3RhbmQgaG93IHRo aXMgd29ya3MgZm9yIGEgcmVnaW9uLCB0aGUgcmVnaW9uIGlzIGFsd2F5cyB0aGUKPiA+IGN1cnJl bnQgZ2VuZXJhdGlvbiwgaG93IGNhbiB0aGUgdXNlciBldmVyIGJlIHN1cmUgdGhlIHBsYW5lX2lu Zm8gbWF0Y2hlcyB3aGF0Cj4gPiBpcyBleHBvc2VkIGluIHRoZSByZWdpb24/ICBUaGFua3MsCj4g PiAKPiA+IEFsZXggIAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752619AbdFTXWK (ORCPT ); Tue, 20 Jun 2017 19:22:10 -0400 Received: from mx1.redhat.com ([209.132.183.28]:41606 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751131AbdFTXWJ (ORCPT ); Tue, 20 Jun 2017 19:22:09 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com CDB484E4C3 Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=alex.williamson@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com CDB484E4C3 Date: Tue, 20 Jun 2017 17:22:04 -0600 From: Alex Williamson To: "Zhang, Tina" Cc: Gerd Hoffmann , "intel-gfx@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" , Kirti Wankhede , "Chen, Xiaoguang" , "intel-gvt-dev@lists.freedesktop.org" , "Lv, Zhiyuan" , "Wang, Zhi A" , "Wang, Zhenyu Z" Subject: Re: [Intel-gfx] [PATCH v9 5/7] vfio: Define vfio based dma-buf operations Message-ID: <20170620172204.09405cf4@w520.home> In-Reply-To: <237F54289DF84E4997F34151298ABEBC7C56F3DC@SHSMSX101.ccr.corp.intel.com> References: <1497513611-2814-1-git-send-email-xiaoguang.chen@intel.com> <1497513611-2814-6-git-send-email-xiaoguang.chen@intel.com> <1497542438.29252.1.camel@redhat.com> <20170615143833.7526351b@w520.home> <24c4880b-24f5-ea07-834c-c77d3e895c78@nvidia.com> <1497854312.4207.4.camel@redhat.com> <20170619085530.1f5e46dc@w520.home> <237F54289DF84E4997F34151298ABEBC7C56EBE0@SHSMSX101.ccr.corp.intel.com> <1497956256.16795.7.camel@redhat.com> <20170620090004.44ac7fbc@w520.home> <237F54289DF84E4997F34151298ABEBC7C56F3DC@SHSMSX101.ccr.corp.intel.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.38]); Tue, 20 Jun 2017 23:22:09 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 20 Jun 2017 23:01:53 +0000 "Zhang, Tina" wrote: > > -----Original Message----- > > From: Alex Williamson [mailto:alex.williamson@redhat.com] > > Sent: Tuesday, June 20, 2017 11:00 PM > > To: Gerd Hoffmann > > Cc: Zhang, Tina ; intel-gfx@lists.freedesktop.org; linux- > > kernel@vger.kernel.org; Kirti Wankhede ; Chen, > > Xiaoguang ; intel-gvt-dev@lists.freedesktop.org; > > Lv, Zhiyuan ; Wang, Zhi A ; > > Wang, Zhenyu Z > > Subject: Re: [Intel-gfx] [PATCH v9 5/7] vfio: Define vfio based dma-buf > > operations > > > > On Tue, 20 Jun 2017 12:57:36 +0200 > > Gerd Hoffmann wrote: > > > > > On Tue, 2017-06-20 at 08:41 +0000, Zhang, Tina wrote: > > > > Hi, > > > > > > > > Thanks for all the comments. Here are the summaries: > > > > > > > > 1. Modify the structures to make it more general. > > > > struct vfio_device_gfx_plane_info { > > > > __u64 start; > > > > __u64 drm_format_mod; > > > > __u32 drm_format; > > > > __u32 width; > > > > __u32 height; > > > > __u32 stride; > > > > __u32 size; > > > > __u32 x_pos; > > > > __u32 y_pos; > > > > __u32 generation; > > > > }; > > > > > > Looks good to me. > > > > > > > struct vfio_device_query_gfx_plane { > > > > __u32 argsz; > > > > __u32 flags; > > > > #define VFIO_GFX_PLANE_FLAGS_REGION_ID (1 << 0) > > > > #define VFIO_GFX_PLANE_FLAGS_PLANE_ID (1 << 1) > > > > struct vfio_device_gfx_plane_info plane_info; > > > > __u32 id; > > > > }; > > > > > > I'm not convinced the flags are a great idea. Whenever dmabufs or a > > > region is used is a static property of the device, not of each > > > individual plane. > > > > > > > > > I think we should have this for userspace to figure: > > > > > > enum vfio_device_gfx_type { > > > VFIO_DEVICE_GFX_NONE, > > > VFIO_DEVICE_GFX_DMABUF, > > > VFIO_DEVICE_GFX_REGION, > > > }; > > > > > > struct vfio_device_gfx_query_caps { > > > __u32 argsz; > > > __u32 flags; > > > enum vfio_device_gfx_type; > > > }; > > > > We already have VFIO_DEVICE_GET_INFO which returns: > > > > struct vfio_device_info { > > __u32 argsz; > > __u32 flags; > > #define VFIO_DEVICE_FLAGS_RESET (1 << 0) /* Device supports reset */ > > #define VFIO_DEVICE_FLAGS_PCI (1 << 1) /* vfio-pci device */ > > #define VFIO_DEVICE_FLAGS_PLATFORM (1 << 2) /* vfio-platform device */ > > #define VFIO_DEVICE_FLAGS_AMBA (1 << 3) /* vfio-amba device */ > > #define VFIO_DEVICE_FLAGS_CCW (1 << 4) /* vfio-ccw device */ > > __u32 num_regions; /* Max region index + 1 */ > > __u32 num_irqs; /* Max IRQ index + 1 */ > > }; > > > > We could use two flag bits to indicate dmabuf or graphics region support. > > vfio_device_gfx_query_caps seems to imply a new ioctl, which would be > > unnecessary. > > > > > Then this to query the plane: > > > > > > struct vfio_device_gfx_query_plane { > > > __u32 argsz; > > > __u32 flags; > > > struct vfio_device_gfx_plane_info plane_info; /* out */ > > > __u32 plane_type; /* in */ > > > }; > > > > I'm not sure why we're using an enum for something that can currently be > > defined with 2 bits, seems like this would be another good use of flags. We > > could even embed an enum into the flags if we want to leave some expansion > > room, 4 bits maybe? Also, I was imagining that a device could support multiple > > graphics regions, that's where specifying the "id" as a region index seemed > > useful. We lose that ability here unless we go back to defining a flag bit to > > specify how to interpret this last field. > > > > > 2. Remove dmabuf mgr fd and add these two ioctl commands to the vfio > > > device fd. > > > > VFIO_DEVICE_QUERY_GFX_PLANE : used to query > > > > vfio_device_gfx_plane_info. > > > > > > Yes. > > > > > > > VFIO_DEVICE_GET_DMABUF_FD: used to create and return the dmabuf fd. > > > > I'm not convinced this adds value, but I'll list it as an option: > > > > VFIO_DEVICE_QUERY(VFIO_DEVICE_GFX_PLANE) > > VFIO_DEVICE_GET_FD(VFIO_DEVICE_GFX_DMABUF_FD) > > > > The benefit is that it might help to avoid a proliferation of ioctls on the device the > > pain is that we need to either define a field or section of flags which identify > > what is being queried or what type of device fd is being requested. > I didn't understand here. The patch introduces three ioctl commands: VFIO_DEVICE_GET_FD, VFIO_DMABUF_MGR_QUERY_PLANE, VFIO_DMABUF_MGR_CREATE_DMABUF. > What I mean was we could remove the first one, a.k.a VFIO_DEVICE_GET_FD, which is used to get the fd of dmabuf mgr, as we want to remove the logic of dmabuf mgr. For the other two ioctls, I think we can give them new names which looks like more general. > So, do you mean there is another way instead of ioctls? Thanks. In this v9 series, we have a VFIO_DEVICE_GET_FD where we could pass VFIO_DEVICE_DMABUF_MGR_FD to get the manager fd, from that fd we could query plane info or get a dmabuf fd. Now we're getting rid of the manager fd and I'm questioning whether generic ioctls or specific ioctls are the right path. For instance we could still use a VFIO_DEVICE_GET_FD ioctl to get the dmabuf fd rather than creating a VFIO_DEVICE_GET_DMABUF_FD ioctl. It's just a matter of defining a common header on the data structure so that we know how to interpret the remainder of the structure. Likewise Gerd proposes above a VFIO_DEVICE_QUERY_GFX_PLANE ioctl and I'm asking whether a generic VFIO_DEVICE_QUERY ioctl where we define a common header in the structure to know that the query is for graphics plane information has value. IOW, should we spend a little bit of time now crafting ioctls that we can use for purposes beyond what we're looking at today, or do we burn off a couple for singular uses here? Thanks, Alex > > > Yes. The plane might have changed between query-plane and get-dmabuf > > > ioctl calls though, we must make sure we handle that somehow. Current > > > patches return plane_info on get-dmabuf ioctl too, so userspace can > > > see what it actually got. > > > > > > With the generation we can also do something different: Pass in > > > plane_type and generation, and have VFIO_DEVICE_GET_DMABUF_FD return > > > an error in case the generation doesn't match. In that case it > > > doesn't make much sense any more to have a separate plane_info struct, > > > which was added so we don't have to duplicate things in query-plane > > > and get- dmabuf ioctl structs. > > > > I'm not sure I understand how this works for a region, the region is always the > > current generation, how can the user ever be sure the plane_info matches what > > is exposed in the region? Thanks, > > > > Alex