On Fri, May 14, 2010 at 11:52 PM, Stefan Hajnoczi <stefa...@linux.vnet.ibm.com> wrote: > The VirtIOBlockRequest structure is about 40 KB in size. This patch > avoids zeroing every request by only initializing fields that are read. > The other fields are either written to or may not be used at all. > > Oprofile shows about 10% of CPU samples in memset called by > virtio_blk_alloc_request(). The workload is > dd if=/dev/vda of=/dev/null iflag=direct bs=8k running concurrently 4 > times. This patch makes memset disappear to the bottom of the profile. >
Did you try to profile using calloc in qemu_mallocz instead of malloc + memset ? $ man calloc calloc() allocates memory for an array of nmemb elements of size bytes each and returns a pointer to the allocated memory. __The memory is set to zero.__ -- Corentin Chary http://xf.iksaif.net