From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michael S. Tsirkin" Subject: Re: [PATCH net-next] virito-net: set queues after reset during xdp_set Date: Sun, 19 Feb 2017 07:08:51 +0200 Message-ID: <20170219064402-mutt-send-email-mst@kernel.org> References: <1487149689-28957-1-git-send-email-jasowang@redhat.com> <58A681E7.80907@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: 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: netdev@vger.kernel.org, John Fastabend , linux-kernel@vger.kernel.org, virtualization@lists.linux-foundation.org List-Id: virtualization@lists.linuxfoundation.org T24gRnJpLCBGZWIgMTcsIDIwMTcgYXQgMDE6MTA6MDhQTSArMDgwMCwgSmFzb24gV2FuZyB3cm90 ZToKPiAKPiAKPiBPbiAyMDE35bm0MDLmnIgxN+aXpSAxMjo1MywgSm9obiBGYXN0YWJlbmQgd3Jv dGU6Cj4gPiBPbiAxNy0wMi0xNSAwMTowOCBBTSwgSmFzb24gV2FuZyB3cm90ZToKPiA+ID4gV2Ug c2V0IHF1ZXVlcyBiZWZvcmUgcmVzZXQgd2hpY2ggd2lsbCBjYXVzZSBhIGNyYXNoWzFdLiBUaGlz IGlzCj4gPiA+IGJlY2F1c2UgaXNfeGRwX3Jhd19idWZmZXJfcXVldWUoKSBkZXBlbmRzIG9uIHRo ZSBvbGQgeGRwIHF1ZXVlIHBhaXJzCj4gPiA+IG51bWJlciB0byBkbyB0aGUgY29ycmVjdCBkZXRl Y3Rpb24uIFNvIGZpeCB0aGlzIGJ5Ogo+ID4gPiAKPiA+ID4gLSBzZXQgcXVldWVzIGFmdGVyIHJl c2V0LCB0byBrZWVwIHRoZSBvbGQgdmktPmN1cnJfcXVldWVfcGFpcnMuIChpbgo+ID4gPiAgICBm YWN0IHNldHRpbmcgcXVldWVzIGJlZm9yZSByZXNldCBkb2VzIG5vdCB3b3JrcyBzaW5jZSBhZnRl ciBmZWF0dXJlCj4gPiA+ICAgIHNldCwgYWxsIHF1ZXVlIHBhaXJzIHdlcmUgZW5hYmxlZCBieSBk ZWZhdWx0IGR1cmluZyByZXNldCkuCj4gPiA+IC0gY2hhbmdlIHhkcF9xdWV1ZV9wYWlycyBvbmx5 IGFmdGVyIHZpcnRuZXRfcmVzZXQoKSBpcyBzdWNjZWVkLgo+ID4gPiAKPiA+ID4gWzFdCj4gPiBJ J20gZ3Vlc3NpbmcgdGhpcyBvY2N1cnMgd2hlbiBlbmFibGluZyBYRFAgd2hpbGUgcmVjZWl2aW5n IGxvdHMgb2YgdHJhZmZpYz8KPiAKPiBJIGhpdCB0aGlzIHRoZW4gZGlzYWJsaW5nIFhEUCB3aGls ZSByZWNlaXZpbmcgbG90cyBvZiB0cmFmZmljLgo+IAo+ID4gCj4gPiA+IFsgICA3NC4zMjgxNjhd IGdlbmVyYWwgcHJvdGVjdGlvbiBmYXVsdDogMDAwMCBbIzFdIFNNUAo+ID4gPiBbICAgNzQuMzI4 NjI1XSBNb2R1bGVzIGxpbmtlZCBpbjogbmZzZCB4ZnMgbGliY3JjMzJjIHZpcnRpb19uZXQgdmly dGlvX3BjaQo+ID4gPiBbICAgNzQuMzI5MTE3XSBDUFU6IDAgUElEOiAyODQ5IENvbW06IHhkcDIg Tm90IHRhaW50ZWQgNC4xMC4wLXJjNysgIzQ5OQo+ID4gPiBbICAgNzQuMzI5NTc3XSBIYXJkd2Fy ZSBuYW1lOiBRRU1VIFN0YW5kYXJkIFBDIChpNDQwRlggKyBQSUlYLCAxOTk2KSwgQklPUyByZWwt MS4xMC4xLTAtZzg4OTE2OTctcHJlYnVpbHQucWVtdS1wcm9qZWN0Lm9yZyAwNC8wMS8yMDE0Cj4g PiA+IFsgICA3NC4zMzA0MjRdIHRhc2s6IGZmZmY4ODAwN2E4OTQwMDAgdGFzay5zdGFjazogZmZm ZmM5MDAwNDM4ODAwMAo+ID4gPiBbICAgNzQuMzMwODQ0XSBSSVA6IDAwMTA6c2tiX3JlbGVhc2Vf aGVhZF9zdGF0ZSsweDI4LzB4ODAKPiA+ID4gWyAgIDc0LjMzMTI5OF0gUlNQOiAwMDE4OmZmZmZj OTAwMDQzOGI4ZDAgRUZMQUdTOiAwMDAxMDIwNgo+ID4gPiBbICAgNzQuMzMxNjc2XSBSQVg6IDAw MDAwMDAwMDAwMDAwMDAgUkJYOiBmZmZmODgwMDdhZDk2MzAwIFJDWDogMDAwMDAwMDAwMDAwMDAw MAo+ID4gPiBbICAgNzQuMzMyMjE3XSBSRFg6IGZmZmY4ODAwN2ZjMTM3YTggUlNJOiBmZmZmODgw MDdmYzBkYjI4IFJESTogMDAwMWJmMDAwMDAwMDFiZQo+ID4gPiBbICAgNzQuMzMyNzU4XSBSQlA6 IGZmZmZjOTAwMDQzOGI4ZDggUjA4OiAwMDAwMDAwMDAwMDUwMDhmIFIwOTogMDAwMDAwMDAwMDAw MDVmOQo+ID4gPiBbICAgNzQuMzMzMjc0XSBSMTA6IGZmZmY4ODAwN2QwMDE3MDAgUjExOiBmZmZm ZmZmZjgyMGE4YTRkIFIxMjogZmZmZjg4MDA3YWQ5NjMwMAo+ID4gPiBbICAgNzQuMzMzNzg3XSBS MTM6IDAwMDAwMDAwMDAwMDAwMDIgUjE0OiBmZmZmODgwMDM2NjA0MDAwIFIxNTogMDAwMDc3ZmY4 MDAwMDAwMAo+ID4gPiBbICAgNzQuMzM0MzA4XSBGUzogIDAwMDA3ZmM3MGQ4YTdiNDAoMDAwMCkg R1M6ZmZmZjg4MDA3ZmMwMDAwMCgwMDAwKSBrbmxHUzowMDAwMDAwMDAwMDAwMDAwCj4gPiA+IFsg ICA3NC4zMzQ4OTFdIENTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAw NTAwMzMKPiA+ID4gWyAgIDc0LjMzNTMxNF0gQ1IyOiAwMDAwN2ZmZjQxNDRhNzEwIENSMzogMDAw MDAwMDA3YWI1NjAwMCBDUjQ6IDAwMDAwMDAwMDAzNDA2ZjAKPiA+ID4gWyAgIDc0LjMzNTgzMF0g RFIwOiAwMDAwMDAwMDAwMDAwMDAwIERSMTogMDAwMDAwMDAwMDAwMDAwMCBEUjI6IDAwMDAwMDAw MDAwMDAwMDAKPiA+ID4gWyAgIDc0LjMzNjM3M10gRFIzOiAwMDAwMDAwMDAwMDAwMDAwIERSNjog MDAwMDAwMDBmZmZlMGZmMCBEUjc6IDAwMDAwMDAwMDAwMDA0MDAKPiA+ID4gWyAgIDc0LjMzNjg5 NV0gQ2FsbCBUcmFjZToKPiA+ID4gWyAgIDc0LjMzNzA4Nl0gIHNrYl9yZWxlYXNlX2FsbCsweGQv MHgzMAo+ID4gPiBbICAgNzQuMzM3MzU2XSAgY29uc3VtZV9za2IrMHgyYy8weDkwCj4gPiA+IFsg ICA3NC4zMzc2MDddICBmcmVlX3VudXNlZF9idWZzKzB4MWZmLzB4MjcwIFt2aXJ0aW9fbmV0XQo+ ID4gPiBbICAgNzQuMzM3OTg4XSAgPyB2cF9zeW5jaHJvbml6ZV92ZWN0b3JzKzB4M2IvMHg2MCBb dmlydGlvX3BjaV0KPiA+ID4gWyAgIDc0LjMzODM5OF0gIHZpcnRuZXRfeGRwKzB4MjFlLzB4NDQw IFt2aXJ0aW9fbmV0XQo+ID4gPiBbICAgNzQuMzM4NzQxXSAgZGV2X2NoYW5nZV94ZHBfZmQrMHgx MDEvMHgxNDAKPiA+ID4gWyAgIDc0LjMzOTA0OF0gIGRvX3NldGxpbmsrMHhjZjQvMHhkMjAKPiA+ ID4gWyAgIDc0LjMzOTMwNF0gID8gc3ltY21wKzB4Zi8weDIwCj4gPiA+IFsgICA3NC4zMzk1Mjld ICA/IG1sc19sZXZlbF9pc3ZhbGlkKzB4NTIvMHg2MAo+ID4gPiBbICAgNzQuMzM5ODI4XSAgPyBt bHNfcmFuZ2VfaXN2YWxpZCsweDQzLzB4NTAKPiA+ID4gWyAgIDc0LjM0MDEzNV0gID8gbmxhX3Bh cnNlKzB4YTAvMHgxMDAKPiA+ID4gWyAgIDc0LjM0MDQwMF0gIHJ0bmxfc2V0bGluaysweGQ0LzB4 MTIwCj4gPiA+IFsgICA3NC4zNDA2NjRdICA/IGNwdW1hc2tfbmV4dF9hbmQrMHgzMC8weDUwCj4g PiA+IFsgICA3NC4zNDA5NjZdICBydG5ldGxpbmtfcmN2X21zZysweDdmLzB4MWYwCj4gPiA+IFsg ICA3NC4zNDEyNTldICA/IHNvY2tfaGFzX3Blcm0rMHg1OS8weDYwCj4gPiA+IFsgICA3NC4zNDE1 ODZdICA/IG5hcGlfY29uc3VtZV9za2IrMHhlMi8weDEwMAo+ID4gPiBbICAgNzQuMzQyMDEwXSAg PyBydG5sX25ld2xpbmsrMHg4OTAvMHg4OTAKPiA+ID4gWyAgIDc0LjM0MjQzNV0gIG5ldGxpbmtf cmN2X3NrYisweDkyLzB4YjAKPiA+ID4gWyAgIDc0LjM0Mjg0Nl0gIHJ0bmV0bGlua19yY3YrMHgy My8weDMwCj4gPiA+IFsgICA3NC4zNDMyNzddICBuZXRsaW5rX3VuaWNhc3QrMHgxNjIvMHgyMTAK PiA+ID4gWyAgIDc0LjM0MzY3N10gIG5ldGxpbmtfc2VuZG1zZysweDJkYi8weDM5MAo+ID4gPiBb ICAgNzQuMzQzOTY4XSAgc29ja19zZW5kbXNnKzB4MzMvMHg0MAo+ID4gPiBbICAgNzQuMzQ0MjMz XSAgU1lTQ19zZW5kdG8rMHhlZS8weDE2MAo+ID4gPiBbICAgNzQuMzQ0NDgyXSAgPyBTWVNDX2Jp bmQrMHhiMC8weGUwCj4gPiA+IFsgICA3NC4zNDQ4MDZdICA/IHNvY2tfYWxsb2NfZmlsZSsweDky LzB4MTEwCj4gPiA+IFsgICA3NC4zNDUxMDZdICA/IGZkX2luc3RhbGwrMHgyMC8weDMwCj4gPiA+ IFsgICA3NC4zNDUzNjBdICA/IHNvY2tfbWFwX2ZkKzB4M2YvMHg2MAo+ID4gPiBbICAgNzQuMzQ1 NTg2XSAgU3lTX3NlbmR0bysweDkvMHgxMAo+ID4gPiBbICAgNzQuMzQ1NzkwXSAgZW50cnlfU1lT Q0FMTF82NF9mYXN0cGF0aCsweDFhLzB4YTkKPiA+ID4gWyAgIDc0LjM0NjA4Nl0gUklQOiAwMDMz OjB4N2ZjNzBkMWI4ZjZkCj4gPiA+IFsgICA3NC4zNDYzMTJdIFJTUDogMDAyYjowMDAwN2ZmZjQx NDRhNzA4IEVGTEFHUzogMDAwMDAyNDYgT1JJR19SQVg6IDAwMDAwMDAwMDAwMDAwMmMKPiA+ID4g WyAgIDc0LjM0Njc4NV0gUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDAwMDBmZmZmZmZm ZiBSQ1g6IDAwMDA3ZmM3MGQxYjhmNmQKPiA+ID4gWyAgIDc0LjM0NzI0NF0gUkRYOiAwMDAwMDAw MDAwMDAwMDJjIFJTSTogMDAwMDdmZmY0MTQ0YTcyMCBSREk6IDAwMDAwMDAwMDAwMDAwMDMKPiA+ ID4gWyAgIDc0LjM0NzY4M10gUkJQOiAwMDAwMDAwMDAwMDAwMDAzIFIwODogMDAwMDAwMDAwMDAw MDAwMCBSMDk6IDAwMDAwMDAwMDAwMDAwMDAKPiA+ID4gWyAgIDc0LjM0ODU0NF0gUjEwOiAwMDAw MDAwMDAwMDAwMDAwIFIxMTogMDAwMDAwMDAwMDAwMDI0NiBSMTI6IDAwMDA3ZmZmNDE0NGJkOTAK PiA+ID4gWyAgIDc0LjM0OTA4Ml0gUjEzOiAwMDAwMDAwMDAwMDAwMDAyIFIxNDogMDAwMDAwMDAw MDAwMDAwMiBSMTU6IDAwMDA3ZmZmNDE0NGNkYTAKPiA+ID4gWyAgIDc0LjM0OTYwN10gQ29kZTog MDAgMDAgMDAgNTUgNDggODkgZTUgNTMgNDggODkgZmIgNDggOGIgN2YgNTggNDggODUgZmYgNzQg MGUgNDAgZjYgYzcgMDEgNzQgM2QgNDggYzcgNDMgNTggMDAgMDAgMDAgMDAgNDggOGIgN2IgNjgg NDggODUgZmYgNzQgMDUgPGYwPiBmZiAwZiA3NCAyMCA0OCA4YiA0MyA2MCA0OCA4NSBjMCA3NCAx NCA2NSA4YiAxNSBmMyBhYiA4ZCA3ZQo+ID4gPiBbICAgNzQuMzUxMDA4XSBSSVA6IHNrYl9yZWxl YXNlX2hlYWRfc3RhdGUrMHgyOC8weDgwIFJTUDogZmZmZmM5MDAwNDM4YjhkMAo+ID4gPiBbICAg NzQuMzUxNjI1XSAtLS1bIGVuZCB0cmFjZSBmZTZlMTlmZDExY2ZjODBiIF0tLS0KPiA+ID4gCj4g PiA+IEZpeGVzOiAyZGUyZjdmNDBlZjkgKCJ2aXJ0aW9fbmV0OiBYRFAgc3VwcG9ydCBmb3IgYWRq dXN0X2hlYWQiKQo+ID4gPiBDYzogSm9obiBGYXN0YWJlbmQgPGpvaG4uZmFzdGFiZW5kQGdtYWls LmNvbT4KPiA+ID4gU2lnbmVkLW9mZi1ieTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNv bT4KPiA+ID4gLS0tCj4gPiA+ICAgZHJpdmVycy9uZXQvdmlydGlvX25ldC5jIHwgMzUgKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gICAxIGZpbGUgY2hhbmdlZCwgMTgg aW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvdmlydGlvX25ldC5jIGIvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jCj4gPiA+ IGluZGV4IDExZTI4NTMuLjlmZjk1OWMgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvbmV0L3Zp cnRpb19uZXQuYwo+ID4gPiArKysgYi9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMKPiA+ID4gQEAg LTE3NzUsNyArMTc3NSw3IEBAIHN0YXRpYyBpbnQgdmlydG5ldF94ZHBfc2V0KHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYsIHN0cnVjdCBicGZfcHJvZyAqcHJvZykKPiA+ID4gICAJdW5zaWduZWQgbG9u ZyBpbnQgbWF4X3N6ID0gUEFHRV9TSVpFIC0gc2l6ZW9mKHN0cnVjdCBwYWRkZWRfdm5ldF9oZHIp Owo+ID4gPiAgIAlzdHJ1Y3QgdmlydG5ldF9pbmZvICp2aSA9IG5ldGRldl9wcml2KGRldik7Cj4g PiA+ICAgCXN0cnVjdCBicGZfcHJvZyAqb2xkX3Byb2c7Cj4gPiA+IC0JdTE2IG94ZHBfcXAsIHhk cF9xcCA9IDAsIGN1cnJfcXA7Cj4gPiA+ICsJdTE2IHhkcF9xcCA9IDAsIGN1cnJfcXA7Cj4gPiA+ ICAgCWludCBpLCBlcnI7Cj4gPiA+ICAgCWlmICh2aXJ0aW9faGFzX2ZlYXR1cmUodmktPnZkZXYs IFZJUlRJT19ORVRfRl9HVUVTVF9UU080KSB8fAo+ID4gPiBAQCAtMTgxMywyNCArMTgxMywyNCBA QCBzdGF0aWMgaW50IHZpcnRuZXRfeGRwX3NldChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1 Y3QgYnBmX3Byb2cgKnByb2cpCj4gPiA+ICAgCQkJcmV0dXJuIFBUUl9FUlIocHJvZyk7Cj4gPiA+ ICAgCX0KPiA+ID4gLQllcnIgPSBfdmlydG5ldF9zZXRfcXVldWVzKHZpLCBjdXJyX3FwICsgeGRw X3FwKTsKPiA+ID4gLQlpZiAoZXJyKSB7Cj4gPiA+IC0JCWRldl93YXJuKCZkZXYtPmRldiwgIlhE UCBEZXZpY2UgcXVldWUgYWxsb2NhdGlvbiBmYWlsdXJlLlxuIik7Cj4gPiA+IC0JCWdvdG8gdmly dGlvX3F1ZXVlX2VycjsKPiA+ID4gLQl9Cj4gPiA+IC0KPiA+ID4gLQlveGRwX3FwID0gdmktPnhk cF9xdWV1ZV9wYWlyczsKPiA+ID4gLQo+ID4gPiAgIAkvKiBDaGFuZ2luZyB0aGUgaGVhZHJvb20g aW4gYnVmZmVycyBpcyBhIGRpc3J1cHRpdmUgb3BlcmF0aW9uIGJlY2F1c2UKPiA+ID4gICAJICog ZXhpc3RpbmcgYnVmZmVycyBtdXN0IGJlIGZsdXNoZWQgYW5kIHJlYWxsb2NhdGVkLiBUaGlzIHdp bGwgaGFwcGVuCj4gPiA+ICAgCSAqIHdoZW4gYSB4ZHAgcHJvZ3JhbSBpcyBpbml0aWFsbHkgYWRk ZWQgb3IgeGRwIGlzIGRpc2FibGVkIGJ5IHJlbW92aW5nCj4gPiA+ICAgCSAqIHRoZSB4ZHAgcHJv Z3JhbSByZXN1bHRpbmcgaW4gbnVtYmVyIG9mIFhEUCBxdWV1ZXMgY2hhbmdpbmcuCj4gPiA+ICAg CSAqLwo+ID4gPiAgIAlpZiAodmktPnhkcF9xdWV1ZV9wYWlycyAhPSB4ZHBfcXApIHsKPiA+ID4g LQkJdmktPnhkcF9xdWV1ZV9wYWlycyA9IHhkcF9xcDsKPiA+ID4gICAJCWVyciA9IHZpcnRuZXRf cmVzZXQodmkpOwo+ID4gPiAtCQlpZiAoZXJyKQo+ID4gPiArCQlpZiAoZXJyKSB7Cj4gPiA+ICsJ CQlkZXZfd2FybigmZGV2LT5kZXYsICJYRFAgcmVzZXQgZmFpbHVyZS5cbiIpOwo+ID4gPiAgIAkJ CWdvdG8gdmlydGlvX3Jlc2V0X2VycjsKPiA+ID4gKwkJfQo+ID4gPiArCQl2aS0+eGRwX3F1ZXVl X3BhaXJzID0geGRwX3FwOwo+ID4gQnV0IHhkcF9xdWV1ZV9wYWlycyBpcyBiZWluZyB1c2VkIHRv IGRldGVjdCBpZiB3ZSBzaG91bGQgYWxsb2NhdGUgdGhlIFhEUAo+ID4gaGVhZHJvb20uIElmIHdl IG1vdmUgaXQgaGVyZSBkbyB3ZSBoYXZlIGEgc2V0IG9mIGJ1ZmZlcnMgaW4gdGhlIHJpbmcgd2l0 aG91dAo+ID4gdGhlIHByb3BlciBoZWFkcm9vbSB3aGVuIHdlIGFzc2lnbiB0aGUgeGRwIHByb2dy YW0gYmVsb3c/Cj4gCj4gUmlnaHQsIHNvIGhvdyBhYm91dCBwYXNzaW5nIHhkcF9xdWV1ZV9wYWly cyBhcyBhIHBhcmFtZXRlciB0bwo+IHZpcnRuZXRfcmVzZXQoKS4gVGhlbiB2aXJ0bmV0X3Jlc2V0 KCkgY2FuIHNldCBpdCBhZnRlciBfcmVtb3ZlX3ZxX2NvbW1vbigpCj4gYnV0IGJlZm9yZSB2aXJ0 bmV0X3Jlc3RvcmVfdXAoKT8KPiAKPiBUaGFua3MKCkphc29uLCB3b3VsZG4ndCB5b3Ugc2F5IGl0 J3MgY2xlYW5lciB0byBhdm9pZCByZXNldHM/CldvdWxkIHlvdSBiZSBpbnRlcmVzdGVkIGluIGNv bXBsZXRpbmcgdGhpcyB3b3JrOgoKMjAxNzAyMDcwNTM0NTUtbXV0dC1zZW5kLWVtYWlsLW1zdEBr ZXJuZWwub3JnCgoKPiA+IAo+ID4gPiArCX0KPiA+ID4gKwo+ID4gPiArCWVyciA9IF92aXJ0bmV0 X3NldF9xdWV1ZXModmksIGN1cnJfcXAgKyB4ZHBfcXApOwo+ID4gPiArCWlmIChlcnIpIHsKPiA+ ID4gKwkJZGV2X3dhcm4oJmRldi0+ZGV2LCAiWERQIERldmljZSBxdWV1ZSBhbGxvY2F0aW9uIGZh aWx1cmUuXG4iKTsKPiA+ID4gKwkJZ290byB2aXJ0aW9fcXVldWVfZXJyOwo+ID4gPiAgIAl9Cj4g PiA+ICAgCW5ldGlmX3NldF9yZWFsX251bV9yeF9xdWV1ZXMoZGV2LCBjdXJyX3FwICsgeGRwX3Fw KTsKPiA+ID4gQEAgLTE4NDQsMTcgKzE4NDQsMTggQEAgc3RhdGljIGludCB2aXJ0bmV0X3hkcF9z ZXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGJwZl9wcm9nICpwcm9nKQo+ID4gPiAg IAlyZXR1cm4gMDsKPiA+IFRoYW5rcywKPiA+IEpvaG4KPiA+IApfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpWaXJ0dWFsaXphdGlvbiBtYWlsaW5nIGxpc3QK VmlydHVhbGl6YXRpb25AbGlzdHMubGludXgtZm91bmRhdGlvbi5vcmcKaHR0cHM6Ly9saXN0cy5s aW51eGZvdW5kYXRpb24ub3JnL21haWxtYW4vbGlzdGluZm8vdmlydHVhbGl6YXRpb24= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751086AbdBSFRS (ORCPT ); Sun, 19 Feb 2017 00:17:18 -0500 Received: from mx1.redhat.com ([209.132.183.28]:60754 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750819AbdBSFRQ (ORCPT ); Sun, 19 Feb 2017 00:17:16 -0500 Date: Sun, 19 Feb 2017 07:08:51 +0200 From: "Michael S. Tsirkin" To: Jason Wang Cc: John Fastabend , virtualization@lists.linux-foundation.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH net-next] virito-net: set queues after reset during xdp_set Message-ID: <20170219064402-mutt-send-email-mst@kernel.org> References: <1487149689-28957-1-git-send-email-jasowang@redhat.com> <58A681E7.80907@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Sun, 19 Feb 2017 05:08:53 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Feb 17, 2017 at 01:10:08PM +0800, Jason Wang wrote: > > > On 2017年02月17日 12:53, John Fastabend wrote: > > On 17-02-15 01:08 AM, Jason Wang wrote: > > > We set queues before reset which will cause a crash[1]. This is > > > because is_xdp_raw_buffer_queue() depends on the old xdp queue pairs > > > number to do the correct detection. So fix this by: > > > > > > - set queues after reset, to keep the old vi->curr_queue_pairs. (in > > > fact setting queues before reset does not works since after feature > > > set, all queue pairs were enabled by default during reset). > > > - change xdp_queue_pairs only after virtnet_reset() is succeed. > > > > > > [1] > > I'm guessing this occurs when enabling XDP while receiving lots of traffic? > > I hit this then disabling XDP while receiving lots of traffic. > > > > > > [ 74.328168] general protection fault: 0000 [#1] SMP > > > [ 74.328625] Modules linked in: nfsd xfs libcrc32c virtio_net virtio_pci > > > [ 74.329117] CPU: 0 PID: 2849 Comm: xdp2 Not tainted 4.10.0-rc7+ #499 > > > [ 74.329577] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.10.1-0-g8891697-prebuilt.qemu-project.org 04/01/2014 > > > [ 74.330424] task: ffff88007a894000 task.stack: ffffc90004388000 > > > [ 74.330844] RIP: 0010:skb_release_head_state+0x28/0x80 > > > [ 74.331298] RSP: 0018:ffffc9000438b8d0 EFLAGS: 00010206 > > > [ 74.331676] RAX: 0000000000000000 RBX: ffff88007ad96300 RCX: 0000000000000000 > > > [ 74.332217] RDX: ffff88007fc137a8 RSI: ffff88007fc0db28 RDI: 0001bf00000001be > > > [ 74.332758] RBP: ffffc9000438b8d8 R08: 000000000005008f R09: 00000000000005f9 > > > [ 74.333274] R10: ffff88007d001700 R11: ffffffff820a8a4d R12: ffff88007ad96300 > > > [ 74.333787] R13: 0000000000000002 R14: ffff880036604000 R15: 000077ff80000000 > > > [ 74.334308] FS: 00007fc70d8a7b40(0000) GS:ffff88007fc00000(0000) knlGS:0000000000000000 > > > [ 74.334891] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > > > [ 74.335314] CR2: 00007fff4144a710 CR3: 000000007ab56000 CR4: 00000000003406f0 > > > [ 74.335830] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 > > > [ 74.336373] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 > > > [ 74.336895] Call Trace: > > > [ 74.337086] skb_release_all+0xd/0x30 > > > [ 74.337356] consume_skb+0x2c/0x90 > > > [ 74.337607] free_unused_bufs+0x1ff/0x270 [virtio_net] > > > [ 74.337988] ? vp_synchronize_vectors+0x3b/0x60 [virtio_pci] > > > [ 74.338398] virtnet_xdp+0x21e/0x440 [virtio_net] > > > [ 74.338741] dev_change_xdp_fd+0x101/0x140 > > > [ 74.339048] do_setlink+0xcf4/0xd20 > > > [ 74.339304] ? symcmp+0xf/0x20 > > > [ 74.339529] ? mls_level_isvalid+0x52/0x60 > > > [ 74.339828] ? mls_range_isvalid+0x43/0x50 > > > [ 74.340135] ? nla_parse+0xa0/0x100 > > > [ 74.340400] rtnl_setlink+0xd4/0x120 > > > [ 74.340664] ? cpumask_next_and+0x30/0x50 > > > [ 74.340966] rtnetlink_rcv_msg+0x7f/0x1f0 > > > [ 74.341259] ? sock_has_perm+0x59/0x60 > > > [ 74.341586] ? napi_consume_skb+0xe2/0x100 > > > [ 74.342010] ? rtnl_newlink+0x890/0x890 > > > [ 74.342435] netlink_rcv_skb+0x92/0xb0 > > > [ 74.342846] rtnetlink_rcv+0x23/0x30 > > > [ 74.343277] netlink_unicast+0x162/0x210 > > > [ 74.343677] netlink_sendmsg+0x2db/0x390 > > > [ 74.343968] sock_sendmsg+0x33/0x40 > > > [ 74.344233] SYSC_sendto+0xee/0x160 > > > [ 74.344482] ? SYSC_bind+0xb0/0xe0 > > > [ 74.344806] ? sock_alloc_file+0x92/0x110 > > > [ 74.345106] ? fd_install+0x20/0x30 > > > [ 74.345360] ? sock_map_fd+0x3f/0x60 > > > [ 74.345586] SyS_sendto+0x9/0x10 > > > [ 74.345790] entry_SYSCALL_64_fastpath+0x1a/0xa9 > > > [ 74.346086] RIP: 0033:0x7fc70d1b8f6d > > > [ 74.346312] RSP: 002b:00007fff4144a708 EFLAGS: 00000246 ORIG_RAX: 000000000000002c > > > [ 74.346785] RAX: ffffffffffffffda RBX: 00000000ffffffff RCX: 00007fc70d1b8f6d > > > [ 74.347244] RDX: 000000000000002c RSI: 00007fff4144a720 RDI: 0000000000000003 > > > [ 74.347683] RBP: 0000000000000003 R08: 0000000000000000 R09: 0000000000000000 > > > [ 74.348544] R10: 0000000000000000 R11: 0000000000000246 R12: 00007fff4144bd90 > > > [ 74.349082] R13: 0000000000000002 R14: 0000000000000002 R15: 00007fff4144cda0 > > > [ 74.349607] Code: 00 00 00 55 48 89 e5 53 48 89 fb 48 8b 7f 58 48 85 ff 74 0e 40 f6 c7 01 74 3d 48 c7 43 58 00 00 00 00 48 8b 7b 68 48 85 ff 74 05 ff 0f 74 20 48 8b 43 60 48 85 c0 74 14 65 8b 15 f3 ab 8d 7e > > > [ 74.351008] RIP: skb_release_head_state+0x28/0x80 RSP: ffffc9000438b8d0 > > > [ 74.351625] ---[ end trace fe6e19fd11cfc80b ]--- > > > > > > Fixes: 2de2f7f40ef9 ("virtio_net: XDP support for adjust_head") > > > Cc: John Fastabend > > > Signed-off-by: Jason Wang > > > --- > > > drivers/net/virtio_net.c | 35 ++++++++++++++++++----------------- > > > 1 file changed, 18 insertions(+), 17 deletions(-) > > > > > > diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c > > > index 11e2853..9ff959c 100644 > > > --- a/drivers/net/virtio_net.c > > > +++ b/drivers/net/virtio_net.c > > > @@ -1775,7 +1775,7 @@ static int virtnet_xdp_set(struct net_device *dev, struct bpf_prog *prog) > > > unsigned long int max_sz = PAGE_SIZE - sizeof(struct padded_vnet_hdr); > > > struct virtnet_info *vi = netdev_priv(dev); > > > struct bpf_prog *old_prog; > > > - u16 oxdp_qp, xdp_qp = 0, curr_qp; > > > + u16 xdp_qp = 0, curr_qp; > > > int i, err; > > > if (virtio_has_feature(vi->vdev, VIRTIO_NET_F_GUEST_TSO4) || > > > @@ -1813,24 +1813,24 @@ static int virtnet_xdp_set(struct net_device *dev, struct bpf_prog *prog) > > > return PTR_ERR(prog); > > > } > > > - err = _virtnet_set_queues(vi, curr_qp + xdp_qp); > > > - if (err) { > > > - dev_warn(&dev->dev, "XDP Device queue allocation failure.\n"); > > > - goto virtio_queue_err; > > > - } > > > - > > > - oxdp_qp = vi->xdp_queue_pairs; > > > - > > > /* Changing the headroom in buffers is a disruptive operation because > > > * existing buffers must be flushed and reallocated. This will happen > > > * when a xdp program is initially added or xdp is disabled by removing > > > * the xdp program resulting in number of XDP queues changing. > > > */ > > > if (vi->xdp_queue_pairs != xdp_qp) { > > > - vi->xdp_queue_pairs = xdp_qp; > > > err = virtnet_reset(vi); > > > - if (err) > > > + if (err) { > > > + dev_warn(&dev->dev, "XDP reset failure.\n"); > > > goto virtio_reset_err; > > > + } > > > + vi->xdp_queue_pairs = xdp_qp; > > But xdp_queue_pairs is being used to detect if we should allocate the XDP > > headroom. If we move it here do we have a set of buffers in the ring without > > the proper headroom when we assign the xdp program below? > > Right, so how about passing xdp_queue_pairs as a parameter to > virtnet_reset(). Then virtnet_reset() can set it after _remove_vq_common() > but before virtnet_restore_up()? > > Thanks Jason, wouldn't you say it's cleaner to avoid resets? Would you be interested in completing this work: 20170207053455-mutt-send-email-mst@kernel.org > > > > > + } > > > + > > > + err = _virtnet_set_queues(vi, curr_qp + xdp_qp); > > > + if (err) { > > > + dev_warn(&dev->dev, "XDP Device queue allocation failure.\n"); > > > + goto virtio_queue_err; > > > } > > > netif_set_real_num_rx_queues(dev, curr_qp + xdp_qp); > > > @@ -1844,17 +1844,18 @@ static int virtnet_xdp_set(struct net_device *dev, struct bpf_prog *prog) > > > return 0; > > Thanks, > > John > >