[dpdk-dev] [PATCH v2] Fix two compile issues with i686 platform
Qiu, Michael
michael.qiu at intel.com
Thu Dec 4 03:49:24 CET 2014
On 12/3/2014 11:40 PM, Richardson, Bruce wrote:
> On Wed, Dec 03, 2014 at 04:10:23PM +0800, Michael Qiu wrote:
>> lib/librte_eal/linuxapp/eal/eal_memory.c:324:4: error: comparison
>> is always false due to limited range of data type [-Werror=type-limits]
>> || (hugepage_sz == RTE_PGSIZE_16G)) {
>> ^
>> cc1: all warnings being treated as errors
>>
>> lib/librte_eal/linuxapp/eal/eal.c(461): error #2259: non-pointer
>> conversion from "long long" to "void *" may lose significant bits
>> RTE_PTR_ALIGN_CEIL((uintptr_t)addr, RTE_PGSIZE_16M);
>>
>> This was introuduced by commit b77b5639:
>> mem: add huge page sizes for IBM Power
>>
>> The root cause is that size_t and uintptr_t are 32-bit in i686
>> platform, but RTE_PGSIZE_16M and RTE_PGSIZE_16G are always 64-bit.
>>
>> Define RTE_PGSIZE_16G only in 64 bit platform to avoid
>> this issue.
>>
>> Signed-off-by: Michael Qiu <michael.qiu at intel.com>
> Minor comment below.
>
> Acked-by: Bruce Richardson <bruce.richardson at intel.com>
>
>> ---
>> app/test/test_memzone.c | 18 ++++++++++++------
>> lib/librte_eal/common/eal_common_memzone.c | 2 ++
>> lib/librte_eal/common/include/rte_memory.h | 14 ++++++++------
>> lib/librte_eal/linuxapp/eal/eal_memory.c | 12 +++++-------
>> 4 files changed, 27 insertions(+), 19 deletions(-)
>>
> ... snip ...
>> --- a/lib/librte_eal/common/include/rte_memory.h
>> +++ b/lib/librte_eal/common/include/rte_memory.h
>> @@ -53,12 +53,14 @@ extern "C" {
>> #endif
>>
>> enum rte_page_sizes {
>> - RTE_PGSIZE_4K = 1ULL << 12,
>> - RTE_PGSIZE_2M = 1ULL << 21,
>> - RTE_PGSIZE_1G = 1ULL << 30,
>> - RTE_PGSIZE_64K = 1ULL << 16,
>> - RTE_PGSIZE_16M = 1ULL << 24,
>> - RTE_PGSIZE_16G = 1ULL << 34
>> + RTE_PGSIZE_4K = 1UL << 12,
>> + RTE_PGSIZE_2M = 1UL << 21,
>> + RTE_PGSIZE_1G = 1UL << 30,
>> + RTE_PGSIZE_64K = 1UL << 16,
>> + RTE_PGSIZE_16M = 1UL << 24,
>> +#ifdef RTE_ARCH_64
>> + RTE_PGSIZE_16G = 1ULL << 34
> you don't need the "LL" here as long type is 64-bits on 64-bit systems. Changing
> it to 1UL << 34 will keep all entries consistent.
Hi Thomas,
Should I resend V3 patch to modify this or you can do it when you plan
to merge this patch?
Thanks,
Michael
>
More information about the dev
mailing list