From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Keller, Jacob E" Subject: Re: [PATCH net] ixgbe: napi_poll must return the work done Date: Thu, 16 Jun 2016 17:10:06 +0000 Message-ID: <1466097006.17117.7.camel@intel.com> References: <37ccedd746ed932b9d73eff592f324f2a3fc6c6f.1465995724.git.pabeni@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: "hannes@redhat.com" , "netdev@vger.kernel.org" , "Kirsher, Jeffrey T" , "intel-wired-lan@lists.osuosl.org" , "davem@davemloft.net" To: "venkateshs@google.com" , "pabeni@redhat.com" Return-path: Received: from mga02.intel.com ([134.134.136.20]:57005 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754771AbcFPRLf (ORCPT ); Thu, 16 Jun 2016 13:11:35 -0400 In-Reply-To: Content-Language: en-US Content-ID: <5556763A07235548B75F17B081956A71@intel.com> Sender: netdev-owner@vger.kernel.org List-ID: T24gV2VkLCAyMDE2LTA2LTE1IGF0IDA5OjM0IC0wNzAwLCBWZW5rYXRlc2ggU3Jpbml2YXMgd3Jv dGU6DQo+IE9uIFdlZCwgSnVuIDE1LCAyMDE2IGF0IDY6MzcgQU0sIFBhb2xvIEFiZW5pIDxwYWJl bmlAcmVkaGF0LmNvbT4NCj4gd3JvdGU6DQo+ID4gDQo+ID4gQ3VycmVudGx5IHRoZSBmdW5jdGlv biBpeGdiZV9wb2xsKCkgcmV0dXJucyAwIHdoZW4gaXQgY2xlYW4NCj4gPiBjb21wbGV0ZWx5DQo+ ID4gdGhlIHJ4IHJpbmdzLCBidXQgdGhpcyBmb3VsIGJ1ZGdldCBhY2NvdW50aW5nIGluIGNvcmUg Y29kZS4NCj4gPiBGaXggdGhpcyByZXR1cm5pbmcgdGhlIGFjdHVhbCB3b3JrIGRvbmUsIGNhcHBl ZCB0byB3ZWlnaHQgLSAxLA0KPiA+IHNpbmNlDQo+ID4gdGhlIGNvcmUgZG9lc24ndCBhbGxvdyB0 byByZXR1cm4gdGhlIGZ1bGwgYnVkZ2V0IHdoZW4gdGhlIGRyaXZlcg0KPiA+IG1vZGlmaWVzDQo+ ID4gdGhlIG5hcGkgc3RhdHVzDQo+ID4gDQo+ID4gU2lnbmVkLW9mZi1ieTogUGFvbG8gQWJlbmkg PHBhYmVuaUByZWRoYXQuY29tPg0KPiA+IC0tLQ0KPiA+IMKgZHJpdmVycy9uZXQvZXRoZXJuZXQv aW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jIHwgMiArLQ0KPiA+IMKgMSBmaWxlIGNoYW5nZWQsIDEg aW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pDQo+ID4gDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYw0KPiA+IGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jDQo+ID4gaW5kZXggMDg4YzQ3Yy4u OGJlYmQ4NiAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdi ZS9peGdiZV9tYWluLmMNCj4gPiArKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdi ZS9peGdiZV9tYWluLmMNCj4gPiBAQCAtMjg4Nyw3ICsyODg3LDcgQEAgaW50IGl4Z2JlX3BvbGwo c3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQNCj4gPiBidWRnZXQpDQo+ID4gwqDCoMKgwqDC oMKgwqDCoGlmICghdGVzdF9iaXQoX19JWEdCRV9ET1dOLCAmYWRhcHRlci0+c3RhdGUpKQ0KPiA+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaXhnYmVfaXJxX2VuYWJsZV9xdWV1ZXMo YWRhcHRlciwgQklUX1VMTChxX3ZlY3Rvci0NCj4gPiA+dl9pZHgpKTsNCj4gPiANCj4gPiAtwqDC oMKgwqDCoMKgwqByZXR1cm4gMDsNCj4gPiArwqDCoMKgwqDCoMKgwqByZXR1cm4gbWluKHdvcmtf ZG9uZSwgYnVkZ2V0IC0gMSk7DQo+ID4gwqB9DQo+ID4gDQo+ID4gwqAvKioNCj4gUmV2aWV3ZWQt Ynk6IFZlbmthdGVzaCBTcmluaXZhcyA8dmVua2F0ZXNoc0Bnb29nbGUuY29tPg0KPiANCj4gVGhl IHNhbWUgYml0IG9mIGNvZGUgYXBwZWFycyBpbiBmbTEwayBhbmQgaTQwZS9pNDBldmYuIGl4Z2Ig YXBwZWFycw0KPiB0bw0KPiBjb3JyZWN0bHkgcmV0dXJuIHdvcmtfZG9uZS4NCj4gDQo+IGl4Z2Jl X3BvbGwgYWxzbyBhcHBlYXJzIHRvIHJldHVybiBhbiAobWlub3IpIGluY29ycmVjdCB3b3JrX2Rv bmUgaW4NCj4gYW5vdGhlciBjYXNlLCBCVFcuIEl0IGRpdmlkZXMgaXRzDQo+IGJ1ZGdldCBiZXR3 ZWVuIFJ4IHJpbmdzIGFzc29jaWF0ZWQgd2l0aCBhIHZlY3Rvci4gSWYgYW55IHJpbmcgZXhjZWVk cw0KPiBpdHMgc2hhcmUgb2YgdGhlIGJ1ZGdldCwgaXhnYmVfcG9sbA0KPiBjbGFpbXMgdG8gaGF2 ZSBjb25zdW1lZCB0aGUgZnVsbCBidWRnZXQsIGV2ZW4gaWYgYSBmdWxsIGJ1ZGdldCBvZg0KPiBm cmFtZXMgd2FzIG5vdCByZWNlaXZlZCBpbiBhIHNpbmdsZQ0KPiBwYXNzLg0KPiANCj4gLS0gdnM7 DQoNCkkgY2FuIHN1Ym1pdCBhIHBhdGNoIGZvciBmbTEway4NCg0KVGhhbmtzLA0KSmFrZQ== From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keller, Jacob E Date: Thu, 16 Jun 2016 17:10:06 +0000 Subject: [Intel-wired-lan] [PATCH net] ixgbe: napi_poll must return the work done In-Reply-To: References: <37ccedd746ed932b9d73eff592f324f2a3fc6c6f.1465995724.git.pabeni@redhat.com> Message-ID: <1466097006.17117.7.camel@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: intel-wired-lan@osuosl.org List-ID: On Wed, 2016-06-15 at 09:34 -0700, Venkatesh Srinivas wrote: > On Wed, Jun 15, 2016 at 6:37 AM, Paolo Abeni > wrote: > > > > Currently the function ixgbe_poll() returns 0 when it clean > > completely > > the rx rings, but this foul budget accounting in core code. > > Fix this returning the actual work done, capped to weight - 1, > > since > > the core doesn't allow to return the full budget when the driver > > modifies > > the napi status > > > > Signed-off-by: Paolo Abeni > > --- > > ?drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 2 +- > > ?1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c > > b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c > > index 088c47c..8bebd86 100644 > > --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c > > +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c > > @@ -2887,7 +2887,7 @@ int ixgbe_poll(struct napi_struct *napi, int > > budget) > > ????????if (!test_bit(__IXGBE_DOWN, &adapter->state)) > > ????????????????ixgbe_irq_enable_queues(adapter, BIT_ULL(q_vector- > > >v_idx)); > > > > -???????return 0; > > +???????return min(work_done, budget - 1); > > ?} > > > > ?/** > Reviewed-by: Venkatesh Srinivas > > The same bit of code appears in fm10k and i40e/i40evf. ixgb appears > to > correctly return work_done. > > ixgbe_poll also appears to return an (minor) incorrect work_done in > another case, BTW. It divides its > budget between Rx rings associated with a vector. If any ring exceeds > its share of the budget, ixgbe_poll > claims to have consumed the full budget, even if a full budget of > frames was not received in a single > pass. > > -- vs; I can submit a patch for fm10k. Thanks, Jake