[Intel-wired-lan] [PATCH net v3 3/6] igb: XDP extack message on error

Paul Menzel pmenzel at molgen.mpg.de
Wed Nov 11 10:35:44 UTC 2020


Dear Sven,


Am 11.11.20 um 11:10 schrieb Sven Auhagen:
> On Wed, Nov 11, 2020 at 08:11:46AM +0100, Paul Menzel wrote:

>> Am 19.10.20 um 10:05 schrieb sven.auhagen at voleatech.de:
>>> From: Sven Auhagen <sven.auhagen at voleatech.de>
>>>
>>> Add an extack error message when the RX buffer size is too small
>>> for the frame size.
>>>
>>> Suggested-by: Maciej Fijalkowski <maciej.fijalkowski at intel.com>
>>> Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski at intel.com>
>>> Acked-by: Maciej Fijalkowski <maciej.fijalkowski at intel.com>
>>> Signed-off-by: Sven Auhagen <sven.auhagen at voleatech.de>
>>> ---
>>>    drivers/net/ethernet/intel/igb/igb_main.c | 12 +++++++-----
>>>    1 file changed, 7 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
>>> index 0a9198037b98..088f9ddb0093 100644
>>> --- a/drivers/net/ethernet/intel/igb/igb_main.c
>>> +++ b/drivers/net/ethernet/intel/igb/igb_main.c
>>> @@ -2824,20 +2824,22 @@ static int igb_setup_tc(struct net_device *dev, enum tc_setup_type type,
>>>    	}
>>>    }
>>> -static int igb_xdp_setup(struct net_device *dev, struct bpf_prog *prog)
>>> +static int igb_xdp_setup(struct net_device *dev, struct netdev_bpf *bpf)
>>>    {
>>>    	int i, frame_size = dev->mtu + IGB_ETH_PKT_HDR_PAD;
>>>    	struct igb_adapter *adapter = netdev_priv(dev);
>>> +	struct bpf_prog *prog = bpf->prog, *old_prog;
>>>    	bool running = netif_running(dev);
>>> -	struct bpf_prog *old_prog;
>>>    	bool need_reset;
>>>    	/* verify igb ring attributes are sufficient for XDP */
>>>    	for (i = 0; i < adapter->num_rx_queues; i++) {
>>>    		struct igb_ring *ring = adapter->rx_ring[i];
>>> -		if (frame_size > igb_rx_bufsz(ring))
>>> +		if (frame_size > igb_rx_bufsz(ring)) {
>>> +			NL_SET_ERR_MSG_MOD(bpf->extack, "The RX buffer size is too small for the frame size");

> just to verify, NL_SET_ERR_MSG_MOD does not take any variable arguments
> for the text to print.

Ah, Jesper remarked that too. Can the macro be extended?

> What seems to be the common practice is to add a second log line
> with netdev_warn to print out the sizes.
> 
> Is that what you are looking for?

Yes, though it sounds to cumbersome. So, yes, that’d be great for me, 
but up to you, if you think it’s useful.


Kind regards,

Paul


>> Could you please also add both size values to the error message?
>>
>>>    			return -EINVAL;
>>> +		}
>>>    	}
>>>    	old_prog = xchg(&adapter->xdp_prog, prog);
>>> @@ -2869,7 +2871,7 @@ static int igb_xdp(struct net_device *dev, struct netdev_bpf *xdp)
>>>    {
>>>    	switch (xdp->command) {
>>>    	case XDP_SETUP_PROG:
>>> -		return igb_xdp_setup(dev, xdp->prog);
>>> +		return igb_xdp_setup(dev, xdp);
>>>    	default:
>>>    		return -EINVAL;
>>>    	}
>>> @@ -6499,7 +6501,7 @@ static int igb_change_mtu(struct net_device *netdev, int new_mtu)
>>>    			struct igb_ring *ring = adapter->rx_ring[i];
>>>    			if (max_frame > igb_rx_bufsz(ring)) {
>>> -				netdev_warn(adapter->netdev, "Requested MTU size is not supported with XDP\n");
>>> +				netdev_warn(adapter->netdev, "Requested MTU size is not supported with XDP. Max frame size is %d\n", max_frame);
>>>    				return -EINVAL;
>>>    			}
>>>    		}
>>>
>>
>>
>> Kind regards,
>>
>> Paul
>>
>>
>> PS: For commit message summaries, statements with verbs in imperative mood
>> are quite common [1].
>>
>>> igb: Print XDP extack error on too big frame size
>>
>>
>> [1]: https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchris.beams.io%2Fposts%2Fgit-commit%2F&data=04%7C01%7Csven.auhagen%40voleatech.de%7Cc2916e4caf384512cdf808d886110df9%7Cb82a99f679814a7295344d35298f847b%7C0%7C0%7C637406755112287943%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=wBvX6q4trM7FQLp5Nxccqrbo%2ForvF5KG1YG7TRc7cKQ%3D&reserved=0


More information about the Intel-wired-lan mailing list