From owner-freebsd-usb@freebsd.org Thu Aug 30 16:57:30 2018 Return-Path: Delivered-To: freebsd-usb@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6238610A3E39 for ; Thu, 30 Aug 2018 16:57:30 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (turbocat.net [IPv6:2a01:4f8:c17:6c4b::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 049D08A08C for ; Thu, 30 Aug 2018 16:57:29 +0000 (UTC) (envelope-from hps@selasky.org) Received: from hps2016.home.selasky.org (unknown [62.141.128.70]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id 3B8EF26039F; Thu, 30 Aug 2018 18:57:28 +0200 (CEST) Subject: Re: Is FreeBSD-current XHCI 1.1 compliant? To: Rajesh Kumar Cc: freebsd-usb@freebsd.org References: <679a5fd9-a3ee-b4a6-8a0c-6a1a7b850154@selasky.org> <7683a29a-2323-69ec-8f98-094980de62e7@selasky.org> From: Hans Petter Selasky Message-ID: Date: Thu, 30 Aug 2018 18:57:01 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:60.0) Gecko/20100101 Thunderbird/60.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Aug 2018 16:57:30 -0000 On 8/30/18 3:55 PM, Rajesh Kumar wrote: > So, does using streams mode helps in improving the storage performance with > USB? If so, what is needed to use streams mode effectively? Do we need to > consider anything else when taking USB performance numbers in FreeBSD? Hi, Streams mode might help with latency, that you can queue more transfers at the same time. Also streams mode used to be controversial, that not all hardware manufacturers supported it. USB is no replacement for a PCI hardware device or a SATA controller. The block size effectively decides the performance of your device. The USB XHCI controller has a configurable IRQ limit of 16000 IRQ/s. At this rate you can queue at most 4000-8000 SCSI jobs per second towards the USB SCSI implementation. If you use small block size, performance drops. If you use bigger block size, performance increase. In /usr/src/tools you'll find a small utility that benchmark USB storage devices, called usbtest. Beware it can brick your USB disk. --HPS