A question regarding "multiple SGL"
qiuxin at huawei.com
Wed Oct 26 23:57:56 PDT 2016
Thanks , got it.
Could you please do me favor to let me know the background why we ONLY support " MSDBD ==1"? I am NOT trying to resist or oppose anything , I just want to know the reason. You know, it is a little wired for me, as "MSDBD ==1" does not fulfill all the use cases which is depicted in the spec.
华为技术有限公司 Huawei Technologies Co., Ltd.
Mobile: +86 15986638429
Email: qiuxin at huawei.com
Huawei Technologies Co., Ltd.
Bantian, Longgang District,Shenzhen 518129, P.R.China
This e-mail and its attachments contain confidential information from HUAWEI, which
is intended only for the person or entity whose address is listed above. Any use of the
information contained herein in any way (including, but not limited to, total or partial
disclosure, reproduction, or dissemination) by persons other than the intended
recipient(s) is prohibited. If you receive this e-mail in error, please notify the sender by
phone or email immediately and delete it!
发件人: Christoph Hellwig [mailto:hch at lst.de]
发送时间: 2016年10月27日 14:41
抄送: Bart Van Assche; Jens Axboe; linux-block at vger.kernel.org; James Bottomley; Martin K. Petersen; Mike Snitzer; linux-rdma at vger.kernel.org; Ming Lei; linux-nvme at lists.infradead.org; Keith Busch; Doug Ledford; linux-scsi at vger.kernel.org; Laurence Oberman; Christoph Hellwig; Tiger zhao; Qiuxin (robert)
主题: Re: A question regarding "multiple SGL"
There is no feature called "Multiple SGL in one NVMe capsule". The NVMe over Fabrics specification allows a controller to advertise how many SGL descriptors it supports using the MSDBD Identify field:
"Maximum SGL Data Block Descriptors (MSDBD): This field indicates the maximum number of (Keyed) SGL Data Block descriptors that a host is allowed to place in a capsule. A value of 0h indicates no limit."
Setting this value to 1 is perfectly valid. Similarly a host is free to chose any number of SGL descriptors between 0 (only for command that don't transfer data) to the limit imposed by the controller using the MSDBD field.
There are no plans to support a MSDBD value larger than 1 in the Linux NVMe target, and there are no plans to ever submit commands with multiple SGLs from the host driver either.
More information about the Linux-nvme