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 |
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; > > . >
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 --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;