Re: [PATCH v6] usb: gadget: storage: make FSG_NUM_BUFFERS variablesize

From: Alan Stern
Date: Fri Aug 19 2011 - 17:04:37 EST


On Fri, 19 Aug 2011, Per Forlin wrote:

> FSG_NUM_BUFFERS is set to 2 as default.
> Usually 2 buffers are enough to establish a good buffering pipeline.
> The number may be increased in order to compensate a for bursty VFS
> behaviour.
>
> Here follows a description of system that may require more than
> 2 buffers.
> * CPU ondemand governor active
> * latency cost for wake up and/or frequency change
> * DMA for IO
>
> Use case description.
> * Data transfer from MMC via VFS to USB.
> * DMA shuffles data from MMC and to USB.
> * The CPU wakes up every now and then to pass data in and out from VFS,
> which cause the bursty VFS behaviour.
>
> Test set up
> * Running dd on the host reading from the mass storage device
> * cmdline: dd if=/dev/sdb of=/dev/null bs=4k count=$((256*100))
> * Caches are dropped on the host and on the device before each run
>
> Measurements on a Snowball board with ondemand_governor active.
>
> FSG_NUM_BUFFERS 2
> 104857600 bytes (105 MB) copied, 5.62173 s, 18.7 MB/s
> 104857600 bytes (105 MB) copied, 5.61811 s, 18.7 MB/s
> 104857600 bytes (105 MB) copied, 5.57817 s, 18.8 MB/s
>
> FSG_NUM_BUFFERS 4
> 104857600 bytes (105 MB) copied, 5.26839 s, 19.9 MB/s
> 104857600 bytes (105 MB) copied, 5.2691 s, 19.9 MB/s
> 104857600 bytes (105 MB) copied, 5.2711 s, 19.9 MB/s
>
> There may not be one optimal number for all boards. This is why
> the number is added to Kconfig. If selecting USB_GADGET_DEBUG_FILES
> this value may be set by a module parameter as well.
>
> Signed-off-by: Per Forlin <per.forlin@xxxxxxxxxx>

Acked-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/