On 12/4/2014 5:05 PM, Thomas Monjalon wrote: > 2014-12-04 02:49, Qiu, Michael: >> 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? > I could do the change by myself. But given that you had some problems to send > the patch to the mailing list, please send the v3 to everyone. > Then a review from Chao would be appreciated.
OK, I will send V3 to everyone. Thanks, Michael > > Thanks