From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tiwei Bie Subject: Re: [RFC PATCH 3/4] virtio: introudce a mdev based transport Date: Wed, 11 Sep 2019 11:08:51 +0800 Message-ID: <20190911030851.GA27733@___> References: <20190910081935.30516-1-jasowang@redhat.com> <20190910081935.30516-4-jasowang@redhat.com> <20190911014726.GA14798@___> <8428eec1-b53c-9efc-1260-4e5ce2651461@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <8428eec1-b53c-9efc-1260-4e5ce2651461@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: virtualization-bounces@lists.linux-foundation.org Errors-To: virtualization-bounces@lists.linux-foundation.org To: Jason Wang Cc: idos@mellanox.com, kvm@vger.kernel.org, mst@redhat.com, netdev@vger.kernel.org, cohuck@redhat.com, linux-kernel@vger.kernel.org, virtualization@lists.linux-foundation.org, kwankhede@nvidia.com, xiao.w.wang@intel.com, zhihong.wang@intel.com, maxime.coquelin@redhat.com, haotian.wang@sifive.com, rob.miller@broadcom.com List-Id: virtualization@lists.linuxfoundation.org T24gV2VkLCBTZXAgMTEsIDIwMTkgYXQgMTA6NTI6MDNBTSArMDgwMCwgSmFzb24gV2FuZyB3cm90 ZToKPiBPbiAyMDE5LzkvMTEg5LiK5Y2IOTo0NywgVGl3ZWkgQmllIHdyb3RlOgo+ID4gT24gVHVl LCBTZXAgMTAsIDIwMTkgYXQgMDQ6MTk6MzRQTSArMDgwMCwgSmFzb24gV2FuZyB3cm90ZToKPiA+ ID4gVGhpcyBwYXRoIGludHJvZHVjZXMgYSBuZXcgbWRldiB0cmFuc3BvcnQgZm9yIHZpcnRpby4g VGhpcyBpcyB1c2VkIHRvCj4gPiA+IHVzZSBrZXJuZWwgdmlydGlvIGRyaXZlciB0byBkcml2ZSB0 aGUgbWVkaWF0ZWQgZGV2aWNlIHRoYXQgaXMgY2FwYWJsZQo+ID4gPiBvZiBwb3B1bGF0aW5nIHZp cnRxdWV1ZSBkaXJlY3RseS4KPiA+ID4gCj4gPiA+IEEgbmV3IHZpcnRpby1tZGV2IGRyaXZlciB3 aWxsIGJlIHJlZ2lzdGVyZWQgdG8gdGhlIG1kZXYgYnVzLCB3aGVuIGEKPiA+ID4gbmV3IHZpcnRp by1tZGV2IGRldmljZSBpcyBwcm9iZWQsIGl0IHdpbGwgcmVnaXN0ZXIgdGhlIGRldmljZSB3aXRo Cj4gPiA+IG1kZXYgYmFzZWQgY29uZmlnIG9wcy4gVGhpcyBtZWFucywgdW5saWtlIHRoZSBleGlz dCBoYXJkd2FyZQo+ID4gPiB0cmFuc3BvcnQsIHRoaXMgaXMgYSBzb2Z0d2FyZSB0cmFuc3BvcnQg YmV0d2VlbiBtZGV2IGRyaXZlciBhbmQgbWRldgo+ID4gPiBkZXZpY2UuIFRoZSB0cmFuc3BvcnQg d2FzIGltcGxlbWVudGVkIHRocm91Z2g6Cj4gPiA+IAo+ID4gPiAtIGNvbmZpZ3VyYXRpb24gYWNj ZXNzIHdhcyBpbXBsZW1lbnRlZCB0aHJvdWdoIHBhcmVudF9vcHMtPnJlYWQoKS93cml0ZSgpCj4g PiA+IC0gdnEvY29uZmlnIGNhbGxiYWNrIHdhcyBpbXBsZW1lbnRlZCB0aHJvdWdoIHBhcmVudF9v cHMtPmlvY3RsKCkKPiA+ID4gCj4gPiA+IFRoaXMgdHJhbnNwb3J0IGlzIGRlcml2ZWQgZnJvbSB2 aXJ0aW8gTU1JTyBwcm90b2NvbCBhbmQgd2FzIHdyb3RlIGZvcgo+ID4gPiBrZXJuZWwgZHJpdmVy LiBCdXQgZm9yIHRoZSB0cmFuc3BvcnQgaXRzZWxmLCBidXQgdGhlIGRlc2lnbiBnb2FsIGlzIHRv Cj4gPiA+IGJlIGdlbmVyaWMgZW5vdWdoIHRvIHN1cHBvcnQgdXNlcnNwYWNlIGRyaXZlciAodGhp cyBwYXJ0IHdpbGwgYmUgYWRkZWQKPiA+ID4gaW4gdGhlIGZ1dHVyZSkuCj4gPiA+IAo+ID4gPiBO b3RlOgo+ID4gPiAtIGN1cnJlbnQgbWRldiBhc3N1bWUgYWxsIHRoZSBwYXJhbWV0ZXIgb2YgcGFy ZW50X29wcyB3YXMgZnJvbQo+ID4gPiAgICB1c2Vyc3BhY2UuIFRoaXMgcHJldmVudHMgdXMgZnJv bSBpbXBsZW1lbnRpbmcgdGhlIGtlcm5lbCBtZGV2Cj4gPiA+ICAgIGRyaXZlci4gRm9yIGEgcXVp Y2sgUE9DLCB0aGlzIHBhdGNoIGp1c3QgYWJ1c2UgdGhvc2UgcGFyYW1ldGVyIGFuZAo+ID4gPiAg ICBhc3N1bWUgdGhlIG1kZXYgZGV2aWNlIGltcGxlbWVudGF0aW9uIHdpbGwgdHJlYXQgdGhlbSBh cyBrZXJuZWwKPiA+ID4gICAgcG9pbnRlci4gVGhpcyBzaG91bGQgYmUgYWRkcmVzc2VkIGluIHRo ZSBmb3JtYWwgc2VyaWVzIGJ5IGV4dGVuZGluZwo+ID4gPiAgICBtZGV2X3BhcmVudF9vcHMuCj4g PiA+IC0gZm9yIGEgcXVpY2sgUE9DLCBJIGp1c3QgZHJpdmUgdGhlIHRyYW5zcG9ydCBmcm9tIE1N SU8sIEknbSBwcmV0dHkKPiA+ID4gICAgdGhlcmUncyBsb3Qgb2Ygb3B0aW1pemF0aW9uIHNwYWNl IGZvciB0aGlzLgo+ID4gPiAKPiA+ID4gU2lnbmVkLW9mZi1ieTogSmFzb24gV2FuZyA8amFzb3dh bmdAcmVkaGF0LmNvbT4KPiA+ID4gLS0tCj4gPiA+ICAgZHJpdmVycy92ZmlvL21kZXYvS2NvbmZp ZyAgICAgICAgfCAgIDcgKwo+ID4gPiAgIGRyaXZlcnMvdmZpby9tZGV2L01ha2VmaWxlICAgICAg IHwgICAxICsKPiA+ID4gICBkcml2ZXJzL3ZmaW8vbWRldi92aXJ0aW9fbWRldi5jICB8IDUwMCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiA+ICAgaW5jbHVkZS91YXBpL2xpbnV4 L3ZpcnRpb19tZGV2LmggfCAxMzEgKysrKysrKysKPiA+ID4gICA0IGZpbGVzIGNoYW5nZWQsIDYz OSBpbnNlcnRpb25zKCspCj4gPiA+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvdmZpby9t ZGV2L3ZpcnRpb19tZGV2LmMKPiA+ID4gICBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS91YXBp L2xpbnV4L3ZpcnRpb19tZGV2LmgKPiA+ID4gCj4gPiBbLi4uXQo+ID4gPiBkaWZmIC0tZ2l0IGEv aW5jbHVkZS91YXBpL2xpbnV4L3ZpcnRpb19tZGV2LmggYi9pbmNsdWRlL3VhcGkvbGludXgvdmly dGlvX21kZXYuaAo+ID4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4gPiBpbmRleCAwMDAwMDAw MDAwMDAuLjgwNDBkZTZiOTYwYQo+ID4gPiAtLS0gL2Rldi9udWxsCj4gPiA+ICsrKyBiL2luY2x1 ZGUvdWFwaS9saW51eC92aXJ0aW9fbWRldi5oCj4gPiA+IEBAIC0wLDAgKzEsMTMxIEBACj4gPiA+ ICsvKgo+ID4gPiArICogVmlydGlvIG1lZGlhdGVkIGRldmljZSBkcml2ZXIKPiA+ID4gKyAqCj4g PiA+ICsgKiBDb3B5cmlnaHQgMjAxOSwgUmVkIEhhdCBDb3JwLgo+ID4gPiArICoKPiA+ID4gKyAq IEJhc2VkIG9uIFZpcnRpbyBNTUlPIGRyaXZlciBieSBBUk0gTHRkLCBjb3B5cmlnaHQgQVJNIEx0 ZC4gMjAxMQo+ID4gPiArICoKPiA+ID4gKyAqIFRoaXMgaGVhZGVyIGlzIEJTRCBsaWNlbnNlZCBz byBhbnlvbmUgY2FuIHVzZSB0aGUgZGVmaW5pdGlvbnMgdG8gaW1wbGVtZW50Cj4gPiA+ICsgKiBj b21wYXRpYmxlIGRyaXZlcnMvc2VydmVycy4KPiA+ID4gKyAqCj4gPiA+ICsgKiBSZWRpc3RyaWJ1 dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK PiA+ID4gKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm b2xsb3dpbmcgY29uZGl0aW9ucwo+ID4gPiArICogYXJlIG1ldDoKPiA+ID4gKyAqIDEuIFJlZGlz dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0 Cj4gPiA+ICsgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s bG93aW5nIGRpc2NsYWltZXIuCj4gPiA+ICsgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5 IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAo+ID4gPiArICogICAgbm90 aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy IGluIHRoZQo+ID4gPiArICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KPiA+ID4gKyAqIDMuIE5laXRoZXIgdGhl IG5hbWUgb2YgSUJNIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycwo+ID4gPiArICog ICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv bSB0aGlzIHNvZnR3YXJlCj4gPiA+ICsgKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0 ZW4gcGVybWlzc2lvbi4KPiA+ID4gKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAo+ID4gPiAr ICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg TElNSVRFRCBUTywgVEhFCj4gPiA+ICsgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQo+ID4gPiArICogQVJF IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBJQk0gT1IgQ09OVFJJQlVUT1JTIEJFIExJ QUJMRQo+ID4gPiArICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKPiA+ID4gKyAqIERBTUFHRVMgKElOQ0xV RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT Cj4gPiA+ICsgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S IEJVU0lORVNTIElOVEVSUlVQVElPTikKPiA+ID4gKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCj4gPiA+ ICsgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT RSkgQVJJU0lORyBJTiBBTlkgV0FZCj4gPiA+ICsgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCj4gPiA+ICsgKiBT VUNIIERBTUFHRS4KPiA+ID4gKyAqLwo+ID4gPiArI2lmbmRlZiBfTElOVVhfVklSVElPX01ERVZf SAo+ID4gPiArI2RlZmluZSBfTElOVVhfVklSVElPX01ERVZfSAo+ID4gPiArCj4gPiA+ICsjaW5j bHVkZSA8bGludXgvaW50ZXJydXB0Lmg+Cj4gPiA+ICsjaW5jbHVkZSA8bGludXgvdnJpbmdoLmg+ Cj4gPiA+ICsjaW5jbHVkZSA8dWFwaS9saW51eC92aXJ0aW9fbmV0Lmg+Cj4gPiA+ICsKPiA+ID4g Ky8qCj4gPiA+ICsgKiBJb2N0bHMKPiA+ID4gKyAqLwo+ID4gPiArCj4gPiA+ICtzdHJ1Y3Qgdmly dGlvX21kZXZfY2FsbGJhY2sgewo+ID4gPiArCWlycXJldHVybl90ICgqY2FsbGJhY2spKHZvaWQg Kik7Cj4gPiA+ICsJdm9pZCAqcHJpdmF0ZTsKPiA+ID4gK307Cj4gPiA+ICsKPiA+ID4gKyNkZWZp bmUgVklSVElPX01ERVYgMHhBRgo+ID4gPiArI2RlZmluZSBWSVJUSU9fTURFVl9TRVRfVlFfQ0FM TEJBQ0sgX0lPVyhWSVJUSU9fTURFViwgMHgwMCwgXAo+ID4gPiArCQkJCQkgc3RydWN0IHZpcnRp b19tZGV2X2NhbGxiYWNrKQo+ID4gPiArI2RlZmluZSBWSVJUSU9fTURFVl9TRVRfQ09ORklHX0NB TExCQUNLIF9JT1coVklSVElPX01ERVYsIDB4MDEsIFwKPiA+ID4gKwkJCQkJc3RydWN0IHZpcnRp b19tZGV2X2NhbGxiYWNrKQo+ID4gPiArCj4gPiA+ICsjZGVmaW5lIFZJUlRJT19NREVWX0RFVklD RV9BUElfU1RSSU5HCQkidmlydGlvLW1kZXYiCj4gPiA+ICsKPiA+ID4gKy8qCj4gPiA+ICsgKiBD b250cm9sIHJlZ2lzdGVycwo+ID4gPiArICovCj4gPiA+ICsKPiA+ID4gKy8qIE1hZ2ljIHZhbHVl ICgidmlydCIgc3RyaW5nKSAtIFJlYWQgT25seSAqLwo+ID4gPiArI2RlZmluZSBWSVJUSU9fTURF Vl9NQUdJQ19WQUxVRQkJMHgwMDAKPiA+ID4gKwo+ID4gPiArLyogVmlydGlvIGRldmljZSB2ZXJz aW9uIC0gUmVhZCBPbmx5ICovCj4gPiA+ICsjZGVmaW5lIFZJUlRJT19NREVWX1ZFUlNJT04JCTB4 MDA0Cj4gPiA+ICsKPiA+ID4gKy8qIFZpcnRpbyBkZXZpY2UgSUQgLSBSZWFkIE9ubHkgKi8KPiA+ ID4gKyNkZWZpbmUgVklSVElPX01ERVZfREVWSUNFX0lECQkweDAwOAo+ID4gPiArCj4gPiA+ICsv KiBWaXJ0aW8gdmVuZG9yIElEIC0gUmVhZCBPbmx5ICovCj4gPiA+ICsjZGVmaW5lIFZJUlRJT19N REVWX1ZFTkRPUl9JRAkJMHgwMGMKPiA+ID4gKwo+ID4gPiArLyogQml0bWFzayBvZiB0aGUgZmVh dHVyZXMgc3VwcG9ydGVkIGJ5IHRoZSBkZXZpY2UgKGhvc3QpCj4gPiA+ICsgKiAoMzIgYml0cyBw ZXIgc2V0KSAtIFJlYWQgT25seSAqLwo+ID4gPiArI2RlZmluZSBWSVJUSU9fTURFVl9ERVZJQ0Vf RkVBVFVSRVMJMHgwMTAKPiA+ID4gKwo+ID4gPiArLyogRGV2aWNlIChob3N0KSBmZWF0dXJlcyBz ZXQgc2VsZWN0b3IgLSBXcml0ZSBPbmx5ICovCj4gPiA+ICsjZGVmaW5lIFZJUlRJT19NREVWX0RF VklDRV9GRUFUVVJFU19TRUwJMHgwMTQKPiA+ID4gKwo+ID4gPiArLyogQml0bWFzayBvZiBmZWF0 dXJlcyBhY3RpdmF0ZWQgYnkgdGhlIGRyaXZlciAoZ3Vlc3QpCj4gPiA+ICsgKiAoMzIgYml0cyBw ZXIgc2V0KSAtIFdyaXRlIE9ubHkgKi8KPiA+ID4gKyNkZWZpbmUgVklSVElPX01ERVZfRFJJVkVS X0ZFQVRVUkVTCTB4MDIwCj4gPiA+ICsKPiA+ID4gKy8qIEFjdGl2YXRlZCBmZWF0dXJlcyBzZXQg c2VsZWN0b3IgLSBXcml0ZSBPbmx5ICovCj4gPiA+ICsjZGVmaW5lIFZJUlRJT19NREVWX0RSSVZF Ul9GRUFUVVJFU19TRUwJMHgwMjQKPiA+ID4gKwo+ID4gPiArLyogUXVldWUgc2VsZWN0b3IgLSBX cml0ZSBPbmx5ICovCj4gPiA+ICsjZGVmaW5lIFZJUlRJT19NREVWX1FVRVVFX1NFTAkJMHgwMzAK PiA+ID4gKwo+ID4gPiArLyogTWF4aW11bSBzaXplIG9mIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQg cXVldWUgLSBSZWFkIE9ubHkgKi8KPiA+ID4gKyNkZWZpbmUgVklSVElPX01ERVZfUVVFVUVfTlVN X01BWAkweDAzNAo+ID4gPiArCj4gPiA+ICsvKiBRdWV1ZSBzaXplIGZvciB0aGUgY3VycmVudGx5 IHNlbGVjdGVkIHF1ZXVlIC0gV3JpdGUgT25seSAqLwo+ID4gPiArI2RlZmluZSBWSVJUSU9fTURF Vl9RVUVVRV9OVU0JCTB4MDM4Cj4gPiA+ICsKPiA+ID4gKy8qIFJlYWR5IGJpdCBmb3IgdGhlIGN1 cnJlbnRseSBzZWxlY3RlZCBxdWV1ZSAtIFJlYWQgV3JpdGUgKi8KPiA+ID4gKyNkZWZpbmUgVklS VElPX01ERVZfUVVFVUVfUkVBRFkJCTB4MDQ0Cj4gPiA+ICsKPiA+ID4gKy8qIEFsaWdubWVudCBv ZiB2aXJ0cXVldWUgLSBSZWFkIE9ubHkgKi8KPiA+ID4gKyNkZWZpbmUgVklSVElPX01ERVZfUVVF VUVfQUxJR04JCTB4MDQ4Cj4gPiA+ICsKPiA+ID4gKy8qIFF1ZXVlIG5vdGlmaWVyIC0gV3JpdGUg T25seSAqLwo+ID4gPiArI2RlZmluZSBWSVJUSU9fTURFVl9RVUVVRV9OT1RJRlkJMHgwNTAKPiA+ ID4gKwo+ID4gPiArLyogRGV2aWNlIHN0YXR1cyByZWdpc3RlciAtIFJlYWQgV3JpdGUgKi8KPiA+ ID4gKyNkZWZpbmUgVklSVElPX01ERVZfU1RBVFVTCQkweDA2MAo+ID4gPiArCj4gPiA+ICsvKiBT ZWxlY3RlZCBxdWV1ZSdzIERlc2NyaXB0b3IgVGFibGUgYWRkcmVzcywgNjQgYml0cyBpbiB0d28g aGFsdmVzICovCj4gPiA+ICsjZGVmaW5lIFZJUlRJT19NREVWX1FVRVVFX0RFU0NfTE9XCTB4MDgw Cj4gPiA+ICsjZGVmaW5lIFZJUlRJT19NREVWX1FVRVVFX0RFU0NfSElHSAkweDA4NAo+ID4gPiAr Cj4gPiA+ICsvKiBTZWxlY3RlZCBxdWV1ZSdzIEF2YWlsYWJsZSBSaW5nIGFkZHJlc3MsIDY0IGJp dHMgaW4gdHdvIGhhbHZlcyAqLwo+ID4gPiArI2RlZmluZSBWSVJUSU9fTURFVl9RVUVVRV9BVkFJ TF9MT1cJMHgwOTAKPiA+ID4gKyNkZWZpbmUgVklSVElPX01ERVZfUVVFVUVfQVZBSUxfSElHSAkw eDA5NAo+ID4gPiArCj4gPiA+ICsvKiBTZWxlY3RlZCBxdWV1ZSdzIFVzZWQgUmluZyBhZGRyZXNz LCA2NCBiaXRzIGluIHR3byBoYWx2ZXMgKi8KPiA+ID4gKyNkZWZpbmUgVklSVElPX01ERVZfUVVF VUVfVVNFRF9MT1cJMHgwYTAKPiA+ID4gKyNkZWZpbmUgVklSVElPX01ERVZfUVVFVUVfVVNFRF9I SUdICTB4MGE0Cj4gPiA+ICsKPiA+ID4gKy8qIENvbmZpZ3VyYXRpb24gYXRvbWljaXR5IHZhbHVl ICovCj4gPiA+ICsjZGVmaW5lIFZJUlRJT19NREVWX0NPTkZJR19HRU5FUkFUSU9OCTB4MGZjCj4g PiA+ICsKPiA+ID4gKy8qIFRoZSBjb25maWcgc3BhY2UgaXMgZGVmaW5lZCBieSBlYWNoIGRyaXZl ciBhcwo+ID4gPiArICogdGhlIHBlci1kcml2ZXIgY29uZmlndXJhdGlvbiBzcGFjZSAtIFJlYWQg V3JpdGUgKi8KPiA+ID4gKyNkZWZpbmUgVklSVElPX01ERVZfQ09ORklHCQkweDEwMAo+ID4gSUlV Qywgd2UgY2FuIHVzZSBhYm92ZSByZWdpc3RlcnMgd2l0aCB2aXJ0aW8tbWRldiBwYXJlbnQncwo+ ID4gcmVhZCgpL3dyaXRlKCkgdG8gYWNjZXNzIHRoZSBtZGV2IGRldmljZSBmcm9tIGtlcm5lbCBk cml2ZXIuCj4gPiBBcyB5b3Ugc3VnZ2VzdGVkLCBpdCdzIGEgY2hvaWNlIHRvIGJ1aWxkIHZob3N0 LW1kZXYgb24gdG9wCj4gPiBvZiB0aGlzIGFic3RyYWN0aW9uIGFzIHdlbGwuIEJ1dCB2aXJ0aW8g aXMgdGhlIGZyb250ZW5kCj4gPiBkZXZpY2Ugd2hpY2ggbGFja3Mgc29tZSB2aG9zdCBiYWNrZW5k IGZlYXR1cmVzLCBlLmcuIGdldAo+ID4gdnJpbmcgYmFzZSwgc2V0IHZyaW5nIGJhc2UsIG5lZ290 aWF0ZSB2aG9zdCBmZWF0dXJlcywgZXRjLgo+ID4gU28gSSdtIHdvbmRlcmluZywgZG9lcyBpdCBt YWtlIHNlbnNlIHRvIHJlc2VydmUgc29tZSBzcGFjZQo+ID4gZm9yIHZob3N0LW1kZXYgaW4ga2Vy bmVsIHRvIGRvIHZob3N0IGJhY2tlbmQgc3BlY2lmaWMgc2V0dXBzPwo+ID4gT3IgZG8geW91IGhh dmUgYW55IG90aGVyIHRob3VnaHRzPwo+IAo+IAo+IEdvb2QgcG9pbnQuIEl0J3MganVzdCBhIHF1 aWNrIFBPQywgSSBwbGFuIHRvIGFkZCB2aG9zdCBmZWF0dXJlcyBpbiB0aGUgbmV4dAo+IHJlbGVh c2U6Cj4gCj4gMSkgc2V0L2dldCB2aXJ0cXVldWUgc3RhdGUgKGUuZyB2cmluZyBiYXNlKQo+IDIp IGRpcnR5IHBhZ2UgdHJhY2tpbmcKPiAzKSBmb3Igdmhvc3QgZmVhdHVyZXMsIGlmIHlvdSBtZWFu IF9GX0xPR19BTEwsIGl0IGNvdWxkIGJlIGRvbmUgYnkgMiksIGZvcgo+IElPVExCLCBpdCByZXF1 aXJlcyBtb3JlIHRob3VnaHQgb24gdGhlIEFQSSBzaW5jZSBjdXJyZW50IElPVExCIEFQSSBpcyBu bwo+IGltcGxlbWVudGVkIHRocm91Z2ggaW9jdGwgLi4uCj4gCj4gCj4gPiAKPiA+IEJlc2lkZXMs IEknbSBhbHNvIHdvbmRlcmluZywgd2hhdCdzIHRoZSBwdXJwb3NlIG9mIG1ha2luZwo+ID4gYWJv dmUgcmVnaXN0ZXJzIHBhcnQgb2YgVUFQST8KPiAKPiAKPiBTb3JyeSBpZiBpdCBicmluZ3MgY29u ZnVzaW9uLiBJZiB3ZSBkbyB2aG9zdC1tZGV2IG9uIHRvcCBvZiB0aGlzLCB0aGVyZSdzIG5vCj4g bmVlZCBmb3IgdGhpcyB0byBnbyBmb3IgVUFQSS4KPiAKPiAKPiA+IEFuZCBpZiB3ZSBtYWtlIHRo ZW0gcGFydAo+ID4gb2YgVUFQSSwgZG8gd2UgYWxzbyBuZWVkIHRvIG1ha2UgdGhlbSBwYXJ0IG9m IHZpcnRpbyBzcGVjPwo+IAo+IAo+IFllcywgYnV0IEkgZG8gbm90IHRoaW5rIHdlIHNob3VsZCBw dXQgaXQgaW50byBVQVBJLiBUZWNobmljYWxseSwgdXNlcnNwYWNlCj4gY2FuIHVzZSB0aGlzIHRy YW5zcG9ydCBhcyB3ZWxsIHdpdGggc29tZSBtb2RpZmljYXRpb24gb24gdGhlIGludGVycnVwdCBw YXJ0LAo+IGUuZyB1c2luZyBldmVudGZkLiBCdXQgaXMgdGhlcmUgYW55IHZhbHVlIGZvciBkb2lu ZyB0aGlzIGluc3RlYWQgb2Ygdmhvc3Q/CgpZZWFoLCBJIGFncmVlLiBBcyB3ZSBhbHJlYWR5IGhh dmUgdmhvc3QsIEkgZG9uJ3Qgc2VlIHRoZSB2YWx1ZQp0byBtYWtlIHZpcnRpbyBiZWNvbWUgInZp cnRpbyArIHZob3N0Ii4KClRoYW5rcywKVGl3ZWkKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KVmlydHVhbGl6YXRpb24gbWFpbGluZyBsaXN0ClZpcnR1YWxp emF0aW9uQGxpc3RzLmxpbnV4LWZvdW5kYXRpb24ub3JnCmh0dHBzOi8vbGlzdHMubGludXhmb3Vu ZGF0aW9uLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3ZpcnR1YWxpemF0aW9u From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.5 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C80BEC49ED9 for ; Wed, 11 Sep 2019 03:11:27 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id A927921D7B for ; Wed, 11 Sep 2019 03:11:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726735AbfIKDLY (ORCPT ); Tue, 10 Sep 2019 23:11:24 -0400 Received: from mga09.intel.com ([134.134.136.24]:27145 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726341AbfIKDLY (ORCPT ); Tue, 10 Sep 2019 23:11:24 -0400 X-Amp-Result: UNSCANNABLE X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Sep 2019 20:11:23 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,491,1559545200"; d="scan'208";a="268616138" Received: from dpdk-virtio-tbie-2.sh.intel.com (HELO ___) ([10.67.104.71]) by orsmga001.jf.intel.com with ESMTP; 10 Sep 2019 20:11:19 -0700 Date: Wed, 11 Sep 2019 11:08:51 +0800 From: Tiwei Bie To: Jason Wang Cc: mst@redhat.com, kvm@vger.kernel.org, virtualization@lists.linux-foundation.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, kwankhede@nvidia.com, alex.williamson@redhat.com, cohuck@redhat.com, maxime.coquelin@redhat.com, cunming.liang@intel.com, zhihong.wang@intel.com, rob.miller@broadcom.com, idos@mellanox.com, xiao.w.wang@intel.com, haotian.wang@sifive.com Subject: Re: [RFC PATCH 3/4] virtio: introudce a mdev based transport Message-ID: <20190911030851.GA27733@___> References: <20190910081935.30516-1-jasowang@redhat.com> <20190910081935.30516-4-jasowang@redhat.com> <20190911014726.GA14798@___> <8428eec1-b53c-9efc-1260-4e5ce2651461@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <8428eec1-b53c-9efc-1260-4e5ce2651461@redhat.com> User-Agent: Mutt/1.9.4 (2018-02-28) Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org On Wed, Sep 11, 2019 at 10:52:03AM +0800, Jason Wang wrote: > On 2019/9/11 上午9:47, Tiwei Bie wrote: > > On Tue, Sep 10, 2019 at 04:19:34PM +0800, Jason Wang wrote: > > > This path introduces a new mdev transport for virtio. This is used to > > > use kernel virtio driver to drive the mediated device that is capable > > > of populating virtqueue directly. > > > > > > A new virtio-mdev driver will be registered to the mdev bus, when a > > > new virtio-mdev device is probed, it will register the device with > > > mdev based config ops. This means, unlike the exist hardware > > > transport, this is a software transport between mdev driver and mdev > > > device. The transport was implemented through: > > > > > > - configuration access was implemented through parent_ops->read()/write() > > > - vq/config callback was implemented through parent_ops->ioctl() > > > > > > This transport is derived from virtio MMIO protocol and was wrote for > > > kernel driver. But for the transport itself, but the design goal is to > > > be generic enough to support userspace driver (this part will be added > > > in the future). > > > > > > Note: > > > - current mdev assume all the parameter of parent_ops was from > > > userspace. This prevents us from implementing the kernel mdev > > > driver. For a quick POC, this patch just abuse those parameter and > > > assume the mdev device implementation will treat them as kernel > > > pointer. This should be addressed in the formal series by extending > > > mdev_parent_ops. > > > - for a quick POC, I just drive the transport from MMIO, I'm pretty > > > there's lot of optimization space for this. > > > > > > Signed-off-by: Jason Wang > > > --- > > > drivers/vfio/mdev/Kconfig | 7 + > > > drivers/vfio/mdev/Makefile | 1 + > > > drivers/vfio/mdev/virtio_mdev.c | 500 +++++++++++++++++++++++++++++++ > > > include/uapi/linux/virtio_mdev.h | 131 ++++++++ > > > 4 files changed, 639 insertions(+) > > > create mode 100644 drivers/vfio/mdev/virtio_mdev.c > > > create mode 100644 include/uapi/linux/virtio_mdev.h > > > > > [...] > > > diff --git a/include/uapi/linux/virtio_mdev.h b/include/uapi/linux/virtio_mdev.h > > > new file mode 100644 > > > index 000000000000..8040de6b960a > > > --- /dev/null > > > +++ b/include/uapi/linux/virtio_mdev.h > > > @@ -0,0 +1,131 @@ > > > +/* > > > + * Virtio mediated device driver > > > + * > > > + * Copyright 2019, Red Hat Corp. > > > + * > > > + * Based on Virtio MMIO driver by ARM Ltd, copyright ARM Ltd. 2011 > > > + * > > > + * This header is BSD licensed so anyone can use the definitions to implement > > > + * compatible drivers/servers. > > > + * > > > + * Redistribution and use in source and binary forms, with or without > > > + * modification, are permitted provided that the following conditions > > > + * are met: > > > + * 1. Redistributions of source code must retain the above copyright > > > + * notice, this list of conditions and the following disclaimer. > > > + * 2. Redistributions in binary form must reproduce the above copyright > > > + * notice, this list of conditions and the following disclaimer in the > > > + * documentation and/or other materials provided with the distribution. > > > + * 3. Neither the name of IBM nor the names of its contributors > > > + * may be used to endorse or promote products derived from this software > > > + * without specific prior written permission. > > > + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND > > > + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > > > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE > > > + * ARE DISCLAIMED. IN NO EVENT SHALL IBM OR CONTRIBUTORS BE LIABLE > > > + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL > > > + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS > > > + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) > > > + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT > > > + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY > > > + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF > > > + * SUCH DAMAGE. > > > + */ > > > +#ifndef _LINUX_VIRTIO_MDEV_H > > > +#define _LINUX_VIRTIO_MDEV_H > > > + > > > +#include > > > +#include > > > +#include > > > + > > > +/* > > > + * Ioctls > > > + */ > > > + > > > +struct virtio_mdev_callback { > > > + irqreturn_t (*callback)(void *); > > > + void *private; > > > +}; > > > + > > > +#define VIRTIO_MDEV 0xAF > > > +#define VIRTIO_MDEV_SET_VQ_CALLBACK _IOW(VIRTIO_MDEV, 0x00, \ > > > + struct virtio_mdev_callback) > > > +#define VIRTIO_MDEV_SET_CONFIG_CALLBACK _IOW(VIRTIO_MDEV, 0x01, \ > > > + struct virtio_mdev_callback) > > > + > > > +#define VIRTIO_MDEV_DEVICE_API_STRING "virtio-mdev" > > > + > > > +/* > > > + * Control registers > > > + */ > > > + > > > +/* Magic value ("virt" string) - Read Only */ > > > +#define VIRTIO_MDEV_MAGIC_VALUE 0x000 > > > + > > > +/* Virtio device version - Read Only */ > > > +#define VIRTIO_MDEV_VERSION 0x004 > > > + > > > +/* Virtio device ID - Read Only */ > > > +#define VIRTIO_MDEV_DEVICE_ID 0x008 > > > + > > > +/* Virtio vendor ID - Read Only */ > > > +#define VIRTIO_MDEV_VENDOR_ID 0x00c > > > + > > > +/* Bitmask of the features supported by the device (host) > > > + * (32 bits per set) - Read Only */ > > > +#define VIRTIO_MDEV_DEVICE_FEATURES 0x010 > > > + > > > +/* Device (host) features set selector - Write Only */ > > > +#define VIRTIO_MDEV_DEVICE_FEATURES_SEL 0x014 > > > + > > > +/* Bitmask of features activated by the driver (guest) > > > + * (32 bits per set) - Write Only */ > > > +#define VIRTIO_MDEV_DRIVER_FEATURES 0x020 > > > + > > > +/* Activated features set selector - Write Only */ > > > +#define VIRTIO_MDEV_DRIVER_FEATURES_SEL 0x024 > > > + > > > +/* Queue selector - Write Only */ > > > +#define VIRTIO_MDEV_QUEUE_SEL 0x030 > > > + > > > +/* Maximum size of the currently selected queue - Read Only */ > > > +#define VIRTIO_MDEV_QUEUE_NUM_MAX 0x034 > > > + > > > +/* Queue size for the currently selected queue - Write Only */ > > > +#define VIRTIO_MDEV_QUEUE_NUM 0x038 > > > + > > > +/* Ready bit for the currently selected queue - Read Write */ > > > +#define VIRTIO_MDEV_QUEUE_READY 0x044 > > > + > > > +/* Alignment of virtqueue - Read Only */ > > > +#define VIRTIO_MDEV_QUEUE_ALIGN 0x048 > > > + > > > +/* Queue notifier - Write Only */ > > > +#define VIRTIO_MDEV_QUEUE_NOTIFY 0x050 > > > + > > > +/* Device status register - Read Write */ > > > +#define VIRTIO_MDEV_STATUS 0x060 > > > + > > > +/* Selected queue's Descriptor Table address, 64 bits in two halves */ > > > +#define VIRTIO_MDEV_QUEUE_DESC_LOW 0x080 > > > +#define VIRTIO_MDEV_QUEUE_DESC_HIGH 0x084 > > > + > > > +/* Selected queue's Available Ring address, 64 bits in two halves */ > > > +#define VIRTIO_MDEV_QUEUE_AVAIL_LOW 0x090 > > > +#define VIRTIO_MDEV_QUEUE_AVAIL_HIGH 0x094 > > > + > > > +/* Selected queue's Used Ring address, 64 bits in two halves */ > > > +#define VIRTIO_MDEV_QUEUE_USED_LOW 0x0a0 > > > +#define VIRTIO_MDEV_QUEUE_USED_HIGH 0x0a4 > > > + > > > +/* Configuration atomicity value */ > > > +#define VIRTIO_MDEV_CONFIG_GENERATION 0x0fc > > > + > > > +/* The config space is defined by each driver as > > > + * the per-driver configuration space - Read Write */ > > > +#define VIRTIO_MDEV_CONFIG 0x100 > > IIUC, we can use above registers with virtio-mdev parent's > > read()/write() to access the mdev device from kernel driver. > > As you suggested, it's a choice to build vhost-mdev on top > > of this abstraction as well. But virtio is the frontend > > device which lacks some vhost backend features, e.g. get > > vring base, set vring base, negotiate vhost features, etc. > > So I'm wondering, does it make sense to reserve some space > > for vhost-mdev in kernel to do vhost backend specific setups? > > Or do you have any other thoughts? > > > Good point. It's just a quick POC, I plan to add vhost features in the next > release: > > 1) set/get virtqueue state (e.g vring base) > 2) dirty page tracking > 3) for vhost features, if you mean _F_LOG_ALL, it could be done by 2), for > IOTLB, it requires more thought on the API since current IOTLB API is no > implemented through ioctl ... > > > > > > Besides, I'm also wondering, what's the purpose of making > > above registers part of UAPI? > > > Sorry if it brings confusion. If we do vhost-mdev on top of this, there's no > need for this to go for UAPI. > > > > And if we make them part > > of UAPI, do we also need to make them part of virtio spec? > > > Yes, but I do not think we should put it into UAPI. Technically, userspace > can use this transport as well with some modification on the interrupt part, > e.g using eventfd. But is there any value for doing this instead of vhost? Yeah, I agree. As we already have vhost, I don't see the value to make virtio become "virtio + vhost". Thanks, Tiwei