sun microsystems Systems Architecture Committee _________________________________________________________________ Subject: Multiple disk sector size support (phase I) Submitted by: Larry Liu File: PSARC/2008/769/opinion.ascii Date: March 18th, 2009 Committee: Mark Carlson, James Carlson, Glenn Skinner, Rick Matthews. Product Approval Committee: Solaris PAC solaris-pac@sun.com 1. Summary This project is to enable Solaris to support disks with variable sector size in power of 2 starting at 512 bytes and upto 4096 bytes, i.e. 1 KBytes, 2KB or 4KB. The 4KB sector size disk will be released soon and Solaris need to support it. 2. Decision & Precedence Information The project is approved as specified in reference [1]. The project may deliver in a minor release of the ON consolidation. 3. Interfaces The project exports the following interfaces. ________________________________________________________________________ | Interface Exported | |________________________________________________________________________| | Interface Name | Classification | Comments | |______________________|___________________|_____________________________| | sdstrategy | Committed | To keep the stability of | | (b_lblkno in buf_t) | | buf(9S) structure and to | | | | keep backward compatibility| | | | sd(7D) exports a logical | | | | block size as 512 bytes | | | | and sd(7D) is responsible | | | | for translating the logical| | | | start block address in the | | | | I/O request carried by | | | | buf(9S) to physical disk | | | | block address. | |______________________|___________________|_____________________________| | DKIOCGMEDIAINFOEXT | Committed | A new ioctl to dkio(7I) to | | | | report the physical | | | | blocksize of media. | | | | | |______________________|___________________|_____________________________| | rmw-type | Committed | A new [s]sd tunable in | | | | [s]sd-config-list | | | | UINT32 | |______________________|___________________|_____________________________| | physical-block-size | Committed | A new [s]sd tunable in | | | | [s]sd-config-list. | | | | UINT32 | |________________________________________________________________________| ________________________________________________________________________ | Interfaces Imported | |________________________________________________________________________| | Interface Name | Classification | Comment | |______________________|___________________|_____________________________| | [s]sd-config-list | Committed | PSARC 2008/465 | |______________________|___________________|_____________________________| | device-blksize(9P) | Committed | PSARC 2007/339 | | blksize(9P) | | | |________________________________________________________________________| 4. Opinion 4.1 Extend existing ioctl During commitment, a question was raised about adding a new member to DKIOCGMEDIAINFO. If an old application issuing DKIOCGMEDIAINFO on an upgraded system, the kernel's copyout will corrupt memory. The project team decided to fix this with a new dkio(7I) ioctl DKIOCGMEDIAINFOEXT and leave DKIOVGMEDIAINFO unchanged. 4.2 RMW (Read Modify Write) design The mainly substantive issue discussed during ARC review was RMW design. One member asked since RMW occurs only when the application issues an unaligned access, and thus all modified applications will "do the right thing" to avoid performance degradation, why making RMW an option? Why not have RMW enabled all the time. The project team does not want to leave a hidden performance issue lurking and would prefer to let customers make an explicit choice to either change their applications or run under low performance. A member suggested an alternate proposal to export a "multi-state" RMW flag. By default, RMW is enabled as a "warning only" mode. And "return error on RMW" and "do not report RMW conditions" are other potential settings. The project team decided to take this suggestion. 5. Minority Opinion(s) None. 6. Advisory Information None 7. Appendices 7.1. Appendix A: Technical Changes Required None. 7.2. Appendix B: Technical Changes Advised None. 7.3. Appendix C: Reference Material Unless otherwise noted, materials are relative to the case directory PSARC 2008/769. 1. Functional Specification. File: commitment.materials/design_doc 2. PSARC Questionnaire File: PSARC_questionnaire.txt 3. new ioctl description File: NewIOCTL.txt 4. mail log File: mail