On 11/19/2015 5:15 PM, Gonzalez Monroy, Sergio wrote: > On 18/11/2015 12:07, Xie, Huawei wrote: >> On 11/18/2015 6:45 PM, Wang, Zhihong wrote: >>>> -----Original Message----- >>>> From: Mcnamara, John >>>> Sent: Wednesday, November 18, 2015 6:40 PM >>>> To: Wang, Zhihong <zhihong.wang at intel.com>; dev at dpdk.org >>>> Subject: RE: [dpdk-dev] [RFC PATCH 2/2] lib/librte_eal: Remove >>>> unnecessary >>>> hugepage zero-filling >>>> >>>> >>>> >>>>> -----Original Message----- >>>>> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Zhihong Wang >>>>> Sent: Wednesday, November 18, 2015 3:27 AM >>>>> To: dev at dpdk.org >>>>> Subject: [dpdk-dev] [RFC PATCH 2/2] lib/librte_eal: Remove >>>>> unnecessary >>>>> hugepage zero-filling >>>>> >>>>> 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? > > Why cannot we rely on the kernel zeroing the memory ? > If that behavior were to change, then we can zero out the memory > ourselves. It is undocumented kernel behavior. My opinion is if not a big burden, zero out the needed memory ourselves, otherwise resort to this kernel behavior.
> > Bruce pointed out to me that the semantics have changed a bit since we > introduced > rte_memzone_free. > Before that, all memzone reserve were zero out by default. > Is there code relying on that? I'm not sure, but it still is good > practice to do it. > > I submitted an RFC regarding this: > http://dpdk.org/ml/archives/dev/2015-November/028416.html > > The idea would be to keep the available memory we are managing zeroed > at all times. > > Sergio >>>>> ... >>>>> if (orig) { >>>>> hugepg_tbl[i].orig_va = virtaddr; >>>>> - memset(virtaddr, 0, hugepage_sz); >>>>> + memset(virtaddr, 0, 8); >>>>> } >>>> Probably worth adding a one or two line comment here to avoid someone >>>> thinking that it is a bug at some later stage. The text in the >>>> commit message >>>> above is suitable. >>>> >>> Good suggestion! Will add it :) >>> >>>> John. >>>> -- > >