Date: Fri, 5 Jun 2009 10:28:15 -0700 (PDT) From: Matthew Dillon <dillon@apollo.backplane.com> To: Alexander Motin <mav@mavhome.dp.ua> Cc: FreeBSD-Current <freebsd-current@freebsd.org>, freebsd-arch@freebsd.org Subject: Re: WIP: ATA to CAM integration Message-ID: <200906051728.n55HSFf0076644@apollo.backplane.com> References: <4A254B45.8050800@mavhome.dp.ua> <200906050703.n5573x5Q071765@apollo.backplane.com> <4A294DC3.5010008@mavhome.dp.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
:Latest AHCI specifications define feature named FIS Based Switching. It :allows controller independently track state of every device beyond port :multiplier. It should be quite easy to use it, but actually none of my :controllers have that capability. Damn. The FBSS capability bit is not set on my (AMD) MCP77 based AHCI SATA controller. That sucks. ahci0: <NVidia-MCP77-SATA>... ahci0: AHCI 1.2 capabilities 0xe3229f05<S64A,NCQ,SSNTF,SAL,SCLO,SPM,PMD>, 6 port Do you know of any host controllers which support FBS ? Any of the Intel parts or machines per-chance? :As I have said, without controller FIS Based Switching capability it is :impossible. FBS defines separate memory areas for controller, to track :there state of each drive behind PM. Without it, only one drive can be :active at a time, as controller will not be able to track when each :drive is able to receive next command.. Now it makes sense... the 1.0 spec only had one RFIS per port. With only one RFIS area per port it is impossible to track multiple ports behind the PM simultaniously. The 1.3 specification (along with FBSS being set) has 16 RFIS areas per port, plus BSY bits for each, thus fixing the problem. This is really annoying. It effectively serializes access to multiple disks behind a port multiplier on non-FBSS controllers. That makes non-FBSS port-multiplied disk enclosures almost worthless from a performance standpoint. -Matt Matthew Dillon <dillon@backplane.com>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200906051728.n55HSFf0076644>