Re: [lustre-devel] [PATCH] Revert "Staging: lustre: o2iblnd: Use sizeof type *pointer instead of sizeof type."

From: Oucharek, Doug S
Date: Wed Mar 23 2016 - 02:30:04 EST


Yes, those are âper-CPT allocationsâ. So the allocator ends up allocating an array of pointers to the given data type.

Doug

On Mar 22, 2016, at 10:39 PM, Dilger, Andreas <andreas.dilger@xxxxxxxxx<mailto:andreas.dilger@xxxxxxxxx>> wrote:

On 2016/03/22, 19:49, "lustre-devel on behalf of Greg Kroah-Hartman"
<lustre-devel-bounces@xxxxxxxxxxxxxxxx<mailto:lustre-devel-bounces@xxxxxxxxxxxxxxxx> on behalf of
gregkh@xxxxxxxxxxxxxxxxxxx<mailto:gregkh@xxxxxxxxxxxxxxxxxxx>> wrote:

On Tue, Mar 22, 2016 at 06:21:04PM -0400, James Simmons wrote:
Latest testing fails when using ko2iblnd. It was tracked down
to commit 4671a026616df26000f7d8ad2f2ea4b6de79263c.

This reverts commit 4671a026616df26000f7d8ad2f2ea4b6de79263c.
---
.../staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c
b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c
index 89f9390..0d32e65 100644
--- a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c
+++ b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c
@@ -1968,7 +1968,7 @@ static int kiblnd_net_init_pools(kib_net_t *net,
__u32 *cpts, int ncpts)
*/

net->ibn_fmr_ps = cfs_percpt_alloc(lnet_cpt_table(),
- sizeof(*net->ibn_fmr_ps));
+ sizeof(kib_fmr_poolset_t));

Ok, why is this revert needed? Please give me a big huge comment about
why this is not the same size of the variable being assigned to it,
otherwise someone else is going to come along and make the exact same
change again.

if (!net->ibn_fmr_ps) {
CERROR("Failed to allocate FMR pool array\n");
rc = -ENOMEM;
@@ -1992,7 +1992,7 @@ static int kiblnd_net_init_pools(kib_net_t *net,
__u32 *cpts, int ncpts)

create_tx_pool:
net->ibn_tx_ps = cfs_percpt_alloc(lnet_cpt_table(),
- sizeof(*net->ibn_tx_ps));
+ sizeof(kib_tx_poolset_t));

Same here, why is this code wrong?

Looks like the declarations are:

kib_tx_poolset_t **ibn_tx_ps; /* tx pool-set */
kib_fmr_poolset_t **ibn_fmr_ps; /* fmr pool-set */



so the right code should be:

sizeof(**net->ibn_tx_ps);


and the same for sizeof(**net->ibn_fmr_ps)

Cheers, Andreas
--
Andreas Dilger

Lustre Principal Architect
Intel High Performance Data Division


_______________________________________________
lustre-devel mailing list
lustre-devel@xxxxxxxxxxxxxxxx<mailto:lustre-devel@xxxxxxxxxxxxxxxx>
http://lists.lustre.org/listinfo.cgi/lustre-devel-lustre.org