From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michael S. Tsirkin" Subject: Re: kernel vhost demands an interrupt from guest when the ring is full in order to enable guest to submit new packets to the queue Date: Mon, 17 Dec 2018 17:55:40 -0500 Message-ID: <20181217173642-mutt-send-email-mst@kernel.org> References: <4F657BB0-DFB3-445D-872D-C54FA7252542@contoso.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <4F657BB0-DFB3-445D-872D-C54FA7252542@contoso.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: "Steven Luong (sluong)" Cc: "Jerome Tollet (jtollet)" , "Damjan Marion (damarion)" , "virtualization@lists.linux-foundation.org" List-Id: virtualization@lists.linuxfoundation.org T24gVGh1LCBEZWMgMTMsIDIwMTggYXQgMTE6MjQ6MjhQTSArMDAwMCwgU3RldmVuIEx1b25nIChz bHVvbmcpIHZpYSBWaXJ0dWFsaXphdGlvbiB3cm90ZToKPiBGb2xrcywKPiAKPiAgCj4gCj4gV2Ug Y2FtZSBhY3Jvc3MgYSBtZW1vcnkgcmFjZSBjb25kaXRpb24gYmV0d2VlbiBWUFAgdmhvc3QgZHJp dmVyIGFuZCB0aGUga2VybmVsCj4gdmhvc3QuIFZQUCBpcyBydW5uaW5nIGEgdGFwIGludGVyZmFj ZSBvdmVyIHZob3N0IGJhY2tlbmQuIEluIHRoaXMgY2FzZSwgVlBQIGlzCj4gYWN0aW5nIGFzIHRo ZSB2aG9zdCBkcml2ZXIgbW9kZSBhbmQgdGhlIGtlcm5lbCB2aG9zdCBpcyBhY3RpbmcgYXMgdGhl IHZob3N0Cj4gZGV2aWNlIG1vZGUuCj4gCj4gIAo+IAo+IEluIHRoZSBrZXJuZWwgdmhvc3TigJlz IFRYIHRyYWZmaWMgZGlyZWN0aW9uIHdoaWNoIGlzIFZQUOKAmXMgUlggdHJhZmZpYyBkaXJlY3Rp b24sCj4ga2VybmVsIHZob3N0IGlzIHRoZSBwcm9kdWNlciBhbmQgVlBQIGlzIHRoZSBjb25zdW1l ci4KCkxvb2tpbmcgYXQgdmhvc3QgbmV0IGtlcm5lbCBjb2RlLCBpdCBzZWVtcyB0byB1c2UgdGhl CnNhbWUgdGVybWlub2xvZ3kgYXMgdmlydGlvIG5ldC4KQ2FuIHlvdSBwbHMgY2xhcmlmeSB3aGlj aCByaW5nIG51bWJlciBkbyB5b3UgdXNlIDAgb3IgMT8KCkkgd2lsbCBhc3N1bWUgcmluZyAwIGJl bG93LgoKCgo+IEtlcm5lbCB2aG9zdCBwbGFjZXMKPiB0cmFmZmljIGluIGtlcm5lbCB2aG9zdOKA mXMgVFggdnJpbmcuIFZQUCByZW1vdmVzIHRyYWZmaWMgaW4gVlBQ4oCZcyBSWCB2cmluZy4KCgpT byBWUFAgbWFrZXMgYnVmZmVycyBhdmFpbGFibGUgYW5kIHZob3N0IGtlcm5lbCB1c2VzIHRoZW0/ CgoKPiBJdAo+IGlzIGluZXZpdGFibGUgdGhhdCB0aGUgdnJpbmcgbWF5IGJlY29tZSBmdWxsIHVu ZGVyIGhlYXZ5IHRyYWZmaWMgYW5kIHRoZSBrZXJuZWwKPiB2aG9zdCBtYXkgaGF2ZSB0byBzdG9w IGFuZCB3YWl0IGZvciB0aGUgZ3Vlc3QgKFZQUCkgdG8gZW1wdHkgdGhlIHZyaW5nIGFuZCB0bwo+ IHJlZmlsbCB0aGUgdnJpbmcgd2l0aCBkZXNjcmlwdG9ycy4gV2hlbiB0aGF0IGNhc2UgaGFwcGVu cywga2VybmVsIHZob3N0IGNsZWFycwo+IHRoZSBiaXQgaW4gdGhlIHZyaW5n4oCZcyB1c2VkIGZs YWcgdG8gcmVxdWVzdCBhbiBpbnRlcnJ1cHQvbm90aWZpY2F0aW9uLiBEdWUgdG8KPiBzaGFyZWQg bWVtb3J5IHJhY2UgY29uZGl0aW9uLCBWUFAgbWF5IG1pc3MgdGhlIGNsZWFyaW5nIG9mIHRoZSB2 cmluZ+KAmXMgdXNlZAo+IGZsYWcgZnJvbSBrZXJuZWwgdmhvc3QgYW5kIGRpZG7igJl0IHNlbmQg a2VybmVsIHZob3N0IGFuIGludGVycnVwdCBhZnRlciBWUFAKPiBlbXB0aWVzIGFuZCByZWZpbGxz IHRoZSB2cmluZyB3aXRoIG5ldyBkZXNjcmlwdG9ycy4KClNvIGtlcm5lbCB2aG9zdCdzIHdha2V1 cHMgYXJlIHNpZ25hbGxlZCB0aHJvdWdoIGV2ZW50ZmQgLSBJIGFzc3VtZQp0aGlzIGlzIHdoYXQg eW91IG1lYW4gYnkgYW4gaW50ZXJydXB0PwoKClRvIHByZXZlbnQgdGhlIHJhY2UgdGhhdCB5b3Ug ZGVzY3JpYmUsIHZob3N0IGhhcyB0aGlzIGNvZGU6CgogICAgICAgICAgICAgICAgLyogT0ssIG5v dyB3ZSBuZWVkIHRvIGtub3cgYWJvdXQgYWRkZWQgZGVzY3JpcHRvcnMuICovCiAgICAgICAgICAg ICAgICBpZiAoIWhlYWRjb3VudCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAodW5saWtl bHkoYnVzeWxvb3BfaW50cikpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aG9z dF9wb2xsX3F1ZXVlKCZ2cS0+cG9sbCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBp ZiAodW5saWtlbHkodmhvc3RfZW5hYmxlX25vdGlmeSgmbmV0LT5kZXYsIHZxKSkpIHsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaGV5IGhhdmUgc2xpcHBlZCBvbmUgaW4gYXMg d2Ugd2VyZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGRvaW5nIHRoYXQ6IGNo ZWNrIGFnYWluLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZob3N0X2Rpc2Fi bGVfbm90aWZ5KCZuZXQtPmRldiwgdnEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg ICAgIC8qIE5vdGhpbmcgbmV3PyAgV2FpdCBmb3IgZXZlbnRmZCB0byB0ZWxsIHVzCgpTbyByaW5n IHNob3VsZCBiZSByZS1jaGVja2VkIGFmdGVyIG5vdGlmaWNhdGlvbnMgYXJlIGVuYWJsZWQuCklm IHJpbmcgaXMgbm8gbG9uZ2VyIGVtcHR5LCB2aG9zdCB3aWxsIHByb2NlZWQgdG8gaGFuZGxlIHRo ZSByaW5nLiAgClRoaXMgY29kZSBoYXMgYmVlbiBhcm91bmQgZm9yIG1hbnkgeWVhcnMuCgpUaHVz IGlmIFZQUCBkb2Vzbid0IHdvcmsgd2l0aCBpdCB0aGVuIEkgc3VzcGVjdCBpdCBkb2VzIHNvbWV0 aGluZwpkaWZmZXJlbnRseSwgZS5nLiBpcyBpdCBwb3NzaWJsZSB0aGF0IGl0IGlzIG1pc3Npbmcg YSBtZW1vcnkKYmFycmllciBhZnRlciB3cml0aW5nIG91dCB0aGUgYXZhaWxhYmxlIGJ1ZmZlcnMg YW5kIGJlZm9yZQpjaGVja2luZyB0aGUgZmxhZ3M/CgoKCgo+IFVuZm9ydHVuYXRlbHksIHRoaXMg bWlzc2VkCj4gbm90aWZpY2F0aW9uIGNhdXNlcyB0aGUga2VybmVsIHZob3N0IHRvIGJlIHN0dWNr IGJlY2F1c2Ugb25jZSB0aGUga2VybmVsIHZob3N0Cj4gaXMgd2FpdGluZyBmb3IgYW4gaW50ZXJy dXB0L25vdGlmaWNhdGlvbiBmcm9tIHRoZSBndWVzdCwgb25seSBhbiBpbnRlcnJ1cHQvCj4gbm90 aWZpY2F0aW9uIGZyb20gdGhlIGd1ZXN0IGNhbiByZXN1bWUvcmUtZW5hYmxlIHRoZSBndWVzdCBm cm9tIHN1Ym1pdHRpbmcgbmV3Cj4gcGFja2V0cyB0byB0aGUgdnJpbmcuIFRoaXMgZGVzaWduIHNl ZW1zIHZ1bG5lcmFibGUuCgpUaGUgcHJvdG9jb2wgcmlnaHQgbm93IHJlbGllcyBvbiBub3RpZmlj YXRpb25zIG5ldmVyIGJlaW5nIGxvc3QuCgpJIGNhbiBpbWFnaW5lIGFuIGFsdGVybmF0aXZlIHdo ZXJlIGRldmljZSBhbHNvIHJlLWNoZWNrcwp0aGUgcmluZ3MgcGVyaW9kaWNhbGx5LCBidXQgdGhh dCB3b3VsZCBpbnZvbHZlIHJ1bm5pbmcKdGltZXJzIGhvc3Qgc2lkZSB3aGljaCBpcyBvbmx5IHBv c3NpYmxlIGlmIHRoZXJlJ3MgYQpmcmVlIHByb2Nlc3NvciB0aGF0IGNhbiBoYW5kbGUgdGhlbS4g RnVydGhlciwKaXQgd2lsbCBzdGlsbCBsZWFkIHRvIHN0YWxscyBhbmQgcGFja2V0IGRyb3BzLCB3 aGljaCB3aWxsCmJlIGhhcmRlciB0byBkZWJ1Zy4KClRoYXQncyBqdXN0IG15ICQuMDIsIHBscyBm ZWVsIGZyZWUgdG8gdGFrZSBpdCB3aXRoIHRoZSB2aXJ0aW8gdGMKbWF5YmUgb3RoZXJzIHdpbGwg ZmVlbCBkaWZmZXJlbnRseS4KCj4gU2hvdWxkIHRoZSBrZXJuZWwgdmhvc3QKPiB0b3RhbGx5IGRl cGVuZCBvbiB0aGUgbm90aWZpY2F0aW9uIGZyb20gdGhlIGd1ZXN0PyBRdW90aW5nIHRoZSB0ZXh0 IGZyb20KPiAKPiAgCj4gCj4gaHR0cDovL2RvY3Mub2FzaXMtb3Blbi5vcmcvdmlydGlvL3ZpcnRp by92MS4wL3ZpcnRpby12MS4wLmh0bWwKPiAKPiAgCj4gCj4gLyogVGhlIGRldmljZSB1c2VzIHRo aXMgaW4gdXNlZC0+ZmxhZ3MgdG8gYWR2aXNlIHRoZSBkcml2ZXI6IGRvbuKAmXQga2ljayBtZSAK PiAgKiB3aGVuIHlvdSBhZGQgYSBidWZmZXIuICBJdOKAmXMgdW5yZWxpYWJsZSwgc28gaXTigJlz IHNpbXBseSBhbiAKPiAgKiBvcHRpbWl6YXRpb24uICovIAo+ICNkZWZpbmUgVklSVFFfVVNFRF9G X05PX05PVElGWSAgMSAKPiAKPiAgCj4gCj4gSSBpbnRlcnByZXQgdGhhdCB0aGUgbm90aWZpY2F0 aW9uIGlzIHNpbXBseSBhbiBvcHRpbWl6YXRpb24sIG5vdCBhIHJlbGlhYmxlCj4gbm90aWZpY2F0 aW9uIG1lY2hhbmlzbS4gCgpXaGF0IHdhcyBtZWFudCBJIHRoaW5rIGlzIHRoYXQgc3VwcHJlc3Np b24gaXMgdW5yZWxpYWJsZS4KCj5TbyB0aGUga2VybmVsIHZob3N0IHNob3VsZCBub3QgYmV0IHRo ZSBmYXJtIG9uIGl0Lgo+IAo+ICAKPiAKPiBXZSBlbmNvdW50ZXIgdGhlIHNhbWUgcmFjZSBjb25k aXRpb24gaW4ga2VybmVsIHZob3N04oCZcyBSWCB0cmFmZmljIGRpcmVjdGlvbgo+IHdoaWNoIGNh dXNlcyB0aGUga2VybmVsIHZob3N0IHRvIGJlIHN0dWNrIGR1ZSB0byBtaXNzZWQgaW50ZXJydXB0 L25vdGlmaWNhdGlvbgo+IGFsdGhvdWdoIGl0IGlzIGxlc3MgZnJlcXVlbnQuCgoKRm9yIHRoZSBy ZXZlcnNlIGRpcmVjdGlvbiB0aGUgc3BlYyBhY3R1YWxseSBoYXMgc29tZSBwc2V1ZG8tY29kZSBh bmQgYSBzdWdnZXN0aW9uCmFib3V0IGhhbmRsaW5nIHRoYXQgcmFjZToKCglGb3Igb3B0aW1hbCBw ZXJmb3JtYW5jZSwgYSBkcml2ZXIgTUFZIGRpc2FibGUgdXNlZCBidWZmZXIgbm90aWZpY2F0aW9u cyB3aGlsZSBwcm9jZXNzaW5nIHRoZSB1c2VkCglyaW5nLCBidXQgYmV3YXJlIHRoZSBwcm9ibGVt IG9mIG1pc3Npbmcgbm90aWZpY2F0aW9ucyBiZXR3ZWVuIGVtcHR5aW5nIHRoZSByaW5nIGFuZCBy ZWVuYWJsaW5nIG5vLQoJdGlmaWNhdGlvbnMuIFRoaXMgaXMgdXN1YWxseSBoYW5kbGVkIGJ5IHJl LWNoZWNraW5nIGZvciBtb3JlIHVzZWQgYnVmZmVycyBhZnRlciBub3RpZmljYXRpb25zIGFyZSBy ZS0KCWVuYWJsZWQ6CgoJCXZpcnRxX2Rpc2FibGVfdXNlZF9idWZmZXJfbm90aWZpY2F0aW9ucyh2 cSk7CgkJZm9yICg7OykgewoJCQlpZiAodnEtPmxhc3Rfc2Vlbl91c2VkICE9IGxlMTZfdG9fY3B1 KHZpcnRxLT51c2VkLmlkeCkpIHsKCQkJdmlydHFfZW5hYmxlX3VzZWRfYnVmZmVyX25vdGlmaWNh dGlvbnModnEpOwoJCQltYigpOwoJCQlpZiAodnEtPmxhc3Rfc2Vlbl91c2VkICE9IGxlMTZfdG9f Y3B1KHZpcnRxLT51c2VkLmlkeCkpCgkJCQlicmVhazsKCQkJdmlydHFfZGlzYWJsZV91c2VkX2J1 ZmZlcl9ub3RpZmljYXRpb25zKHZxKTsKCQl9CgkJc3RydWN0IHZpcnRxX3VzZWRfZWxlbSAqZSA9 IHZpcnRxLnVzZWQtPnJpbmdbdnEtPmxhc3Rfc2Vlbl91c2VkJXZzel07CgkJcHJvY2Vzc19idWZm ZXIoZSk7CgkJdnEtPmxhc3Rfc2Vlbl91c2VkKys7CgoKCj4gIAo+IAo+IFN0ZXZlbgo+IAoKPiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IFZpcnR1YWxp emF0aW9uIG1haWxpbmcgbGlzdAo+IFZpcnR1YWxpemF0aW9uQGxpc3RzLmxpbnV4LWZvdW5kYXRp b24ub3JnCj4gaHR0cHM6Ly9saXN0cy5saW51eGZvdW5kYXRpb24ub3JnL21haWxtYW4vbGlzdGlu Zm8vdmlydHVhbGl6YXRpb24KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fClZpcnR1YWxpemF0aW9uIG1haWxpbmcgbGlzdApWaXJ0dWFsaXphdGlvbkBsaXN0 cy5saW51eC1mb3VuZGF0aW9uLm9yZwpodHRwczovL2xpc3RzLmxpbnV4Zm91bmRhdGlvbi5vcmcv bWFpbG1hbi9saXN0aW5mby92aXJ0dWFsaXphdGlvbg==