Thread (4 messages) 4 messages, 2 authors, 2021-04-02

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help