From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [PATCH v2] Fix two compile issues with i686 platform Date: Thu, 04 Dec 2014 10:03:49 +0100 Message-ID: <3274707.l214P3fVjn@xps13> References: <1417329845-7482-1-git-send-email-michael.qiu@intel.com> <20141203154029.GA6340@bricha3-MOBL3> <533710CFB86FA344BFBF2D6802E60286C9C8C7@SHSMSX101.ccr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: dev-VfR2kkLFssw@public.gmane.org, chaozhu-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org To: "Qiu, Michael" Return-path: In-Reply-To: <533710CFB86FA344BFBF2D6802E60286C9C8C7-0J0gbvR4kThpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-VfR2kkLFssw@public.gmane.org Sender: "dev" 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 > > Minor comment below. > > > > Acked-by: Bruce Richardson > > > >> --- > >> 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. Thanks -- Thomas