Date: Wed, 18 Sep 2013 07:49:56 -0700 From: Ravi Pokala <rp_freebsd@mac.com> To: "freebsd-hardware@freebsd.org" <freebsd-hardware@freebsd.org> Subject: Re: What's the state of AF-4Kn support? Message-ID: <CE5F0282.F39EF%rpokala@mac.com> In-Reply-To: <CAHNYxxMZC7cw7TNBJMZewe3ABAS0S6Xaz%2BuDh2E_YbfP0fa2Pg@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
-----Original Message----- From: Jia-Shiun Li <jiashiun@gmail.com> Date: Wednesday, September 18, 2013 3:37 AM To: Ravi Pokala <rp_freebsd@mac.com> Cc: "freebsd-hardware@freebsd.org" <freebsd-hardware@freebsd.org> Subject: Re: What's the state of AF-4Kn support? >On Sat, Sep 14, 2013 at 3:14 PM, Ravi Pokala <rp_freebsd@mac.com> wrote: >> What does 4Kn support look like in -HEAD? I know UFS's defaults (32KB >>blocks / 4KB fragments) are 4Kn-friendly, and that `gpart' handles >>alignment properly. What about direct drive I/O (i.e. do the device >>drivers do the proper read/modify/write stuff if you try to write a >>partial block)? What about the bootstrap code; I've looked at pmbr.s and >>gptboot.c, and it's not clear if they DTRT in the face of 4Kn drives. > >RMW is done in HDD firmware. The HDDs still do 512b-sector I/Os, only >giving additional hint that physically it is 4K and if aligned >performance would be better. Functionally speaking there is no difference >from not-so-advanced-format (if cost-down is an advance) HDDs. > >Jia-Shiun. Hi Jia-Shiun, What you describe is the 'AF-512e' format - 4KB physical sectors *emulating* 512B logical sectors. See [ https://en.wikipedia.org/wiki/Advanced_Format#Advanced_Format_512e ; http://www.idema.org/?page_id=2153 ]. With AF-512e, yes, the HDD firmware does the read/modify/write for I/Os smaller than the physical sector size. It is intended to be a low-cost/transitional format, allowing the HDD vendors to get the advantages of 4KB physical sectors (better error detection/correction algorithms, better areal density => lower cost) w/o breaking compatibility with decades of firmware and software that expect 512B logical sectors. What I'm asking about is AF-4kn - 4KB *logical* as well as physical sectors. All the enterprise HDD vendors have told us is that AF-4Kn drives expect data IO to be 4KB, and will reject smaller transfers. (*metadata* IO - SMART, IDENTIFY_DEVICE, READ_LOG/WRITE_LOG, etc - will remain 512B.) Doing some more digging, I found this post from ivoras which I missed the first time around [ http://ivoras.net/blog/tree/2011-01-01.freebsd-on-4k-sector-drives.html ]; that tends to support my initial assessment - filesystem stuff should Just Work[tm] - plus adds the detail that direct drive I/O (the example he gives is trying to `dd' 10 bytes) will be rejected because it is smaller than the raw-device access granularity. I've also looked at 'ata_da.c' and see that adaregister() looks at both quirks and IDENTIFY_DEVICE data to determine the logical block size. So, that leaves the bootstrap code as the remaining question-mark. Does anyone what AF-4Kn support looks like there? --rp
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CE5F0282.F39EF%rpokala>