Re: [PATCH 1/3 (RESENT)] net: usb: ax88179_178a: Enable FLAG_MULTI_PACKET to improve tx stability

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Oct 16, 2022 at 07:36:25PM +0800, Chun-Chao Yen wrote:
> Problem Description:
> The current way of handling the boundary case in tx, i.e. adding one-byte
> padding when the size of an outbound packet is a multiple of the maximum
> frame size used for USB bulk transfer, does not work with the hardware.
> This can be shown by running a loading test via iperf with this hardware as
> the sender; one can then tune the iperf parameters on the sender side (e.g.
> "-M 510" in my testing environment) so that sent packets frequently hit the
> boundary condition, and observe a significant drop in the transmission
> rate. In the worst case (often after a long run), the hardware can stop
> functioning (can not send or receive packets anymore, albeit the
> corresponding network interface is still reported present by ifconfig).
> 
> It is also believed that this problem is highly relevant to this bug [1].
> 
> Solution:
> Enable FLAG_MULTI_PACKET and modify both ax88179_rx_fixup() and
> ax88179_tx_fixup() accordingly.
> 
> Rationale:
> When FLAG_MULTI_PACKET is enabled (and FLAG_SEND_ZLP is off, which is the
> case for this driver), usbnet will skip padding, and trust that each
> sk_buff returned from the mini-driver's tx_fixup function has been taken
> care of to cater for the requirement of its target hardware. That
> mechanism allows this mini-driver to send, even when the boundary condition
> is detected, "untampered" packets (no padding, no extra flags, as if in the
> normal case) that the hardware accepts, and therefore resolves this
> problem.
> 
> Note that rather than being viewed as a workaround, enabling
> FLAG_MULTI_PACKET is intended to better match the overall behaviour of the
> hardware, as it also echos well the rx procedure conducting multiple-packet
> extraction from a single sk_buff in ax88179_rx_fixup().
> 
> Verification:
> Only tested with this device:
> 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
> 
> References:
> [1] https://bugzilla.kernel.org/show_bug.cgi?id=212731
> 
> Signed-off-by: Chun-Chao Yen <nothingstopsme@xxxxxxxxxxx>
> ---
>  drivers/net/usb/ax88179_178a.c | 62 ++++++++++++++--------------------
>  1 file changed, 26 insertions(+), 36 deletions(-)

Why is this a RESEND?

Always put below the --- what is happening, what is different from the
first version you sent?

And why is this not threaded with the 2/3 and 3/3 patches?

thanks,

greg k-h



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux