On 19/11/2015 06:32, Wang, Zhihong wrote: >> -----Original Message----- >> From: Xie, Huawei >> Sent: Thursday, November 19, 2015 2:05 PM >> To: Wang, Zhihong <zhihong.wang at intel.com>; Stephen Hemminger >> <stephen at networkplumber.org>; Richardson, Bruce >> <bruce.richardson at intel.com> >> Cc: dev at dpdk.org >> Subject: Re: [dpdk-dev] [RFC PATCH 2/2] lib/librte_eal: Remove unnecessary >> hugepage zero-filling >> >> On 11/19/2015 10:16 AM, Wang, Zhihong wrote: >>>> -----Original Message----- >>>> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Stephen >>>> Hemminger >>>> Sent: Thursday, November 19, 2015 3:09 AM >>>> To: Richardson, Bruce <bruce.richardson at intel.com> >>>> Cc: dev at dpdk.org >>>> Subject: Re: [dpdk-dev] [RFC PATCH 2/2] lib/librte_eal: Remove >>>> unnecessary hugepage zero-filling >>>> >>>> On Wed, 18 Nov 2015 16:13:32 +0000 >>>> "Richardson, Bruce" <bruce.richardson at intel.com> wrote: >>>> >>>>>> -----Original Message----- >>>>>> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Stephen >>>>>> Hemminger >>>>>> Sent: Wednesday, November 18, 2015 4:00 PM >>>>>> To: Xie, Huawei <huawei.xie at intel.com> >>>>>> Cc: dev at dpdk.org >>>>>> Subject: Re: [dpdk-dev] [RFC PATCH 2/2] lib/librte_eal: Remove >>>>>> unnecessary hugepage zero-filling >>>>>> >>>>>> On Wed, 18 Nov 2015 12:07:54 +0000 >>>>>> "Xie, Huawei" <huawei.xie at intel.com> wrote: >>>>>> >>>>>>>>>> The kernel fills new allocated (huge) pages with zeros. >>>>>>>>>> DPDK just has to touch the pages to trigger the allocation. >>>>>>> I think we shouldn't reply on the assumption that kernel has >>>>>>> zeroed the memory. Kernel zeroes the memory mostly to avoid >>>>>>> information leakage.It could also achieve this by setting each bit to 1. >>>>>>> What we indeed need to check is later DPDK initialization code >>>>>>> doesn't assume the memory has been zeroed. Otherwise zero only >>>>>>> that part of the memory. Does this makes sense? >>>>>> If all new pages are zero, why does DPDK have to pre-touch the >>>>>> pages at all? >>>>> The pages won't actually be mapped into the processes address space >>>>> until >>>> accessed. >>>>> /Bruce >>>> Isn't that what mmap MAP_POPULATE flag (not currently used) will do. >>> Yes, the MAP_POPULATE does literally the same thing. >>> This flag is implemented since Linux 2.5.46 according to Linux man >>> page, guess that's why DPDK fault the page tables manually in the >>> first place. :) >>> >>> I think we can use this flag since it makes the code clearer. >> The manual says MAP_POPULATE is only supported for private mappings since >> Linux 2.6.23. > I've done check before and MAP_SHARED | MAP_POPULATE worked together > correctly. Is there any implicit complication here? >
None that I can see. Sergio >>> /Zhihong >>> >>>