Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1282454 > unrolled thread

Re: [net-next v4 4/8] dpaa_eth: add driver's Tx queue selection

Started byScott Wood <scottwood@freescale.com>
First post2015-12-02 23:00 +0100
Last post2015-12-03 11:10 +0100
Articles 2 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [net-next v4 4/8] dpaa_eth: add driver's Tx queue selection Scott Wood <scottwood@freescale.com> - 2015-12-02 23:00 +0100
    RE: [net-next v4 4/8] dpaa_eth: add driver's Tx queue selection Madalin-Cristian Bucur <madalin.bucur@freescale.com> - 2015-12-03 11:10 +0100

#1282454 — Re: [net-next v4 4/8] dpaa_eth: add driver's Tx queue selection

FromScott Wood <scottwood@freescale.com>
Date2015-12-02 23:00 +0100
SubjectRe: [net-next v4 4/8] dpaa_eth: add driver's Tx queue selection
Message-ID<qBnBp-4pb-17@gated-at.bofh.it>
On Mon, 2015-11-02 at 19:31 +0200, Madalin Bucur wrote:
> Allow the selection of the transmission queue based on the CPU id.

Explain why.

> 
> Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com>
> ---
>  drivers/net/ethernet/freescale/dpaa/Kconfig           | 10 ++++++++++
>  drivers/net/ethernet/freescale/dpaa/dpaa_eth.c        |  3 +++
>  drivers/net/ethernet/freescale/dpaa/dpaa_eth.h        |  6 ++++++
>  drivers/net/ethernet/freescale/dpaa/dpaa_eth_common.c |  8 ++++++++
>  drivers/net/ethernet/freescale/dpaa/dpaa_eth_common.h |  4 ++++
>  5 files changed, 31 insertions(+)
> 
> diff --git a/drivers/net/ethernet/freescale/dpaa/Kconfig
> b/drivers/net/ethernet/freescale/dpaa/Kconfig
> index 022d5aa..2577aac 100644
> --- a/drivers/net/ethernet/freescale/dpaa/Kconfig
> +++ b/drivers/net/ethernet/freescale/dpaa/Kconfig
> @@ -11,6 +11,16 @@ menuconfig FSL_DPAA_ETH
>  
>  if FSL_DPAA_ETH
>  
> +config FSL_DPAA_ETH_USE_NDO_SELECT_QUEUE
> +	bool "Use driver's Tx queue selection mechanism"
> +	default y
> +	---help---
> +	  The DPAA Ethernet driver defines a ndo_select_queue() callback
> for optimal selection
> +	  of the egress FQ. That will override the XPS support for this
> netdevice.
> +	  If for whatever reason you want to be in control of the egress FQ
> -to-CPU selection and mapping,
> +	  or simply don't want to use the driver's ndo_select_queue()
> callback, then unselect this
> +	  and use the standard XPS support instead.

Is there a use case for needing this to be configurable?

> diff --git a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
> b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
> index 31d55b4..894f1a7 100644
> --- a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
> +++ b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
> @@ -390,6 +390,9 @@ static const struct net_device_ops dpa_private_ops = {
>  	.ndo_get_stats64 = dpa_get_stats64,
>  	.ndo_set_mac_address = dpa_set_mac_address,
>  	.ndo_validate_addr = eth_validate_addr,
> +#ifdef CONFIG_FSL_DPAA_ETH_USE_NDO_SELECT_QUEUE
> +	.ndo_select_queue = dpa_select_queue,
> +#endif
>  	.ndo_change_mtu = dpa_change_mtu,
>  	.ndo_set_rx_mode = dpa_set_rx_mode,
>  	.ndo_init = dpa_ndo_init,
> diff --git a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.h
> b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.h
> index 1ba6617..87577cf 100644
> --- a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.h
> +++ b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.h
> @@ -420,9 +420,15 @@ static inline void _dpa_assign_wq(struct dpa_fq *fq)
>  	}
>  }
>  
> +#ifdef CONFIG_FSL_DPAA_ETH_USE_NDO_SELECT_QUEUE
> +/* Use in lieu of skb_get_queue_mapping() */
> +#define dpa_get_queue_mapping(skb) \
> +	raw_smp_processor_id()
> +#else
>  /* Use the queue selected by XPS */
>  #define dpa_get_queue_mapping(skb) \
>  	skb_get_queue_mapping(skb)
> +#endif

Why is this necessary?  Shouldn't providing a custom .ndo_select_queue() be
sufficient to ensure that skb_get_queue_mapping() returns the same thing?

And if this goes away, it's just a matter of a function pointer, so if it does
need to be configurable it could be a runtime option.

-Scott

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1282897

FromMadalin-Cristian Bucur <madalin.bucur@freescale.com>
Date2015-12-03 11:10 +0100
Message-ID<qByZQ-3zg-27@gated-at.bofh.it>
In reply to#1282454
PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBXb29kIFNjb3R0LUIwNzQyMQ0K
PiBTZW50OiBXZWRuZXNkYXksIERlY2VtYmVyIDAyLCAyMDE1IDExOjQxIFBNDQo+IA0KPiBPbiBN
b24sIDIwMTUtMTEtMDIgYXQgMTk6MzEgKzAyMDAsIE1hZGFsaW4gQnVjdXIgd3JvdGU6DQo+ID4g
QWxsb3cgdGhlIHNlbGVjdGlvbiBvZiB0aGUgdHJhbnNtaXNzaW9uIHF1ZXVlIGJhc2VkIG9uIHRo
ZSBDUFUgaWQuDQo+IA0KPiBFeHBsYWluIHdoeS4NCg0KSSdsbCBhZGQgbW9yZSBkZXRhaWxzIGlu
IHRoZSBjb21taXQgbG9nLiBUaGlzIGlzIGEgY3VzdG9tZXIgZ2VuZXJhdGVkDQpmZWF0dXJlLiBC
eXBhc3NpbmcgdGhlIHN0YW5kYXJkIFhQUyBjYW4gaW5jcmVhc2UgcGVyZm9ybWFuY2UgYnkgbWFr
aW5nIHVzZQ0Kb2YgdGhlIERQQUEgSFcgcGFydGljdWxhcml0aWVzLg0KDQo+ID4NCj4gPiBTaWdu
ZWQtb2ZmLWJ5OiBNYWRhbGluIEJ1Y3VyIDxtYWRhbGluLmJ1Y3VyQGZyZWVzY2FsZS5jb20+DQo+
ID4gLS0tDQo+ID4gIGRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL0tjb25maWcg
ICAgICAgICAgIHwgMTAgKysrKysrKysrKw0KPiA+ICBkcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVl
c2NhbGUvZHBhYS9kcGFhX2V0aC5jICAgICAgICB8ICAzICsrKw0KPiA+ICBkcml2ZXJzL25ldC9l
dGhlcm5ldC9mcmVlc2NhbGUvZHBhYS9kcGFhX2V0aC5oICAgICAgICB8ICA2ICsrKysrKw0KPiA+
ICBkcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYS9kcGFhX2V0aF9jb21tb24uYyB8
ICA4ICsrKysrKysrDQo+ID4gIGRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL2Rw
YWFfZXRoX2NvbW1vbi5oIHwgIDQgKysrKw0KPiA+ICA1IGZpbGVzIGNoYW5nZWQsIDMxIGluc2Vy
dGlvbnMoKykNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVl
c2NhbGUvZHBhYS9LY29uZmlnDQo+ID4gYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUv
ZHBhYS9LY29uZmlnDQo+ID4gaW5kZXggMDIyZDVhYS4uMjU3N2FhYyAxMDA2NDQNCj4gPiAtLS0g
YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYS9LY29uZmlnDQo+ID4gKysrIGIv
ZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEvS2NvbmZpZw0KPiA+IEBAIC0xMSw2
ICsxMSwxNiBAQCBtZW51Y29uZmlnIEZTTF9EUEFBX0VUSA0KPiA+DQo+ID4gIGlmIEZTTF9EUEFB
X0VUSA0KPiA+DQo+ID4gK2NvbmZpZyBGU0xfRFBBQV9FVEhfVVNFX05ET19TRUxFQ1RfUVVFVUUN
Cj4gPiArCWJvb2wgIlVzZSBkcml2ZXIncyBUeCBxdWV1ZSBzZWxlY3Rpb24gbWVjaGFuaXNtIg0K
PiA+ICsJZGVmYXVsdCB5DQo+ID4gKwktLS1oZWxwLS0tDQo+ID4gKwkgIFRoZSBEUEFBIEV0aGVy
bmV0IGRyaXZlciBkZWZpbmVzIGEgbmRvX3NlbGVjdF9xdWV1ZSgpIGNhbGxiYWNrDQo+ID4gZm9y
IG9wdGltYWwgc2VsZWN0aW9uDQo+ID4gKwkgIG9mIHRoZSBlZ3Jlc3MgRlEuIFRoYXQgd2lsbCBv
dmVycmlkZSB0aGUgWFBTIHN1cHBvcnQgZm9yIHRoaXMNCj4gPiBuZXRkZXZpY2UuDQo+ID4gKwkg
IElmIGZvciB3aGF0ZXZlciByZWFzb24geW91IHdhbnQgdG8gYmUgaW4gY29udHJvbCBvZiB0aGUg
ZWdyZXNzIEZRDQo+ID4gLXRvLUNQVSBzZWxlY3Rpb24gYW5kIG1hcHBpbmcsDQo+ID4gKwkgIG9y
IHNpbXBseSBkb24ndCB3YW50IHRvIHVzZSB0aGUgZHJpdmVyJ3MgbmRvX3NlbGVjdF9xdWV1ZSgp
DQo+ID4gY2FsbGJhY2ssIHRoZW4gdW5zZWxlY3QgdGhpcw0KPiA+ICsJICBhbmQgdXNlIHRoZSBz
dGFuZGFyZCBYUFMgc3VwcG9ydCBpbnN0ZWFkLg0KPiANCj4gSXMgdGhlcmUgYSB1c2UgY2FzZSBm
b3IgbmVlZGluZyB0aGlzIHRvIGJlIGNvbmZpZ3VyYWJsZT8NCg0KSWYgdGhlIHN0YW5kYXJkIFhQ
UyBpcyBkZXNpcmVkLCB0aGUgS2NvbmZpZyBvcHRpb24gYWxsb3dzIHRoZSBkcml2ZXIgdXNlciB0
bw0Kc2VsZWN0IHRoYXQuDQoNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv
ZnJlZXNjYWxlL2RwYWEvZHBhYV9ldGguYw0KPiA+IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJl
ZXNjYWxlL2RwYWEvZHBhYV9ldGguYw0KPiA+IGluZGV4IDMxZDU1YjQuLjg5NGYxYTcgMTAwNjQ0
DQo+ID4gLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEvZHBhYV9ldGgu
Yw0KPiA+ICsrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL2RwYWFfZXRo
LmMNCj4gPiBAQCAtMzkwLDYgKzM5MCw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2Rldmlj
ZV9vcHMgZHBhX3ByaXZhdGVfb3BzID0NCj4gew0KPiA+ICAJLm5kb19nZXRfc3RhdHM2NCA9IGRw
YV9nZXRfc3RhdHM2NCwNCj4gPiAgCS5uZG9fc2V0X21hY19hZGRyZXNzID0gZHBhX3NldF9tYWNf
YWRkcmVzcywNCj4gPiAgCS5uZG9fdmFsaWRhdGVfYWRkciA9IGV0aF92YWxpZGF0ZV9hZGRyLA0K
PiA+ICsjaWZkZWYgQ09ORklHX0ZTTF9EUEFBX0VUSF9VU0VfTkRPX1NFTEVDVF9RVUVVRQ0KPiA+
ICsJLm5kb19zZWxlY3RfcXVldWUgPSBkcGFfc2VsZWN0X3F1ZXVlLA0KPiA+ICsjZW5kaWYNCj4g
PiAgCS5uZG9fY2hhbmdlX210dSA9IGRwYV9jaGFuZ2VfbXR1LA0KPiA+ICAJLm5kb19zZXRfcnhf
bW9kZSA9IGRwYV9zZXRfcnhfbW9kZSwNCj4gPiAgCS5uZG9faW5pdCA9IGRwYV9uZG9faW5pdCwN
Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEvZHBh
YV9ldGguaA0KPiA+IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEvZHBhYV9l
dGguaA0KPiA+IGluZGV4IDFiYTY2MTcuLjg3NTc3Y2YgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVy
cy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEvZHBhYV9ldGguaA0KPiA+ICsrKyBiL2RyaXZl
cnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL2RwYWFfZXRoLmgNCj4gPiBAQCAtNDIwLDkg
KzQyMCwxNSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgX2RwYV9hc3NpZ25fd3Eoc3RydWN0IGRwYV9m
cQ0KPiAqZnEpDQo+ID4gIAl9DQo+ID4gIH0NCj4gPg0KPiA+ICsjaWZkZWYgQ09ORklHX0ZTTF9E
UEFBX0VUSF9VU0VfTkRPX1NFTEVDVF9RVUVVRQ0KPiA+ICsvKiBVc2UgaW4gbGlldSBvZiBza2Jf
Z2V0X3F1ZXVlX21hcHBpbmcoKSAqLw0KPiA+ICsjZGVmaW5lIGRwYV9nZXRfcXVldWVfbWFwcGlu
Zyhza2IpIFwNCj4gPiArCXJhd19zbXBfcHJvY2Vzc29yX2lkKCkNCj4gPiArI2Vsc2UNCj4gPiAg
LyogVXNlIHRoZSBxdWV1ZSBzZWxlY3RlZCBieSBYUFMgKi8NCj4gPiAgI2RlZmluZSBkcGFfZ2V0
X3F1ZXVlX21hcHBpbmcoc2tiKSBcDQo+ID4gIAlza2JfZ2V0X3F1ZXVlX21hcHBpbmcoc2tiKQ0K
PiA+ICsjZW5kaWYNCj4gDQo+IFdoeSBpcyB0aGlzIG5lY2Vzc2FyeT8gIFNob3VsZG4ndCBwcm92
aWRpbmcgYSBjdXN0b20gLm5kb19zZWxlY3RfcXVldWUoKQ0KPiBiZQ0KPiBzdWZmaWNpZW50IHRv
IGVuc3VyZSB0aGF0IHNrYl9nZXRfcXVldWVfbWFwcGluZygpIHJldHVybnMgdGhlIHNhbWUgdGhp
bmc/DQoNCmRwYV9nZXRfcXVldWVfbWFwcGluZygpIGlzIHVzZWQgaW4gbW9yZSB0aGFuIG9uZSBw
bGFjZSwgdGhlIG5kbyBmdW5jdGlvbiBjYW5ub3QNCmJlIHVzZWQgZGlyZWN0bHkgaW4gYWxsIHBs
YWNlcywgdGhlIGN1cnJlbnQgc2V0dXAgaXMganVzdGlmaWVkLg0KDQo+IEFuZCBpZiB0aGlzIGdv
ZXMgYXdheSwgaXQncyBqdXN0IGEgbWF0dGVyIG9mIGEgZnVuY3Rpb24gcG9pbnRlciwgc28gaWYg
aXQNCj4gZG9lcw0KPiBuZWVkIHRvIGJlIGNvbmZpZ3VyYWJsZSBpdCBjb3VsZCBiZSBhIHJ1bnRp
bWUgb3B0aW9uLg0KPiANCj4gLVNjb3R0DQoNCkl0J3MgdXNlZCBvbiB0aGUgaG90IHBhdGgsIGFk
ZGluZyBhbiBleHRyYSBpbmRpcmVjdGlvbiBsYXllciB0byBtYWtlIGl0IHNlbGVjdGFibGUNCmF0
IHJ1bnRpbWUgd291bGQgZGVmZWF0IHRoZSBwdXJwb3NlLi4uDQoNCk1hZGFsaW4NCg==
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web