• E
    qht: do not segfault when gathering stats from an uninitialized qht · 7266ae91
    Emilio G. Cota 提交于
    So far, QHT functions assume that the passed qht has previously been
    initialized--otherwise they segfault.
    
    This patch makes an exception for qht_statistics_init, with the goal
    of simplifying calling code. For instance, qht_statistics_init is
    called from the 'info jit' dump, and given that under KVM the TB qht
    is never initialized, we get a segfault. Thus, instead of complicating
    the 'info jit' code with additional checks, let's allow passing an
    uninitialized qht to qht_statistics_init.
    
    While at it, add a test for this to test-qht.
    
    Before the patch (for $ qemu -enable-kvm [...]):
    (qemu) info jit
    [...]
    direct jump count   0 (0%) (2 jumps=0 0%)
    Program received signal SIGSEGV, Segmentation fault.
    
    After the patch the "TB hash buckets", "TB hash occupancy"
    and "TB hash avg chain" lines are omitted.
    (qemu) info jit
    [...]
    direct jump count   0 (0%) (2 jumps=0 0%)
    TB hash buckets     0/0 (-nan% head buckets used)
    TB hash occupancy   nan% avg chain occ. Histogram: (null)
    TB hash avg chain   nan buckets. Histogram: (null)
    [...]
    
    Reported by: Changlong Xie <xiecl.fnst@cn.fujitsu.com>
    Signed-off-by: NEmilio G. Cota <cota@braap.org>
    Message-Id: <1469205390-14369-1-git-send-email-cota@braap.org>
    [Extract printing statistics to an entirely separate function. - Paolo]
    Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
    7266ae91
translate-all.c 60.8 KB