From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jon Rosen (jrosen)" Subject: RE: [PATCH v2] packet: track ring entry use using a shadow ring to prevent RX ring overrun Date: Mon, 21 May 2018 12:57:30 +0000 Message-ID: References: <1526731655-10087-1-git-send-email-jrosen@cisco.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: "David S. Miller" , Willem de Bruijn , Eric Dumazet , Kees Cook , David Windsor , "Rosen, Rami" , "Reshetova, Elena" , "Mike Maloney" , Benjamin Poirier , "Thomas Gleixner" , Greg Kroah-Hartman , "open list:NETWORKING [GENERAL]" , open list To: Willem de Bruijn Return-path: In-Reply-To: Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org T24gU3VuZGF5LCBNYXkgMjAsIDIwMTggNzoyMiBQTSwgV2lsbGVtIGRlIEJydWlqbg0KPHdpbGxl bWRlYnJ1aWpuLmtlcm5lbEBnbWFpbC5jb20+IHdyb3RlOg0KPiBPbiBTdW4sIE1heSAyMCwgMjAx OCBhdCA2OjUxIFBNLCBXaWxsZW0gZGUgQnJ1aWpuDQo+IDx3aWxsZW1kZWJydWlqbi5rZXJuZWxA Z21haWwuY29tPiB3cm90ZToNCj4+IE9uIFNhdCwgTWF5IDE5LCAyMDE4IGF0IDg6MDcgQU0sIEpv biBSb3NlbiA8anJvc2VuQGNpc2NvLmNvbT4gd3JvdGU6DQo+Pj4gRml4IFBBQ0tFVF9SWF9SSU5H IGJ1ZyBmb3IgdmVyc2lvbnMgVFBBQ0tFVF9WMSBhbmQgVFBBQ0tFVF9WMiB3aGljaA0KPj4+IGNh c3VlcyB0aGUgcmluZyB0byBnZXQgY29ycnVwdGVkIGJ5IGFsbG93aW5nIG11bHRpcGxlIGtlcm5l bCB0aHJlYWRzDQo+Pj4gdG8gY2xhaW0gb3duZXJzaGlwIG9mIHRoZSBzYW1lIHJpbmcgZW50cnku IFRyYWNrIG93bmVyc2hpcCBpbiBhIHNoYWRvdw0KPj4+IHJpbmcgc3RydWN0dXJlIHRvIHByZXZl bnQgb3RoZXIga2VybmVsIHRocmVhZHMgZnJvbSByZXVzaW5nIHRoZSBzYW1lDQo+Pj4gZW50cnkg YmVmb3JlIGl0J3MgZnVsbHkgZmlsbGVkIGluLCBwYXNzZWQgdG8gdXNlciBzcGFjZSwgYW5kIHRo ZW4NCj4+PiBldmVudHVhbGx5IHBhc3NlZCBiYWNrIHRvIHRoZSBrZXJuZWwgZm9yIHVzZSB3aXRo IGEgbmV3IHBhY2tldC4NCj4+Pg0KPj4+IFNpZ25lZC1vZmYtYnk6IEpvbiBSb3NlbiA8anJvc2Vu QGNpc2NvLmNvbT4NCj4+PiAtLS0NCj4+Pg0KPj4+IFRoZXJlIGlzIGEgYnVnIGluIG5ldC9wYWNr ZXQvYWZfcGFja2V0LmM6dHBhY2tldF9yY3YgaW4gaG93IGl0IG1hbmFnZXMNCj4+PiB0aGUgUEFD S0VUX1JYX1JJTkcgZm9yIHZlcnNpb25zIFRQQUNLRVRfVjEgYW5kIFRQQUNLRVRfVjIuICBUaGlz IGJ1ZyBtYWtlcw0KPj4+IGl0IHBvc3NpYmxlIGZvciBtdWx0aXBsZSBrZXJuZWwgdGhyZWFkcyB0 byBjbGFpbSBvd25lcnNoaXAgb2YgdGhlIHNhbWUNCj4+PiByaW5nIGVudHJ5LCBjb3JydXB0aW5n IHRoZSByaW5nIGFuZCB0aGUgY29ycmVzcG9uZGluZyBwYWNrZXQocykuDQo+Pj4NCj4+PiBUaGVz ZSBkaWZmcyBhcmUgdGhlIHNlY29uZCBwcm9wb3NlZCBzb2x1dGlvbiwgcHJldmlvdXMgcHJvcG9z YWwgd2FzIGRlc2NyaWJlZA0KPj4+IGluIGh0dHBzOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vbmV0 ZGV2QHZnZXIua2VybmVsLm9yZy9tc2cyMjc0NjguaHRtbA0KPj4+IHN1YmplY3QgW1JGQyBQQVRD SF0gcGFja2V0OiBtYXJrIHJpbmcgZW50cnkgYXMgaW4tdXNlIGluc2lkZSBzcGluX2xvY2sNCj4+ PiB0byBwcmV2ZW50IFJYIHJpbmcgb3ZlcnJ1bg0KPj4+DQo+Pj4gVGhvc2UgZGlmZnMgd291bGQg aGF2ZSBjaGFuZ2VkIHRoZSBiaW5hcnkgaW50ZXJmYWNlIGFuZCBoYXZlIGJyb2tlbiBjZXJ0YWlu DQo+Pj4gYXBwbGljYXRpb25zLiBDb25zZW5zdXMgd2FzIHRoYXQgc3VjaCBhIGNoYW5nZSB3b3Vs ZCBiZSBpbmFwcHJvcHJpYXRlLg0KPj4+DQo+Pj4gVGhlc2UgbmV3IGRpZmZzIHVzZSBhIHNoYWRv dyByaW5nIGluIGtlcm5lbCBzcGFjZSBmb3IgdHJhY2tpbmcgaW50ZXJtZWRpYXRlDQo+Pj4gc3Rh dGUgb2YgYW4gZW50cnkgYW5kIHByZXZlbnQgbW9yZSB0aGFuIG9uZSBrZXJuZWwgdGhyZWFkIGZy b20gc2ltdWx0YW5lb3VzbHkNCj4+PiBhbGxvY2F0aW5nIGEgcmluZyBlbnRyeS4gVGhpcyBhdm9p ZHMgYW55IGltcGFjdCB0byB0aGUgYmluYXJ5IGludGVyZmFjZQ0KPj4+IGJldHdlZW4ga2VybmVs IGFuZCB1c2Vyc3BhY2UgYnV0IGNvbWVzIGF0IHRoZSBhZGRpdGlvbmFsIGNvc3Qgb2YgcmVxdWly aW5nIGENCj4+PiBzZWNvbmQgc3Bpbl9sb2NrIHdoZW4gcGFzc2luZyBvd25lcnNoaXAgb2YgYSBy aW5nIGVudHJ5IHRvIHVzZXJzcGFjZS4NCj4+Pg0KPj4+IEpvbiBSb3NlbiAoMSk6DQo+Pj4gICBw YWNrZXQ6IHRyYWNrIHJpbmcgZW50cnkgdXNlIHVzaW5nIGEgc2hhZG93IHJpbmcgdG8gcHJldmVu dCBSWCByaW5nDQo+Pj4gICAgIG92ZXJydW4NCj4+Pg0KPj4+ICBuZXQvcGFja2V0L2FmX3BhY2tl dC5jIHwgNjQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysNCj4+PiAgbmV0L3BhY2tldC9pbnRlcm5hbC5oICB8IDE0ICsrKysrKysrKysrDQo+Pj4gIDIg ZmlsZXMgY2hhbmdlZCwgNzggaW5zZXJ0aW9ucygrKQ0KPj4+DQo+Pg0KPj4+IEBAIC0yMzgzLDcg KzI0MTIsMTEgQEAgc3RhdGljIGludCB0cGFja2V0X3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBz dHJ1Y3QgbmV0X2RldmljZSAqZGV2LA0KPj4+ICAjZW5kaWYNCj4+Pg0KPj4+ICAgICAgICAgaWYg KHBvLT50cF92ZXJzaW9uIDw9IFRQQUNLRVRfVjIpIHsNCj4+PiArICAgICAgICAgICAgICAgc3Bp bl9sb2NrKCZzay0+c2tfcmVjZWl2ZV9xdWV1ZS5sb2NrKTsNCj4+PiAgICAgICAgICAgICAgICAg X19wYWNrZXRfc2V0X3N0YXR1cyhwbywgaC5yYXcsIHN0YXR1cyk7DQo+Pj4gKyAgICAgICAgICAg ICAgIHBhY2tldF9yeF9zaGFkb3dfcmVsZWFzZShyeF9zaGFkb3dfcmluZ19lbnRyeSk7DQo+Pj4g KyAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZzay0+c2tfcmVjZWl2ZV9xdWV1ZS5sb2NrKTsN Cj4+PiArDQo+Pj4gICAgICAgICAgICAgICAgIHNrLT5za19kYXRhX3JlYWR5KHNrKTsNCj4+DQo+ PiBUaGFua3MgZm9yIGNvbnRpbnVpbmcgdG8gbG9vayBhdCB0aGlzLiBJIHNwZW50IHNvbWUgdGlt ZSBvbiBpdCBsYXN0IHRpbWUNCj4+IGFyb3VuZCBidXQgZ290IHN0dWNrLCB0b28uDQo+Pg0KPj4g VGhpcyB2ZXJzaW9uIHRha2VzIGFuIGV4dHJhIHNwaW5sb2NrIGluIHRoZSBob3QgcGF0aC4gVGhh dCB3aWxsIGJlIHZlcnkNCj4+IGV4cGVuc2l2ZS4gT25jZSB3ZSBuZWVkIHRvIGFjY2VwdCB0aGF0 LCB3ZSBjb3VsZCBvcHQgZm9yIGEgc2ltcGxlcg0KPj4gaW1wbGVtZW50YXRpb24gYWtpbiB0byB0 aGUgb25lIGRpc2N1c3NlZCBpbiB0aGUgcHJldmlvdXMgdGhyZWFkOg0KPj4NCj4+IHN0YXNoIGEg dmFsdWUgaW4gdHBfcGFkZGluZyBvciBzaW1pbGFyIHdoaWxlIHRwX3N0YXR1cyByZW1haW5zDQo+ PiBUUF9TVEFUVVNfS0VSTkVMIHRvIHNpZ25hbCBvd25lcnNoaXAgdG8gY29uY3VycmVudCBrZXJu ZWwNCj4+IHRocmVhZHMuIFRoZSBpc3N1ZSBwcmV2aW91c2x5IHdhcyB0aGF0IHRoYXQgZmllbGQg Y291bGQgbm90IGF0b21pY2FsbHkNCj4+IGJlIGNsZWFyZWQgdG9nZXRoZXIgd2l0aCBfX3BhY2tl dF9zZXRfc3RhdHVzLiBUaGlzIGlzIG5vIGxvbmdlcg0KPj4gYW4gaXNzdWUgd2hlbiBob2xkaW5n IHRoZSBxdWV1ZSBsb2NrLg0KPj4NCj4+IFdpdGggYSBmaWVsZCBsaWtlIHRwX3BhZGRpbmcsIHVu bGlrZSB0cF9sZW4sIGl0IGlzIGFyZ3VhYmx5IGFsc28gc2FmZSB0bw0KPj4gY2xlYXIgaXQgYWZ0 ZXIgZmxpcHBpbmcgc3RhdHVzICh1c2Vyc3BhY2Ugc2hvdWxkIHRyZWF0IGl0IGFzIHVuZGVmaW5l ZCkuDQo+Pg0KPj4gV2l0aCB2MSB0cGFja2V0X2hkciwgbm8gZXhwbGljaXQgcGFkZGluZyBmaWVs ZCBpcyBkZWZpbmVkIGJ1dCBkdWUgdG8NCj4+IFRQQUNLRVRfSERSTEVOIGFsaWdubWVudCBpdCBl eGlzdHMgb24gYm90aCAzMiBhbmQgNjQgYml0DQo+PiBwbGF0Zm9ybXMuDQo+Pg0KPj4gVGhlIGRh bmdlciB3aXRoIHVzaW5nIHBhZGRpbmcgaXMgdGhhdCBhIHByb2Nlc3MgbWF5IHdyaXRlIHRvIGl0 DQo+PiBhbmQgY2F1c2UgZGVhZGxvY2ssIG9mIGNvdXJzZS4gVGhlcmUgaXMgbm8gbG9naWNhbCBy ZWFzb24gZm9yIGRvaW5nDQo+PiBzby4NCj4NCj4gRm9yIHRoZSByaW5nLCB0aGVyZSBpcyBubyBy ZXF1aXJlbWVudCB0byBhbGxvY2F0ZSBleGFjdGx5IHRoZSBhbW91bnQNCj4gc3BlY2lmaWVkIGJ5 IHRoZSB1c2VyIHJlcXVlc3QuIFNhZmVyIHRoYW4gcmVseWluZyBvbiBzaGFyZWQgbWVtb3J5DQo+ IGFuZCBzaW1wbGVyIHRoYW4gdGhlIGV4dHJhIGFsbG9jYXRpb24gaW4gdGhpcyBwYXRjaCB3b3Vs ZCBiZSB0byBhbGxvY2F0ZQ0KPiBleHRyYSBzaGFkb3cgbWVtb3J5IGF0IHRoZSBlbmQgb2YgdGhl IHJpbmcgKGFuZCBub3QgbW1hcCB0aGF0KS4NCj4NCj4gVGhhdCBzdGlsbCBsZWF2ZXMgYW4gZXh0 cmEgY29sZCBjYWNoZWxpbmUgdnMgdXNpbmcgdHBfcGFkZGluZy4NCg0KR2l2ZW4gbXkgbGFjayBv ZiBleHBlcmllbmNlIGFuZCBrbm93bGVkZ2UgaW4gd3JpdGluZyBrZXJuZWwgY29kZQ0KaXQgd2Fz IGVhc2llciBmb3IgbWUgdG8gYWxsb2NhdGUgdGhlIHNoYWRvdyByaW5nIGFzIGEgc2VwYXJhdGUN CnN0cnVjdHVyZS4gIE9mIGNvdXJzZSBpdCdzIG5vdCBhYm91dCBtZSBhbmQgbXkgc2tpbGxzIHNv IGlmIGl0J3MNCm1vcmUgYXBwcm9wcmlhdGUgdG8gYWxsb2NhdGUgYXQgdGhlIHRhaWwgb2YgdGhl IGV4aXN0aW5nIHJpbmcNCnRoZW4gY2VydGFpbmx5IEkgY2FuIGxvb2sgYXQgZG9pbmcgdGhhdC4N Cg0KSSB0aGluayB0aGUgYmlnZ2VyIGlzc3VlcyBhcyB5b3UndmUgcG9pbnRlZCBvdXQgYXJlIHRo ZSBjb3N0IG9mDQp0aGUgYWRkaXRpb25hbCBzcGluIGxvY2sgYW5kIHNob3VsZCB0aGUgYWRkaXRp b25hbCBzdGF0ZSBiZQ0Kc3RvcmVkIGluLWJhbmQgKGZld2VyIGNhY2hlIGxpbmVzKSBvciBvdXQt b2YgYmFuZCAobGVzcyByaXNrIG9mDQpicmVha2luZyBkdWUgdG8gdW5wcmVkaWN0YWJsZSBhcHBs aWNhdGlvbiBiZWhhdmlvcikuDQoNCkFzIG11Y2ggYXMgSSB3b3VsZCBsaWtlIHRvIGZpbmQgYSBz b2x1dGlvbiB0aGF0IGRvZXNuJ3QgcmVxdWlyZQ0KdGhlIHNwaW4gbG9jayBJIGhhdmUgeWV0IHRv IGRvIHNvLiBNYXliZSB0aGUgYW5zd2VyIGlzIHRoYXQNCmV4aXN0aW5nIGFwcGxpY2F0aW9ucyB3 aWxsIG5lZWQgdG8gc3VmZmVyIHRoZSBwZXJmb3JtYW5jZSBpbXBhY3QNCmJ1dCBhIG5ldyB2ZXJz aW9uIG9yIG9wdGlvbiBmb3IgVFBBQ0tFVF9WMS9WMiBjb3VsZCBiZSBhZGRlZCB0bw0KaW5kaWNh dGUgc3RyaWN0IGFkaGVyZW5jZSBvZiB0aGUgVFBfU1RBVFVTX1VTRVIgYml0IGFuZCB0aGVuIHRo ZQ0Kb3JpZ2luYWwgZGlmZnMgY291bGQgYmUgdXNlZC4NCg0KVGhlcmUgaXMgYW5vdGhlciBvcHRp b24gSSB3YXMgY29uc2lkZXJpbmcgYnV0IGhhdmUgeWV0IHRvIHRyeQ0Kd2hpY2ggd291bGQgYXZv aWQgbmVlZGluZyBhIHNoYWRvdyByaW5nIGJ5IHVzaW5nIGNvdW50ZXIocykgdG8NCnRyYWNrIG1h eGltdW0gc2VxdWVuY2UgbnVtYmVyIHF1ZXVlZCB0byB1c2Vyc3BhY2UgdnMuIHRoZSBuZXh0DQpz ZXF1ZW5jZSBudW1iZXIgdG8gYmUgYWxsb2NhdGVkIGluIHRoZSByaW5nLiAgSWYgdGhlIGRpZmZl cmVuY2UNCmlzIGdyZWF0ZXIgdGhhbiB0aGUgc2l6ZSBvZiB0aGUgcmluZyB0aGVuIHRoZSByaW5n IGNhbiBiZQ0KY29uc2lkZXJlZCBmdWxsIGFuZCB0aGUgYWxsb2NhdGlvbiB3b3VsZCBmYWlsLiBP ZiBjb3Vyc2UgdGhpcyBtYXkNCmNyZWF0ZSBhbiBhZGRpdGlvbmFsIGhvdHNwb3QgYmV0d2VlbiBj b3Jlcywgbm90IHN1cmUgaWYgdGhhdA0Kd291bGQgYmUgc2lnbmlmaWNhbnQgb3Igbm90Lg0K