From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sasha Levin Subject: virtio-pci new configuration proposal Date: Wed, 02 Nov 2011 20:49:27 +0200 Message-ID: <1320259767.22582.2.camel@lappy> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-7" Content-Transfer-Encoding: base64 Return-path: 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: Rusty Russell , "Michael S. Tsirkin" Cc: linux-kernel , kvm , virtualization List-Id: virtualization@lists.linuxfoundation.org VGhpcyBpcyBhIHByb3Bvc2FsIGZvciBhIG5ldyBsYXlvdXQgb2YgdGhlIHZpcnRpby1wY2kgY29u ZmlnIHNwYWNlLgoKV2Ugd2lsbCBzZXBhcmF0ZSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uIGlu dG8gdHdvOiBBIHZpcnRpby1wY2kgY29tbW9uCmNvbmZpZ3VyYXRpb24gYW5kIGEgZGV2aWNlIHNw ZWNpZmljIGNvbmZpZ3VyYXRpb24uIFRoaXMgYWxsb3dzIG1vcmUgZmxleGliaWxpdHkKd2l0aCBh ZGRpbmcgZmVhdHVyZXMgYW5kIG1ha2VzIHVzYWdlIGVhc2llciwgc3BlY2lmaWNhbGx5IGluIGNh c2VzIGxpa2UgdGhlCm9uZXMgaW4gdmlydGlvLW5ldCB3aGVyZSBkZXZpY2Ugc3BlY2lmaWMgY29u ZmlndXJhdGlvbnMgZGVwZW5kIG9uIGRldmljZQpzcGVjaWZpYyBmZWF0dXJlcy4KClRoZSBwcmVm ZXJyZWQgbG9jYXRpb24gb2YgdGhlIGNvbmZpZ3VyYXRpb24gd2lsbCBiZSBhIE1NSU8gQkFSLCB0 aGVyZWZvcmUKc2V2ZXJhbCBzaXplIG9wdGltaXphdGlvbnMgc3VjaCBhcyB0aGUgcXVldWUgc2Vs ZWN0b3Igd2hpY2ggd2VyZSB1c2VmdWwKb24gYSBQSU8gQkFSIHdlcmUgcmVtb3ZlZCBhbmQgbGlu a2VkIGxpc3RzIHdlcmUgaW50cm9kdWNlZCB0byBhZGQKZmxleGliaWxpdHkgdG8gZXhpc3Rpbmcg c3RydWN0dXJlcyBpbiBhdHRlbXB0IHRvIGtlZXAgdGhlaXIgc2l6ZSBhbmQKb2Zmc2V0cyBjb25z dGFudCBhbmQgbm90IGRlcGVuZGVudCBvbiBmZWF0dXJlcy4KCldoaWxlIHRoaXMgaXMgbm90IGEg Y29tcGxldGUgc3BlY2lmaWNhdGlvbiwgaXQgZGVzY3JpYmVzIGFsbCB0aGUgbWFpbgpzdHJ1Y3R1 cmVzIGFuZCBzaG91bGQgYmUgZW5vdWdoIHRvIG1ha2Ugc3VyZSB0aGUgaWRlYSBpcyBzb2xpZCBi ZWZvcmUKZ29pbmcgaW50byBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpY3MuCgpBIG5ldyB2aXJ0aW8t cGNpIGNhcGFiaWxpdHkgc3RydWN0dXJlIHdpbGwgYmUgaW50cm9kdWNlZC4gVGhpcyBzdHJ1Y3R1 cmUKd2lsbCBiZSB1c2VkIHRvIGRlc2NyaWJlIHRoZSBiYXNpY3Mgb2YgYSB2aXJ0aW8tcGNpIGRl dmljZS4gVGhlCnN0cnVjdHVyZSBpcyBhY3R1YWxseSBhIFBDSSBjYXBhYmlsaXR5IHN0cnVjdHVy ZSB3aGljaCB3cmFwcyB0aGUgbmV3IHZpcnRpby1wY2kKY2FwYWJpbGl0eSBzdHJ1Y3R1cmU6Cgor LS0tLS0tLS0tLS0tKystLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLQp8IEJpdHMgICAgICAgfHwgOCAgICAgICAgICB8 IDggICAgICAgICAgfCA4ICAgICAgICAgIHwgOCAgICAgICAgICAgIHwgQ2FwIHNwZWNpZmljCist LS0tLS0tLS0tLS0rKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCnwgUmVhZC9Xcml0ZSB8fCBSICAgICAgICAgIHwg UiAgICAgICAgICB8IFIgICAgICAgICAgfCBSICAgICAgICAgICAgfCBDYXAgc3BlY2lmaWMKKy0t LS0tLS0tLS0tLSsrLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KfCBQdXJwb3NlICAgIHx8IENhcGFiaWxpdHkgfCBD YXBhYmlsaXR5IHwgdmlydGlvLXBjaSB8IHZpcnRpby1wY2kgICB8IENhcCBzcGVjaWZpYwp8ICAg ICAgICAgICAgfHwgSUQgICAgICAgICB8IE5leHQgUFRSICAgfCBDYXAgSUQgICAgIHwgTmV4dCBD YXAgUFRSIHwKKy0tLS0tLS0tLS0tLSsrLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KCkN1cnJlbnRseSwgb25seSBv bmUgdmlydGlvLXBjaSBjYXBhYmlsaXR5IGlzIGRlZmluZWQsIGFuZCBpcyB0aGUgb25lIHRoYXQg ZGVmaW5lcwp0aGUgbGF5b3V0IG9mIHRoZSB2aXJ0aW8tcGNpIGNvbmZpZyBzcGFjZS4KClZJUlRJ T19QQ0lfQ19MQVlPVVQ6CgorLS0tLS0tLS0tLS0tKystLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKwp8IEJpdHMgICAgICAg fHwgMjkgICAgICAgICAgICB8IDMgICAgICAgICAgICAgfCAyOSAgICAgICAgICAgICAgfCAzICAg ICAgICAgICAgICAgfAorLS0tLS0tLS0tLS0tKystLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKwp8IFJlYWQvV3JpdGUgfHwg UiAgICAgICAgICAgICB8IFIgICAgICAgICAgICAgfCBSICAgICAgICAgICAgICAgfCBSICAgICAg ICAgICAgICAgfAorLS0tLS0tLS0tLS0tKystLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKwp8IFB1cnBvc2UgICAgfHwgQ29t bW9uIGNvbmZpZyB8IENvbW1vbiBjb25maWcgfCBEZXZpY2Ugc3BlY2lmaWMgfCBEZXZpY2Ugc3Bl Y2lmaWMgfAp8ICAgICAgICAgICAgfHwgT2Zmc2V0ICAgICAgICB8IEJJUiAgICAgICAgICAgfCBP ZmZzZXQgICAgICAgICAgfCBCSVIgICAgICAgICAgICAgfAorLS0tLS0tLS0tLS0tKystLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKwoKVGhlIGNvbWJpbmF0aW9uIG9mIHRoZSBvZmZzZXQgYW5kIHRoZSBCSVIgd2lsbCBwb2lu dCB0byB0aGUgY29tbW9uIGFuZCBkZXZpY2UKc3BlY2lmaWMgY29uZmlndXJhdGlvbiBzcGFjZXMu IFRoZXNlIHNwYWNlcyBtYXkgYmUgcG9pbnRlZCB0byBieSB0aGUgc2FtZSwgb3IKYnkgZGlmZmVy ZW50IEJBUnMgYW5kIG1heSBzaXQgaW4gdGhlIHNhbWUgb3IgZGlmZmVyZW50IE1NSU8gcmVnaW9u cy4KClRoZSBCSVIgaXMgYSBQQ0kgY29uY2VwdCB3aGljaCBkZXNjcmliZXMgd2hpY2ggQkFSIHNo b3VsZCBiZSB1c2VkOgoKIkluZGljYXRlcyB3aGljaCBvbmUgb2YgYSBmdW5jdGlvbqJzIEJhc2Ug QWRkcmVzcyByZWdpc3RlcnMsIGxvY2F0ZWQgYmVnaW5uaW5nCmF0IDEwaCBpbiBDb25maWd1cmF0 aW9uIHNwYWNlLCBpcyB1c2VkIHRvIG1hcCB0aGUgZnVuY3Rpb26icyBNU0ktWCBUYWJsZSBpbnRv Cm1lbW9yeSBzcGFjZS4KCkJJUiBWYWx1ZQlCYXNlIEFkZHJlc3MgcmVnaXN0ZXIKMAkJMTBoCjEJ CTE0aAoyCQkxOGgKMwkJMUNoCjQJCTIwaAo1CQkyNGgKNgkJUmVzZXJ2ZWQKNwkJUmVzZXJ2ZWQi CgpXaGlsZSB0aGUgb2Zmc2V0IHdpbGwgcHJvdmlkZSBhIDMyLWJpdCBhbGlnbmVkIG9mZnNldCBp bnRvIHRoZSBtZW1vcnkgcmVnaW9uCmFuZCB3aWxsIHBvaW50IHRvIHRoZSBhcHByb3ByaWF0ZSBj b25maWcgc3BhY2UuCgpGaXJzdCwgd2Ugd2lsbCBsb29rIGF0IHRoZSB2aXJ0aW8tcGNpIGNvbmZp Z3VyYXRpb24gc3BhY2UsIHdoaWNoIGhhcyBiZWVuCnNpbXBsaWZpZWQgZnJvbSB0aGUgb3JpZ2lu YWwuCgp2aXJ0aW8tcGNpIGhlYWRlcjoKCistLS0tLS0tLS0tLS0rKy0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSsKfCBCaXRzICAgICAgIHx8IDggICAgICAg fCA4ICAgICAgfCAxNiAgICAgICAgICAgfCAxNiAgICAgICAgICAgfAorLS0tLS0tLS0tLS0tKyst LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rCnwgUmVhZC9X cml0ZSB8fCBSK1cgICAgIHwgUiAgICAgIHwgUiAgICAgICAgICAgIHwgUiAgICAgICAgICAgIHwK Ky0tLS0tLS0tLS0tLSsrLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tKwp8IFB1cnBvc2UgICAgfHwgRGV2aWNlICB8IElTUiAgICB8IFF1ZXVlICAgICAgICB8 IHZpcnRpby1wY2kgICB8CnwgICAgICAgICAgICB8fCBTdGF0dXMgIHwgU3RhdHVzIHwgVGFibGUg UHRyICAgIHwgRmVhdHVyZXMgUHRyIHwKKy0tLS0tLS0tLS0tLSsrLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKwoKRGV2aWNlIGFuZCBJU1Igc3RhdHVzIGFy ZSB0aGUgc2FtZSBhcyBpbiB0aGUgb3JpZ2luYWwsIGFuZCB0d28gbmV3IGZpZWxkcwpoYXZlIGJl ZW4gYWRkZWQuIFF1ZXVlIHRhYmxlIHB0ciBpcyBhbiBvZmZzZXQgZnJvbSB0aGUgYmVnaW5uaW5n IG9mIHRoZQpjb25maWcgc3BhY2UgdG8gYSB0YWJsZSB3aGljaCBkZXNjcmliZXMgYWxsIHZpcnRp byBxdWV1ZXMsIGFuZCBpcyBkZWZpbmVkCmJlbG93LgpWaXJ0aW8tcGNpIGZlYXR1cmVzIHB0ciB3 aWxsIHBvaW50IHRvIHZpcnRpby1wY2kgZmVhdHVyZXMsIHN1Y2ggZmVhdHVyZXMKd2lsbCBiZSBw bGFjZWQgaW4gYSB2aXJ0aW8tcGNpIGZlYXR1cmUgc3RydWN0IHdoaWNoIGlzIGRlZmluZWQgYXMg Zm9sbG93czoKCnZpcnRpby1wY2kgZmVhdHVyZXM6CgorLS0tLS0tLS0tLS0tKystLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0KfCBCaXRzICAgICAgIHx8IDggICAg ICAgICAgfCAxNiAgICAgICAgIHwgRmVhdHVyZSBzcGVjaWZpYworLS0tLS0tLS0tLS0tKystLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0KfCBSZWFkL1dyaXRlIHx8 IFIgICAgICAgICAgfCBSICAgICAgICAgIHwgRmVhdHVyZSBzcGVjaWZpYworLS0tLS0tLS0tLS0t KystLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0KfCBQdXJwb3Nl ICAgIHx8IEZlYXR1cmUgICAgfCBGZWF0dXJlICAgIHwgRmVhdHVyZSBzcGVjaWZpYwp8ICAgICAg ICAgICAgfHwgSUQgICAgICAgICB8IE5leHQgUFRSICAgfCAKKy0tLS0tLS0tLS0tLSsrLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCgpGb3IgZXhhbXBsZSwgdGhl IHZpcnRpby1wY2kgTVNJLVggZmVhdHVyZSB3aWxsIGxvb2sgYXMgZm9sbG93czoKClZJUlRJT19Q Q0lfRl9NU0lYOgoKKy0tLS0tLS0tLS0tLSsrLS0tLS0tLS0tLS0tLS0tLSsKfCBCaXRzICAgICAg IHx8IDE2ICAgICAgICAgICAgIHwKKy0tLS0tLS0tLS0tLSsrLS0tLS0tLS0tLS0tLS0tLSsKfCBS ZWFkL1dyaXRlIHx8IFIrVyAgICAgICAgICAgIHwKKy0tLS0tLS0tLS0tLSsrLS0tLS0tLS0tLS0t LS0tLSsKfCBQdXJwb3NlICAgIHx8IENvbmZpZ3VyYXRpb24gIHwKfCAgICAgICAgICAgIHx8IFZl Y3RvciAgICAgICAgIHwKKy0tLS0tLS0tLS0tLSsrLS0tLS0tLS0tLS0tLS0tLSsKClRoZSBxdWV1 ZSB0YWJsZSBpcyB0aGUgdGFibGUgd2hpY2ggd2lsbCBob2xkIHRoZSBkZWZpbml0aW9uIG9mIGFs bCB2aXJ0aW8KcXVldWVzLiBUaGUgdmlydGlvIHF1ZXVlIHNlbGVjdG9yIGhhcyBiZWVuIGRyb3Bw ZWQgYW5kIGluc3RlYWQgdGhlIHF1ZXVlcwphcmUgbGlzdGVkIGluIGEgc2ltcGxlIGxpc3Q6CgpR dWV1ZSB0YWJsZToKCistLS0tLS0tLS0tLS0rKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCnwgQml0cyAgICAgICB8fCA4 ICAgICAgfCAzMiAgICAgICB8IDE2ICAgICB8IDE2ICAgICAgfCAxNiAgICAgICAgICAgfCBNb3Jl IHF1ZXVlcworLS0tLS0tLS0tLS0tKystLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLQp8IFJlYWQvV3JpdGUgfHwgUiAgICAg IHwgUitXICAgICAgfCBSICAgICAgfCBSK1cgICAgIHwgUiAgICAgICAgICAgIHwgTW9yZSBxdWV1 ZXMKKy0tLS0tLS0tLS0tLSsrLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KfCBQdXJwb3NlICAgIHx8IFF1ZXVlICB8IFF1 ZXVlICAgIHwgUXVldWUgIHwgUXVldWUgICB8IFF1ZXVlICAgICAgICB8IE1vcmUgcXVldWVzCnwg ICAgICAgICAgICB8fCBDb3VudCAgfCBBZGRyZXNzICB8IFNpemUgICB8IE5vdGlmeSAgfCBGZWF0 dXJlcyBQdHIgfAorLS0tLS0tLS0tLS0tKystLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLQoKQmVzaWRlcyB0aGUgdXN1YWwg ZmllbGRzLCBlYWNoIHZpcnRpbyBxdWV1ZSB3aWxsIGFsc28gaGF2ZSBhIGZlYXR1cmUgcHRyIHdo aWNoCnBvaW50cyB0byBxdWV1ZSBzcGVjaWZpYyBmZWF0dXJlcy4gVGhlc2UgZmVhdHVyZXMgbWF5 IGJlIHNoYXJlZCBiZXR3ZWVuIHF1ZXVlcwp0aGVyZWZvcmUgaXQgaXMgbm90IHJlcXVpcmVkIHRv IGRlZmluZSBhIGZlYXR1cmUgc3RydWN0IGZvciBlYWNoIHF1ZXVlLgoKUXVldWUgZmVhdHVyZXM6 CgorLS0tLS0tLS0tLS0tKystLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0KfCBCaXRzICAgICAgIHx8IDggICAgICAgICAgfCAxNiAgICAgICAgIHwgRmVhdHVyZSBz cGVjaWZpYworLS0tLS0tLS0tLS0tKystLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0KfCBSZWFkL1dyaXRlIHx8IFIgICAgICAgICAgfCBSICAgICAgICAgIHwgRmVh dHVyZSBzcGVjaWZpYworLS0tLS0tLS0tLS0tKystLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0KfCBQdXJwb3NlICAgIHx8IEZlYXR1cmUgICAgfCBGZWF0dXJlICAg IHwgRmVhdHVyZSBzcGVjaWZpYwp8ICAgICAgICAgICAgfHwgSUQgICAgICAgICB8IE5leHQgUFRS ICAgfCAKKy0tLS0tLS0tLS0tLSsrLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tCgpGb3IgZXhhbXBsZSwgdGhlIHZpcnRpbyBxdWV1ZSBNU0ktWCBmZWF0dXJlIHdp bGwgbG9vayBhcyBmb2xsb3dzIGFuZCBtYXkgYmUKc2hhcmVkIGJldHdlZW4gYWxsIHZpcnRpbyBx dWV1ZXMgaWYgd2Ugb25seSBoYXZlIG9uZSB2ZWN0b3IgZm9yIGFsbCBxdWV1ZXMuCgpWSVJUSU9f UVVFVUVfRl9NU0lYOgoKKy0tLS0tLS0tLS0tLSsrLS0tLS0tLS0rCnwgQml0cyAgICAgICB8fCAx NiAgICAgfAorLS0tLS0tLS0tLS0tKystLS0tLS0tLSsKfCBSZWFkL1dyaXRlIHx8IFIrVyAgICB8 CistLS0tLS0tLS0tLS0rKy0tLS0tLS0tKwp8IFB1cnBvc2UgICAgfHwgUXVldWUgIHwKfCAoTVNJ LVgpICAgIHx8IFZlY3RvciB8CistLS0tLS0tLS0tLS0rKy0tLS0tLS0tKwoKCgpUaGUgc2Vjb25k IHBhcnQgaXMgdGhlIGRldmljZSBzcGVjaWZpYyBjb25maWd1cmF0aW9uIHNwYWNlLiBUaGlzIGlz CmJhc2ljYWxseSBhIGxpbmtlZCBsaXN0IG9mIGZlYXR1cmVzIHdoaWNoIG1heSBiZSBhY3RpdmF0 ZWQgb3IKZGVhY3RpdmF0ZWQgYnkgc2V0dGluZyB0aGUgYWN0aXZlIGZsYWcgaW4gZWFjaCBmZWF0 dXJlLgoKRGV2aWNlIHNwZWNpZmljIGZlYXR1cmVzOgoKKy0tLS0tLS0tLS0tLSsrLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQp8IEJpdHMgICAgICAgfHwgOCAg ICAgICAgICB8IDE2ICAgICAgICAgfCA4ICAgICAgICB8IEZlYXR1cmUgc3BlY2lmaWMKKy0tLS0t LS0tLS0tLSsrLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQp8 IFJlYWQvV3JpdGUgfHwgUiAgICAgICAgICB8IFIgICAgICAgICAgfCBSK1cgICAgICB8IEZlYXR1 cmUgc3BlY2lmaWMKKy0tLS0tLS0tLS0tLSsrLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLQp8IFB1cnBvc2UgICAgfHwgRmVhdHVyZSAgICB8IEZlYXR1cmUgICAg fCBGZWF0dXJlICB8IEZlYXR1cmUgc3BlY2lmaWMKfCAgICAgICAgICAgIHx8IElEICAgICAgICAg fCBOZXh0IFBUUiAgIHwgQWN0aXZlICAgfAorLS0tLS0tLS0tLS0tKystLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCgpGb3IgZXhhbXBsZSwgdGhlIHZpcnRpby1u ZXQgTUFDIGZlYXR1cmUgd2lsbCBsb29rIGFzIGZvbGxvd3M6CgpWSVJUSU9fTkVUX0ZfTUFDOgoK Ky0tLS0tLS0tLS0tLSsrLS0tLS0tLS0tLS0tKwp8IEJpdHMgICAgICAgfHwgNDggICAgICAgICB8 CistLS0tLS0tLS0tLS0rKy0tLS0tLS0tLS0tLSsKfCBSZWFkL1dyaXRlIHx8IFIgICAgICAgICAg fAorLS0tLS0tLS0tLS0tKystLS0tLS0tLS0tLS0rCnwgUHVycG9zZSAgICB8fCB2aXJ0aW8tbmV0 IHwKfCAgICAgICAgICAgIHx8IE1BQyAgICAgICAgfCAKKy0tLS0tLS0tLS0tLSsrLS0tLS0tLS0t LS0tKwoKLS0gCgpTYXNoYS4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fClZpcnR1YWxpemF0aW9uIG1haWxpbmcgbGlzdApWaXJ0dWFsaXphdGlvbkBsaXN0 cy5saW51eC1mb3VuZGF0aW9uLm9yZwpodHRwczovL2xpc3RzLmxpbnV4Zm91bmRhdGlvbi5vcmcv bWFpbG1hbi9saXN0aW5mby92aXJ0dWFsaXphdGlvbg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756368Ab1KBSvY (ORCPT ); Wed, 2 Nov 2011 14:51:24 -0400 Received: from mail-qy0-f174.google.com ([209.85.216.174]:65064 "EHLO mail-qy0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932240Ab1KBSvU (ORCPT ); Wed, 2 Nov 2011 14:51:20 -0400 Subject: virtio-pci new configuration proposal From: Sasha Levin To: Rusty Russell , "Michael S. Tsirkin" Cc: linux-kernel , kvm , virtualization Content-Type: text/plain; charset="iso-8859-7" Date: Wed, 02 Nov 2011 20:49:27 +0200 Message-ID: <1320259767.22582.2.camel@lappy> Mime-Version: 1.0 X-Mailer: Evolution 2.32.3 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is a proposal for a new layout of the virtio-pci config space. We will separate the current configuration into two: A virtio-pci common configuration and a device specific configuration. This allows more flexibility with adding features and makes usage easier, specifically in cases like the ones in virtio-net where device specific configurations depend on device specific features. The preferred location of the configuration will be a MMIO BAR, therefore several size optimizations such as the queue selector which were useful on a PIO BAR were removed and linked lists were introduced to add flexibility to existing structures in attempt to keep their size and offsets constant and not dependent on features. While this is not a complete specification, it describes all the main structures and should be enough to make sure the idea is solid before going into implementation specifics. A new virtio-pci capability structure will be introduced. This structure will be used to describe the basics of a virtio-pci device. The structure is actually a PCI capability structure which wraps the new virtio-pci capability structure: +------------++------------+------------+------------+--------------+----------------- | Bits || 8 | 8 | 8 | 8 | Cap specific +------------++------------+------------+------------+--------------+----------------- | Read/Write || R | R | R | R | Cap specific +------------++------------+------------+------------+--------------+----------------- | Purpose || Capability | Capability | virtio-pci | virtio-pci | Cap specific | || ID | Next PTR | Cap ID | Next Cap PTR | +------------++------------+------------+------------+--------------+----------------- Currently, only one virtio-pci capability is defined, and is the one that defines the layout of the virtio-pci config space. VIRTIO_PCI_C_LAYOUT: +------------++---------------+---------------+-----------------+-----------------+ | Bits || 29 | 3 | 29 | 3 | +------------++---------------+---------------+-----------------+-----------------+ | Read/Write || R | R | R | R | +------------++---------------+---------------+-----------------+-----------------+ | Purpose || Common config | Common config | Device specific | Device specific | | || Offset | BIR | Offset | BIR | +------------++---------------+---------------+-----------------+-----------------+ The combination of the offset and the BIR will point to the common and device specific configuration spaces. These spaces may be pointed to by the same, or by different BARs and may sit in the same or different MMIO regions. The BIR is a PCI concept which describes which BAR should be used: "Indicates which one of a function¢s Base Address registers, located beginning at 10h in Configuration space, is used to map the function¢s MSI-X Table into memory space. BIR Value Base Address register 0 10h 1 14h 2 18h 3 1Ch 4 20h 5 24h 6 Reserved 7 Reserved" While the offset will provide a 32-bit aligned offset into the memory region and will point to the appropriate config space. First, we will look at the virtio-pci configuration space, which has been simplified from the original. virtio-pci header: +------------++---------+--------+--------------+--------------+ | Bits || 8 | 8 | 16 | 16 | +------------++---------+--------+--------------+--------------+ | Read/Write || R+W | R | R | R | +------------++---------+--------+--------------+--------------+ | Purpose || Device | ISR | Queue | virtio-pci | | || Status | Status | Table Ptr | Features Ptr | +------------++---------+--------+--------------+--------------+ Device and ISR status are the same as in the original, and two new fields have been added. Queue table ptr is an offset from the beginning of the config space to a table which describes all virtio queues, and is defined below. Virtio-pci features ptr will point to virtio-pci features, such features will be placed in a virtio-pci feature struct which is defined as follows: virtio-pci features: +------------++------------+------------+------------------- | Bits || 8 | 16 | Feature specific +------------++------------+------------+------------------- | Read/Write || R | R | Feature specific +------------++------------+------------+------------------- | Purpose || Feature | Feature | Feature specific | || ID | Next PTR | +------------++------------+------------+------------------- For example, the virtio-pci MSI-X feature will look as follows: VIRTIO_PCI_F_MSIX: +------------++----------------+ | Bits || 16 | +------------++----------------+ | Read/Write || R+W | +------------++----------------+ | Purpose || Configuration | | || Vector | +------------++----------------+ The queue table is the table which will hold the definition of all virtio queues. The virtio queue selector has been dropped and instead the queues are listed in a simple list: Queue table: +------------++-------------------+--------+---------+--------------+-------------- | Bits || 8 | 32 | 16 | 16 | 16 | More queues +------------++-------------------+--------+---------+--------------+-------------- | Read/Write || R | R+W | R | R+W | R | More queues +------------++-------------------+--------+---------+--------------+-------------- | Purpose || Queue | Queue | Queue | Queue | Queue | More queues | || Count | Address | Size | Notify | Features Ptr | +------------++-------------------+--------+---------+--------------+-------------- Besides the usual fields, each virtio queue will also have a feature ptr which points to queue specific features. These features may be shared between queues therefore it is not required to define a feature struct for each queue. Queue features: +------------++------------+------------+------------------- | Bits || 8 | 16 | Feature specific +------------++------------+------------+------------------- | Read/Write || R | R | Feature specific +------------++------------+------------+------------------- | Purpose || Feature | Feature | Feature specific | || ID | Next PTR | +------------++------------+------------+------------------- For example, the virtio queue MSI-X feature will look as follows and may be shared between all virtio queues if we only have one vector for all queues. VIRTIO_QUEUE_F_MSIX: +------------++--------+ | Bits || 16 | +------------++--------+ | Read/Write || R+W | +------------++--------+ | Purpose || Queue | | (MSI-X) || Vector | +------------++--------+ The second part is the device specific configuration space. This is basically a linked list of features which may be activated or deactivated by setting the active flag in each feature. Device specific features: +------------++------------+------------+----------+--------- | Bits || 8 | 16 | 8 | Feature specific +------------++------------+------------+----------+--------- | Read/Write || R | R | R+W | Feature specific +------------++------------+------------+----------+--------- | Purpose || Feature | Feature | Feature | Feature specific | || ID | Next PTR | Active | +------------++------------+------------+----------+--------- For example, the virtio-net MAC feature will look as follows: VIRTIO_NET_F_MAC: +------------++------------+ | Bits || 48 | +------------++------------+ | Read/Write || R | +------------++------------+ | Purpose || virtio-net | | || MAC | +------------++------------+ -- Sasha.