• P
    cutils: add a function to find non-zero content in a buffer · 41a259bd
    Peter Lieven 提交于
    this adds buffer_find_nonzero_offset() which is a SSE2/Altivec
    optimized function that searches for non-zero content in a
    buffer.
    
    the function starts full unrolling only after the first few chunks have
    been checked one by one. analyzing real memory page data has revealed
    that non-zero pages are non-zero within the first 256-512 bits in
    most cases. as this function is also heavily used to check for zero memory
    pages this tweak has been made to avoid the high setup costs of the fully
    unrolled check for non-zero pages.
    
    due to the optimizations used in the function there are restrictions
    on buffer address and search length. the function
    can_use_buffer_find_nonzero_content() can be used to check if
    the function can be used safely.
    Signed-off-by: NPeter Lieven <pl@kamp.de>
    Signed-off-by: NJuan Quintela <quintela@redhat.com>
    41a259bd
qemu-common.h 13.6 KB