Re: [PATCHv3] nvme: implement non-mdts command limits
From: Keith Busch <kbusch@kernel.org>
Date: 2021-03-25 15:30:57
On Thu, Mar 25, 2021 at 07:50:28AM +0100, Christoph Hellwig wrote:
On Wed, Mar 24, 2021 at 04:18:05PM -0700, Keith Busch wrote:quoted
+static inline u32 nvme_mps_size_to_sectors(struct nvme_ctrl *ctrl, u8 size) +{ + int page_shift = NVME_CAP_MPSMIN(ctrl->cap) + 12; + + return 1 << (size + page_shift - 9);A little nitpick we can fix when applying if needed: MPS already is the memory page size, so the size here seems redundant.
Sure, nvme_mps_to_sectors() is fine. And perhaps renaming the 'size' parameter to something like 'units' might be more clear and aligns to the spec terms.
quoted
+ /* + * Even though NVMe spec explicitly states that MDTS is not applicable + * to the write-zeroes, we are cautious and limit the size to the + * controllers max_hw_sectors value, which is based on the MDTS field + * and possibly other limiting factors. + */ + if (!(ctrl->quirks & NVME_QUIRK_DISABLE_WRITE_ZEROES) && + (ctrl->oncs & NVME_CTRL_ONCS_WRITE_ZEROES))I would place the oncs check befoe the quirks check as it flows a lot more logical. But all the actual logic looks fine to me.
_______________________________________________ Linux-nvme mailing list Linux-nvme@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-nvme