On 2025/1/4 3:17, Stephen Hemminger wrote:
> On Fri, 03 Jan 2025 23:04:23 +0800
> "WanRenyong" <wa...@yunsilicon.com> wrote:
>
>> +static int
>> +xsc_ethdev_start(struct rte_eth_dev *dev)
>> +{
>> +    int ret;
>> +    struct xsc_ethdev_priv *priv = TO_XSC_ETHDEV_PRIV(dev);
>> +
>> +    ret = xsc_txq_start(priv);
>> +    if (ret) {
>> +            PMD_DRV_LOG(ERR, "Port %u txq start failed: %s",
>> +                        dev->data->port_id, strerror(rte_errno));
>> +            goto error;
>> +    }
>> +
>> +    ret = xsc_rxq_start(priv);
>> +    if (ret) {
>> +            PMD_DRV_LOG(ERR, "Port %u Rx queue start failed: %s",
>> +                        dev->data->port_id, strerror(rte_errno));
>> +            goto error;
>> +    }
>> +
>> +    dev->data->dev_started = 1;
>> +
>> +    rte_wmb();
> In general, it is preferred that DPDK drivers use rte_atomic to get
> finer grain control over shared variables. Rather than using volatile
> and barriers.  This is not an absolute requirement, but something
> that is preferred and improves performance on weakly ordered platforms.
Understood, maybe rte_wmb is not neccessary here, will remove it in the 
next version.

-- 
Thanks,
WanRenyong

Reply via email to