Re: [PATCH] usbip: Fix the error limitation on max_hw_sectors for usbip device

From: Shuah Khan
Date: Mon Mar 10 2025 - 12:53:16 EST


On 3/5/25 03:03, Zongmin Zhou wrote:
At 2025-03-05 03:45:28, "Shuah Khan" <skhan@xxxxxxxxxxxxxxxxxxx> wrote:

On 3/2/25 05:37, Zongmin Zhou wrote:
Dear shuah,


Yes, I agree with you.It would be better if there have a more simpler fixes than This patch.

I can just think of the two possible solutions that mentioned before.

>What are the two possible solutions?
1. The patch we are discussing now,have to change the API between the kernel and user-space.

2. Simply set vhci-hcd dma mask to 64 by default,just modify the vhci-hcd driver. Then dma_max_mapping_size() will always return SIZE_MAX.

I prefer option #2 - What are the downsides if any with this option?



If SWIOTLB disabled,dma_max_mapping_size() return SIZE_MAX.

Right when CONFIG_HAS_DMA, if not it returns 0. Perhaps we
>can ignore CONFIG_HAS_DMA=n for this for this discussion.
Yeah, let's ignore that.


Only if SWIOTLB is active and dma addressing limited will return the swiotlb max mapping size.


The swiotlb config seems rely on many other config options like x86_64/IOMMU_SUPPORT and so on,

and the configuration on host and client side only use the default at all,Like the default ubuntu release version.

It seems that switlb is enabled by default on most platforms.

If understand correctly the problem happens only when SWIOTLB
is enabled on client or host?

The following combinations are possible:

SWILTLB enabled on client and disabled on host - rate limited?
SWILTLB enabled on client and enabled on host - rate limited?
SWILTLB disabled on client and enabled on host - rate limited?
SWILTLB disabled on client and disabled on host - not a problem
>
This problem happens only when SWIOTLB is enabled on client,have nothing to do with host setting. Because the USB xhci controller may set dma mask to 64bit if controllers support. The combinations may like below: SWILTLB enabled on client and enabled/disabled on host - rate limited SWILTLB disabled on client and enabled/disabled on host - not a problem

Got it. So the problem happens only when SWILTLB enabled on client

thanks,
-- Shuah