From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Wang Subject: Re: [PATCH net-next V3 5/6] net: introduce NETDEV_CHANGE_TX_QUEUE_LEN Date: Thu, 30 Jun 2016 13:59:47 +0800 Message-ID: <5774B553.5070701@redhat.com> References: <1467258779-3539-1-git-send-email-jasowang@redhat.com> <1467258779-3539-6-git-send-email-jasowang@redhat.com> <5774A67B.1060802@gmail.com> <5774AA46.3090604@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <5774AA46.3090604@redhat.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: John Fastabend , mst@redhat.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, davem@davemloft.net Cc: brouer@redhat.com, eric.dumazet@gmail.com, kvm@vger.kernel.org, virtualization@lists.linux-foundation.org List-Id: virtualization@lists.linuxfoundation.org CgpPbiAyMDE25bm0MDbmnIgzMOaXpSAxMzoxMiwgSmFzb24gV2FuZyB3cm90ZToKPgo+Cj4gT24g MjAxNuW5tDA25pyIMzDml6UgMTI6NTYsIEpvaG4gRmFzdGFiZW5kIHdyb3RlOgo+PiBPbiAxNi0w Ni0yOSAwODo1MiBQTSwgSmFzb24gV2FuZyB3cm90ZToKPj4+IFRoaXMgcGF0Y2ggaW50cm9kdWNl cyBhIG5ldyBldmVudCAtIE5FVERFVl9DSEFOR0VfVFhfUVVFVUVfTEVOLCB0aGlzCj4+PiB3aWxs IGJlIHRyaWdnZXJlZCB3aGVuIHR4X3F1ZXVlX2xlbi4gSXQgY291bGQgYmUgdXNlZCBieSBuZXQg ZGV2aWNlCj4+PiB3aG8gd2FudCB0byBkbyBzb21lIHByb2Nlc3NpbmcgYXQgdGhhdCB0aW1lLiBB biBleGFtcGxlIGlzIHR1biB3aG8gbWF5Cj4+PiB3YW50IHRvIHJlc2l6ZSB0eCBhcnJheSB3aGVu IHR4X3F1ZXVlX2xlbiBpcyBjaGFuZ2VkLgo+Pj4KPj4+IFNpZ25lZC1vZmYtYnk6IEphc29uIFdh bmcgPGphc293YW5nQHJlZGhhdC5jb20+Cj4+PiAtLS0KPj4+ICAgaW5jbHVkZS9saW51eC9uZXRk ZXZpY2UuaCB8ICAxICsKPj4+ICAgbmV0L2NvcmUvbmV0LXN5c2ZzLmMgICAgICB8IDE1ICsrKysr KysrKysrKysrLQo+Pj4gICAyIGZpbGVzIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkKPj4+Cj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaCBi L2luY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmgKPj4+IGluZGV4IGU4NGQ5ZDIuLjdkYzJlYzcgMTAw NjQ0Cj4+PiAtLS0gYS9pbmNsdWRlL2xpbnV4L25ldGRldmljZS5oCj4+PiArKysgYi9pbmNsdWRl L2xpbnV4L25ldGRldmljZS5oCj4+PiBAQCAtMjIzNyw2ICsyMjM3LDcgQEAgc3RydWN0IG5ldGRl dl9sYWdfbG93ZXJfc3RhdGVfaW5mbyB7Cj4+PiAgICNkZWZpbmUgTkVUREVWX1BSRUNIQU5HRVVQ UEVSICAgIDB4MDAxQQo+Pj4gICAjZGVmaW5lIE5FVERFVl9DSEFOR0VMT1dFUlNUQVRFICAgIDB4 MDAxQgo+Pj4gICAjZGVmaW5lIE5FVERFVl9VRFBfVFVOTkVMX1BVU0hfSU5GTyAgICAweDAwMUMK Pj4+ICsjZGVmaW5lIE5FVERFVl9DSEFOR0VfVFhfUVVFVUVfTEVOICAgIDB4MDAxRQo+Pj4gICAg IGludCByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpu Yik7Cj4+PiAgIGludCB1bnJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihzdHJ1Y3Qgbm90aWZp ZXJfYmxvY2sgKm5iKTsKPj4+IGRpZmYgLS1naXQgYS9uZXQvY29yZS9uZXQtc3lzZnMuYyBiL25l dC9jb3JlL25ldC1zeXNmcy5jCj4+PiBpbmRleCA3YTBiNjE2Li42ZTRmMzQ3IDEwMDY0NAo+Pj4g LS0tIGEvbmV0L2NvcmUvbmV0LXN5c2ZzLmMKPj4+ICsrKyBiL25ldC9jb3JlL25ldC1zeXNmcy5j Cj4+PiBAQCAtMzIyLDcgKzMyMiwyMCBAQCBORVRERVZJQ0VfU0hPV19SVyhmbGFncywgZm10X2hl eCk7Cj4+PiAgICAgc3RhdGljIGludCBjaGFuZ2VfdHhfcXVldWVfbGVuKHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYsIHVuc2lnbmVkIAo+Pj4gbG9uZyBuZXdfbGVuKQo+Pj4gICB7Cj4+PiAtICAgIGRl di0+dHhfcXVldWVfbGVuID0gbmV3X2xlbjsKPj4+ICsgICAgaW50IHJlcywgb3JpZ19sZW4gPSBk ZXYtPnR4X3F1ZXVlX2xlbjsKPj4+ICsKPj4+ICsgICAgaWYgKG5ld19sZW4gIT0gb3JpZ19sZW4p IHsKPj4+ICsgICAgICAgIGRldi0+dHhfcXVldWVfbGVuID0gbmV3X2xlbjsKPj4+ICsgICAgICAg IHJlcyA9IGNhbGxfbmV0ZGV2aWNlX25vdGlmaWVycyhORVRERVZfQ0hBTkdFX1RYX1FVRVVFX0xF TiwgCj4+PiBkZXYpOwo+Pj4gKyAgICAgICAgcmVzID0gbm90aWZpZXJfdG9fZXJybm8ocmVzKTsK Pj4+ICsgICAgICAgIGlmIChyZXMpIHsKPj4+ICsgICAgICAgICAgICBuZXRkZXZfZXJyKGRldiwK Pj4+ICsgICAgICAgICAgICAgICAgICAgInJlZnVzZWQgdG8gY2hhbmdlIGRldmljZSB0eF9xdWV1 ZV9sZW5cbiIpOwo+Pj4gKyAgICAgICAgICAgIGRldi0+dHhfcXVldWVfbGVuID0gb3JpZ19sZW47 Cj4+PiArICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7Cj4+PiArICAgICAgICB9Cj4+PiArICAg IH0KPj4+ICsKPj4+ICAgICAgIHJldHVybiAwOwo+Pj4gICB9Cj4+Pgo+PiBBY2tlZC1ieTogSm9o biBGYXN0YWJlbmQgPGpvaG4uci5mYXN0YWJlbmRAaW50ZWwuY29tPgo+Pgo+PiBHcmVhdCB0aW1p bmcgSSB3YXMganVzdCBsb29raW5nIGludG8gdGhpcyBiZWNhdXNlIEkgbmVlZCBpdCBmb3IgdGhl Cj4+IHFkaXNjIHNpZGUuCj4+Cj4+IEl0IGxvb2tzIGxpa2UgdGhpcyBjb3ZlcnMgdGhlIHN5c2Zz IGNoYW5nZSBidXQgdGhlIHR4X3F1ZXVlX2xlbiBjYW4KPj4gYWxzbyBiZSBjaGFuZ2VkIHZpYSBy dG5ldGxpbmsgYXMgd2VsbC4gU28gd2UgbmVlZCBhbm90aGVyIHBhdGNoIGZvcgo+PiB0aGF0IHBh dGggcmlnaHQ/Cj4+Cj4+ICAgICAgICAgIGlmICh0YltJRkxBX1RYUUxFTl0pIHsKPj4gICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBsb25nIHZhbHVlID0gbmxhX2dldF91MzIodGJbSUZMQV9UWFFM RU5dKTsKPj4KPj4gICAgICAgICAgICAgICAgICBpZiAoZGV2LT50eF9xdWV1ZV9sZW4gXiB2YWx1 ZSkKPj4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyB8PSBET19TRVRMSU5LX05PVElG WTsKPj4KPj4gICAgICAgICAgICAgICAgICBkZXYtPnR4X3F1ZXVlX2xlbiA9IHZhbHVlOwo+PiAg ICAgICAgICB9Cj4+Cj4+IFRoYW5rcywKPj4gSm9obgo+Pgo+Cj4gUmlnaHQsIHdpbGwgZG8gdGhp cyBpbiBuZXh0IHZlcnNpb24uCj4KPiBUaGFua3MKCk9rLCBzaW5jZSBNaWNoYWVsIGhhcyBhY2tl ZCBvbiB0aGUgc2VyaWVzLCB3aWxsIHByZXBhcmUgYSBwYXRjaCBvbiB0b3AuCgpUaGFua3MKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KVmlydHVhbGl6YXRp b24gbWFpbGluZyBsaXN0ClZpcnR1YWxpemF0aW9uQGxpc3RzLmxpbnV4LWZvdW5kYXRpb24ub3Jn Cmh0dHBzOi8vbGlzdHMubGludXhmb3VuZGF0aW9uLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3ZpcnR1 YWxpemF0aW9u From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751898AbcF3F7y (ORCPT ); Thu, 30 Jun 2016 01:59:54 -0400 Received: from mx1.redhat.com ([209.132.183.28]:53760 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751034AbcF3F7x (ORCPT ); Thu, 30 Jun 2016 01:59:53 -0400 Subject: Re: [PATCH net-next V3 5/6] net: introduce NETDEV_CHANGE_TX_QUEUE_LEN To: John Fastabend , mst@redhat.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, davem@davemloft.net References: <1467258779-3539-1-git-send-email-jasowang@redhat.com> <1467258779-3539-6-git-send-email-jasowang@redhat.com> <5774A67B.1060802@gmail.com> <5774AA46.3090604@redhat.com> Cc: kvm@vger.kernel.org, virtualization@lists.linux-foundation.org, eric.dumazet@gmail.com, brouer@redhat.com From: Jason Wang Message-ID: <5774B553.5070701@redhat.com> Date: Thu, 30 Jun 2016 13:59:47 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-Version: 1.0 In-Reply-To: <5774AA46.3090604@redhat.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Thu, 30 Jun 2016 05:59:52 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2016年06月30日 13:12, Jason Wang wrote: > > > On 2016年06月30日 12:56, John Fastabend wrote: >> On 16-06-29 08:52 PM, Jason Wang wrote: >>> This patch introduces a new event - NETDEV_CHANGE_TX_QUEUE_LEN, this >>> will be triggered when tx_queue_len. It could be used by net device >>> who want to do some processing at that time. An example is tun who may >>> want to resize tx array when tx_queue_len is changed. >>> >>> Signed-off-by: Jason Wang >>> --- >>> include/linux/netdevice.h | 1 + >>> net/core/net-sysfs.c | 15 ++++++++++++++- >>> 2 files changed, 15 insertions(+), 1 deletion(-) >>> >>> diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h >>> index e84d9d2..7dc2ec7 100644 >>> --- a/include/linux/netdevice.h >>> +++ b/include/linux/netdevice.h >>> @@ -2237,6 +2237,7 @@ struct netdev_lag_lower_state_info { >>> #define NETDEV_PRECHANGEUPPER 0x001A >>> #define NETDEV_CHANGELOWERSTATE 0x001B >>> #define NETDEV_UDP_TUNNEL_PUSH_INFO 0x001C >>> +#define NETDEV_CHANGE_TX_QUEUE_LEN 0x001E >>> int register_netdevice_notifier(struct notifier_block *nb); >>> int unregister_netdevice_notifier(struct notifier_block *nb); >>> diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c >>> index 7a0b616..6e4f347 100644 >>> --- a/net/core/net-sysfs.c >>> +++ b/net/core/net-sysfs.c >>> @@ -322,7 +322,20 @@ NETDEVICE_SHOW_RW(flags, fmt_hex); >>> static int change_tx_queue_len(struct net_device *dev, unsigned >>> long new_len) >>> { >>> - dev->tx_queue_len = new_len; >>> + int res, orig_len = dev->tx_queue_len; >>> + >>> + if (new_len != orig_len) { >>> + dev->tx_queue_len = new_len; >>> + res = call_netdevice_notifiers(NETDEV_CHANGE_TX_QUEUE_LEN, >>> dev); >>> + res = notifier_to_errno(res); >>> + if (res) { >>> + netdev_err(dev, >>> + "refused to change device tx_queue_len\n"); >>> + dev->tx_queue_len = orig_len; >>> + return -EFAULT; >>> + } >>> + } >>> + >>> return 0; >>> } >>> >> Acked-by: John Fastabend >> >> Great timing I was just looking into this because I need it for the >> qdisc side. >> >> It looks like this covers the sysfs change but the tx_queue_len can >> also be changed via rtnetlink as well. So we need another patch for >> that path right? >> >> if (tb[IFLA_TXQLEN]) { >> unsigned long value = nla_get_u32(tb[IFLA_TXQLEN]); >> >> if (dev->tx_queue_len ^ value) >> status |= DO_SETLINK_NOTIFY; >> >> dev->tx_queue_len = value; >> } >> >> Thanks, >> John >> > > Right, will do this in next version. > > Thanks Ok, since Michael has acked on the series, will prepare a patch on top. Thanks