Hi, 2016-08-10 23:30, Verkamp, Daniel: > It seems that with DPDK 16.07, rte_zmalloc() and related functions no > longer return zeroed memory reliably on FreeBSD. > > I notice that commit b78c9175118f7d61022ddc5c62ce54a1bd73cea5 ("mem: do > not zero out memory on zmalloc") removed the explicit memset() that used > to ensure the buffer was zeroed; its log message says: > > "Zeroing out memory on rte_zmalloc_socket is not required anymore since > all allocated memory is already zeroed."
On Linux, the memory is zeroed by the kernel. Then the zero value is maintained in the rte_malloc pool by rte_free. > However, I don't see how this is guaranteed (at least for FreeBSD), and > it is not true in practice. I've attached a minimized reproducer program - > running it twice in a row fails reliably for me. > > Is there a missing step in FreeBSD, or is it a more general problem for > other platforms? I guess the initial value from the kernel has been verified only on Linux. We could re-add a memset for FreeBSD.