Below is the change to the design doc about the new ioctl: The newest SBC-3 spec (sbc3r17) extended READ CAPACITY (16) command to not only report the initiator LOGICAL BLOCK LENGTH IN BYTES but also report LOGICAL BLOCKS PER PHYSICAL BLOCK EXPONENT which is the 2^n | logical blocks per physical block. So the proposal here is to add a new | dkio(7I) DKIOCGMEDIAINFOEXT ioctl to report the physical block size. Applications and filesystems can decide the physical block size by issuing DKIOCGMEDIAINFOEXT and can send I/O requests that are aligned with the physical block size to improve the I/O performance. #define DKIOCGMEDIAINFOEXT (DKIO|48) | The argument of DKIOCGMEDIAINFOEXT /* * Used for media info with physcial block size */ struct dk_minfo_ext { uint_t dki_media_type; /* Media type or profile info */ uint_t dki_lbsize; /* Logical blocksize of media */ diskaddr_t dki_capacity; /* Capacity as # of dki_lbsize blks */ uint_t dki_pbsize; /* Physical blocksize of media */ }; Change to the Exported Interface table Exported Interface Classification Comments ==================== ===================== ========================== -------------------- --------------------- --------------------------- | DKIOCGMEDIAINFOEXT Committed Add a new ioctl to dkio(7I) | to report the physical | blocksize of media. | The man page update for dkio(7I) is DKIOCGMEDIAINFOEXT The argument to this ioctl() is a pointer to a dk_minfo_pbs structure. The structure indicates the type of media or the com- mand set profile used by the drive to operate on the media. The dk_minfo_pbs struc- ture also indicates the logical media blocksize the drive uses as the basic unit blocksize of operation, the raw formatted capacity of the media in number of logical blocks and the physical block size of the media. /* * Used for media info with physcial block size */ struct dk_minfo_ext { uint_t dki_media_type; /* Media type or profile info */ uint_t dki_lbsize; /* Logical blocksize of media */ diskaddr_t dki_capacity; /* Capacity as # of dki_lbsize blks */ uint_t dki_pbsize; /* Physical blocksize of media */ };