diff mbox series

[net-next,1/5] ethtool: add support to set/get tx spare buf size

Message ID 1629873655-51539-2-git-send-email-huangguangbin2@huawei.com
State New
Headers show
Series [net-next,1/5] ethtool: add support to set/get tx spare buf size | expand

Commit Message

huangguangbin (A) Aug. 25, 2021, 6:40 a.m. UTC
From: Hao Chen <chenhao288@hisilicon.com>

Add support for ethtool to set/get tx spare buf size.

Signed-off-by: Hao Chen <chenhao288@hisilicon.com>
Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
---
 include/uapi/linux/ethtool.h | 1 +
 net/ethtool/ioctl.c          | 1 +
 2 files changed, 2 insertions(+)

Comments

huangguangbin (A) Aug. 26, 2021, 6:55 a.m. UTC | #1
On 2021/8/25 22:56, Jakub Kicinski wrote:
> On Wed, 25 Aug 2021 14:40:51 +0800 Guangbin Huang wrote:

>> From: Hao Chen <chenhao288@hisilicon.com>

>>

>> Add support for ethtool to set/get tx spare buf size.

>>

>> Signed-off-by: Hao Chen <chenhao288@hisilicon.com>

>> Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>

>> ---

>>   include/uapi/linux/ethtool.h | 1 +

>>   net/ethtool/ioctl.c          | 1 +

>>   2 files changed, 2 insertions(+)

>>

>> diff --git a/include/uapi/linux/ethtool.h b/include/uapi/linux/ethtool.h

>> index b6db6590baf0..266e95e4fb33 100644

>> --- a/include/uapi/linux/ethtool.h

>> +++ b/include/uapi/linux/ethtool.h

>> @@ -231,6 +231,7 @@ enum tunable_id {

>>   	ETHTOOL_RX_COPYBREAK,

>>   	ETHTOOL_TX_COPYBREAK,

>>   	ETHTOOL_PFC_PREVENTION_TOUT, /* timeout in msecs */

>> +	ETHTOOL_TX_COPYBREAK_BUF_SIZE,

> 

> We need good documentation for the new tunable.

Ok.

> 

>>   	/*

>>   	 * Add your fresh new tunable attribute above and remember to update

>>   	 * tunable_strings[] in net/ethtool/common.c

>> diff --git a/net/ethtool/ioctl.c b/net/ethtool/ioctl.c

>> index f2abc3152888..9fc801298fde 100644

>> --- a/net/ethtool/ioctl.c

>> +++ b/net/ethtool/ioctl.c

>> @@ -2377,6 +2377,7 @@ static int ethtool_tunable_valid(const struct ethtool_tunable *tuna)

>>   	switch (tuna->id) {

>>   	case ETHTOOL_RX_COPYBREAK:

>>   	case ETHTOOL_TX_COPYBREAK:

>> +	case ETHTOOL_TX_COPYBREAK_BUF_SIZE:

>>   		if (tuna->len != sizeof(u32) ||

>>   		    tuna->type_id != ETHTOOL_TUNABLE_U32)

>>   			return -EINVAL;

> 

> .

>
Michal Kubecek Aug. 26, 2021, 7:26 a.m. UTC | #2
On Wed, Aug 25, 2021 at 02:40:51PM +0800, Guangbin Huang wrote:
> From: Hao Chen <chenhao288@hisilicon.com>

> 

> Add support for ethtool to set/get tx spare buf size.

> 

> Signed-off-by: Hao Chen <chenhao288@hisilicon.com>

> Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>

> ---

>  include/uapi/linux/ethtool.h | 1 +

>  net/ethtool/ioctl.c          | 1 +

>  2 files changed, 2 insertions(+)

> 

> diff --git a/include/uapi/linux/ethtool.h b/include/uapi/linux/ethtool.h

> index b6db6590baf0..266e95e4fb33 100644

> --- a/include/uapi/linux/ethtool.h

> +++ b/include/uapi/linux/ethtool.h

> @@ -231,6 +231,7 @@ enum tunable_id {

>  	ETHTOOL_RX_COPYBREAK,

>  	ETHTOOL_TX_COPYBREAK,

>  	ETHTOOL_PFC_PREVENTION_TOUT, /* timeout in msecs */

> +	ETHTOOL_TX_COPYBREAK_BUF_SIZE,

>  	/*

>  	 * Add your fresh new tunable attribute above and remember to update

>  	 * tunable_strings[] in net/ethtool/common.c

> diff --git a/net/ethtool/ioctl.c b/net/ethtool/ioctl.c

> index f2abc3152888..9fc801298fde 100644

> --- a/net/ethtool/ioctl.c

> +++ b/net/ethtool/ioctl.c

> @@ -2377,6 +2377,7 @@ static int ethtool_tunable_valid(const struct ethtool_tunable *tuna)

>  	switch (tuna->id) {

>  	case ETHTOOL_RX_COPYBREAK:

>  	case ETHTOOL_TX_COPYBREAK:

> +	case ETHTOOL_TX_COPYBREAK_BUF_SIZE:

>  		if (tuna->len != sizeof(u32) ||

>  		    tuna->type_id != ETHTOOL_TUNABLE_U32)

>  			return -EINVAL;

> -- 

> 2.8.1

> 


IMHO this illustrates quite well what I had in mind some time ago when
I expressed my doubts if the concept of tunables in this form still
makes sense as the main benefit - workaround for lack of extensibility
of the ioctl interface - is gone. With this patch, 3 out of 4 tunables
are related to copybreak and it would IMHO make sense to group them
together as attributes of a new message and ethtool subcommand.
Configuration of header split could also belong there when/if
implemented.

Michal
diff mbox series

Patch

diff --git a/include/uapi/linux/ethtool.h b/include/uapi/linux/ethtool.h
index b6db6590baf0..266e95e4fb33 100644
--- a/include/uapi/linux/ethtool.h
+++ b/include/uapi/linux/ethtool.h
@@ -231,6 +231,7 @@  enum tunable_id {
 	ETHTOOL_RX_COPYBREAK,
 	ETHTOOL_TX_COPYBREAK,
 	ETHTOOL_PFC_PREVENTION_TOUT, /* timeout in msecs */
+	ETHTOOL_TX_COPYBREAK_BUF_SIZE,
 	/*
 	 * Add your fresh new tunable attribute above and remember to update
 	 * tunable_strings[] in net/ethtool/common.c
diff --git a/net/ethtool/ioctl.c b/net/ethtool/ioctl.c
index f2abc3152888..9fc801298fde 100644
--- a/net/ethtool/ioctl.c
+++ b/net/ethtool/ioctl.c
@@ -2377,6 +2377,7 @@  static int ethtool_tunable_valid(const struct ethtool_tunable *tuna)
 	switch (tuna->id) {
 	case ETHTOOL_RX_COPYBREAK:
 	case ETHTOOL_TX_COPYBREAK:
+	case ETHTOOL_TX_COPYBREAK_BUF_SIZE:
 		if (tuna->len != sizeof(u32) ||
 		    tuna->type_id != ETHTOOL_TUNABLE_U32)
 			return -EINVAL;