[PATCH 13/13] net/ionic: optimize device start operation
    Stephen Hemminger 
    stephen at networkplumber.org
       
    Sat Feb  3 05:28:09 CET 2024
    
    
  
On Fri, 2 Feb 2024 11:32:38 -0800
Andrew Boyer <andrew.boyer at amd.com> wrote:
> +	memset(ctx, 0, sizeof(*ctx));
> +	ctx->pending_work = true;
> +	ctx->cmd.q_init.opcode = IONIC_CMD_Q_INIT;
> +	ctx->cmd.q_init.type = q->type;
> +	ctx->cmd.q_init.ver = lif->qtype_info[q->type].version;
> +	ctx->cmd.q_init.index = rte_cpu_to_le_32(q->index);
> +	ctx->cmd.q_init.flags = rte_cpu_to_le_16(IONIC_QINIT_F_ENA);
> +	ctx->cmd.q_init.intr_index = rte_cpu_to_le_16(IONIC_INTR_NONE);
> +	ctx->cmd.q_init.ring_size = rte_log2_u32(q->num_descs);
> +	ctx->cmd.q_init.cq_ring_base = rte_cpu_to_le_64(cq->base_pa);
> +	ctx->cmd.q_init.sg_ring_base = rte_cpu_to_le_64(q->sg_base_pa);
> +
memset followed by assignment is technically slower than structure
initialization because it requires two writes to the data.
But the optimizer may in some cases figure that out.
    
    
More information about the dev
mailing list