> -----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? > > > > /Zhihong > > > >