[dpdk-dev] [PATCH v2] net/hns3: support Tx push quick doorbell to improve perf

Min Hu (Connor) humin29 at huawei.com
Tue Jun 15 05:46:14 CEST 2021


Hi, Stephen,
Volatile is used here to prevent compiler optimization (deleting the reg
write operation).
By the way, this is an initialization process and does not involve
multi-thread synchronization.
Therefore no need to use the barrier.

在 2021/6/15 10:37, Stephen Hemminger 写道:
> On Tue, 15 Jun 2021 09:34:29 +0800
> "Min Hu (Connor)" <humin29 at huawei.com> wrote:
> 
>> +void
>> +hns3_tx_push_init(struct rte_eth_dev *dev)
>> +{
>> +	struct hns3_hw *hw = HNS3_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>> +	volatile uint32_t *reg;
>> +	uint32_t val;
>> +
>> +	if (!hns3_dev_tx_push_supported(hw))
>> +		return;
>> +
>> +	reg = (volatile uint32_t *)hns3_tx_push_get_queue_tail_reg(dev, 0);
> 
> Better to use proper barrier function than using volatile.
> .
> 


More information about the dev mailing list