[dpdk-dev] [PATCH v15 01/11] eal: uninline power intrinsics

Burakov, Anatoly anatoly.burakov at intel.com
Tue Jan 12 17:14:00 CET 2021


On 12-Jan-21 4:09 PM, Ananyev, Konstantin wrote:
> 
>> diff --git a/lib/librte_eal/x86/rte_power_intrinsics.c b/lib/librte_eal/x86/rte_power_intrinsics.c
>> new file mode 100644
>> index 0000000000..34c5fd9c3e
>> --- /dev/null
>> +++ b/lib/librte_eal/x86/rte_power_intrinsics.c
>> @@ -0,0 +1,120 @@
>> +/* SPDX-License-Identifier: BSD-3-Clause
>> + * Copyright(c) 2020 Intel Corporation
>> + */
>> +
>> +#include "rte_power_intrinsics.h"
>> +
>> +static inline uint64_t
>> +__get_umwait_val(const volatile void *p, const uint8_t sz)
>> +{
>> +switch (sz) {
>> +case sizeof(uint8_t):
>> +return *(const volatile uint8_t *)p;
>> +case sizeof(uint16_t):
>> +return *(const volatile uint16_t *)p;
>> +case sizeof(uint32_t):
>> +return *(const volatile uint32_t *)p;
>> +case sizeof(uint64_t):
>> +return *(const volatile uint64_t *)p;
>> +default:
>> +/* this is an intrinsic, so we can't have any error handling */
>> +RTE_ASSERT(0);
>> +return 0;
> 
> Nearly forgot - as now this function is not inline anymore, we can probably
> get rid of assert and return some error code instead?
> 

Well, this would necessitate a change of API to include return values. 
Which i think is OK at this point, because it's a fully fledged API 
(rather than an intrinsic) at this point anyway.

>> +}
>> +}
>> +


-- 
Thanks,
Anatoly


More information about the dev mailing list