* Configuration of cq->cqe is lower than entries by 1
@ 2016-11-14 11:07 Amrani, Ram
[not found] ` <SN1PR07MB22076C5DE03F1939603C554CF8BC0-mikhvbZlbf8TSoR2DauN2+FPX92sqiQdvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
0 siblings, 1 reply; 5+ messages in thread
From: Amrani, Ram @ 2016-11-14 11:07 UTC (permalink / raw)
To: Leon Romanovsky,
linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Hi Leon, All,
While inspecting MLX code as well as other vendors' I see that the actual number of cq->cqe is configured to be less by 1 than 'entries'. Why is that?
e.g.
struct ib_cq *mlx4_ib_create_cq(struct ib_device *ibdev,
const struct ib_cq_init_attr *attr,
struct ib_ucontext *context,
struct ib_udata *udata)
{
...
cq->ibcq.cqe = entries - 1;
...
}
static int mlx4_alloc_resize_buf(struct mlx4_ib_dev *dev, struct mlx4_ib_cq *cq,
int entries)
{
...
cq->resize_buf->cqe = entries - 1; // this is later copied to cq->ibcq.cqe
...
}
Thanks,
Ram
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 5+ messages in thread[parent not found: <SN1PR07MB22076C5DE03F1939603C554CF8BC0-mikhvbZlbf8TSoR2DauN2+FPX92sqiQdvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>]
* Re: Configuration of cq->cqe is lower than entries by 1 [not found] ` <SN1PR07MB22076C5DE03F1939603C554CF8BC0-mikhvbZlbf8TSoR2DauN2+FPX92sqiQdvxpqHgZTriW3zl9H0oFU5g@public.gmane.org> @ 2016-11-14 12:01 ` Leon Romanovsky [not found] ` <20161114120153.GC4240-2ukJVAZIZ/Y@public.gmane.org> 0 siblings, 1 reply; 5+ messages in thread From: Leon Romanovsky @ 2016-11-14 12:01 UTC (permalink / raw) To: Amrani, Ram; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org [-- Attachment #1: Type: text/plain, Size: 1058 bytes --] On Mon, Nov 14, 2016 at 11:07:53AM +0000, Amrani, Ram wrote: > Hi Leon, All, > While inspecting MLX code as well as other vendors' I see that the actual number of cq->cqe is configured to be less by 1 than 'entries'. Why is that? There is addition of 1 in mlx4_ib_create_cq(): 192 entries = roundup_pow_of_two(entries + 1); 193 cq->ibcq.cqe = entries - 1; The same goes for mlx4_alloc_resize_buf, just earlier in the stack. > > e.g. > struct ib_cq *mlx4_ib_create_cq(struct ib_device *ibdev, > const struct ib_cq_init_attr *attr, > struct ib_ucontext *context, > struct ib_udata *udata) > { > ... > cq->ibcq.cqe = entries - 1; > ... > } > > > static int mlx4_alloc_resize_buf(struct mlx4_ib_dev *dev, struct mlx4_ib_cq *cq, > int entries) > { > ... > cq->resize_buf->cqe = entries - 1; // this is later copied to cq->ibcq.cqe > ... > } > > Thanks, > Ram > [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 819 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <20161114120153.GC4240-2ukJVAZIZ/Y@public.gmane.org>]
* RE: Configuration of cq->cqe is lower than entries by 1 [not found] ` <20161114120153.GC4240-2ukJVAZIZ/Y@public.gmane.org> @ 2016-11-14 12:05 ` Amrani, Ram [not found] ` <2DF5C492-C364-4353-8FA9-51FA5EE760F0@mellanox.com> 0 siblings, 1 reply; 5+ messages in thread From: Amrani, Ram @ 2016-11-14 12:05 UTC (permalink / raw) To: Leon Romanovsky; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > There is addition of 1 in mlx4_ib_create_cq(): > 192 entries = roundup_pow_of_two(entries + 1); > 193 cq->ibcq.cqe = entries - 1; I thought something else might hide there. Thanks, Ram -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <2DF5C492-C364-4353-8FA9-51FA5EE760F0@mellanox.com>]
[parent not found: <2DF5C492-C364-4353-8FA9-51FA5EE760F0-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>]
* RE: Configuration of cq->cqe is lower than entries by 1 [not found] ` <2DF5C492-C364-4353-8FA9-51FA5EE760F0-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org> @ 2016-11-16 9:45 ` Amrani, Ram [not found] ` <84A08B2A-85D5-467C-AE80-63134CA07767@mellanox.com> 0 siblings, 1 reply; 5+ messages in thread From: Amrani, Ram @ 2016-11-16 9:45 UTC (permalink / raw) To: Majd Dibbiny Cc: Leon Romanovsky, linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org >> 192 entries = roundup_pow_of_two(entries + 1); >> 193 cq->ibcq.cqe = entries - 1; >> >> I thought something else might hide there. >> Hi Ram, >> > For CQs, we always reserve an extra CQE, and thus report one less CQE to the > user. > This CQE is used for resize CQ operations. > When the CQ is resized, the HW posts a CQE to indicate that the operation was > completed on the original CQ buffer. > Hope now it's clear. Thanks. I had a guess this was related. Note that there might be different behavior than what you are describing. If the user requested for (2^n) -1 then it'll receive the exact number of entries it requested, without the (at least one) extra entries. For example, if the user requests 63 entries (n=6) it'll receive the same number of entries: 192 entries = roundup_pow_of_two(63+ 1); // this gives 64 193 cq->ibcq.cqe = entries - 1; // this gives 63 again. -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <84A08B2A-85D5-467C-AE80-63134CA07767@mellanox.com>]
[parent not found: <84A08B2A-85D5-467C-AE80-63134CA07767-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>]
* RE: Configuration of cq->cqe is lower than entries by 1 [not found] ` <84A08B2A-85D5-467C-AE80-63134CA07767-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org> @ 2016-11-16 10:05 ` Amrani, Ram 0 siblings, 0 replies; 5+ messages in thread From: Amrani, Ram @ 2016-11-16 10:05 UTC (permalink / raw) To: Majd Dibbiny Cc: Leon Romanovsky, linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > Correct. We create it with 64(the result of the roundup) and let him work with > 63 only. ACK -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2016-11-16 10:05 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-14 11:07 Configuration of cq->cqe is lower than entries by 1 Amrani, Ram
[not found] ` <SN1PR07MB22076C5DE03F1939603C554CF8BC0-mikhvbZlbf8TSoR2DauN2+FPX92sqiQdvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
2016-11-14 12:01 ` Leon Romanovsky
[not found] ` <20161114120153.GC4240-2ukJVAZIZ/Y@public.gmane.org>
2016-11-14 12:05 ` Amrani, Ram
[not found] ` <2DF5C492-C364-4353-8FA9-51FA5EE760F0@mellanox.com>
[not found] ` <2DF5C492-C364-4353-8FA9-51FA5EE760F0-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2016-11-16 9:45 ` Amrani, Ram
[not found] ` <84A08B2A-85D5-467C-AE80-63134CA07767@mellanox.com>
[not found] ` <84A08B2A-85D5-467C-AE80-63134CA07767-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2016-11-16 10:05 ` Amrani, Ram
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox