See v1 for context: https://lists.gnu.org/archive/html/qemu-devel/2016-04/msg00587.html
All patches in v2 are checkpatch-clean, except 05 (checkpatch should be ignored for this one) and 06, which I took unmodified (later patches fix those warnings while doing other things, anyway). Note that patch 01 has already been picked up by Paolo; I left it here for completeness. Another patch that is related to this series is the transition of tb->flags to uint32_t; this has been sent as a separate patch since it touches all targets. It shouldn't conflict with this patchset. Changes from v1: - Drop QEMU_CACHELINE, define QEMU_ALIGNED() + Remove excessive caution about Windows: it supports it. + define QHT_BUCKET_ALIGN as 64 - Add some reviewed-by tags from Alex. - Drop POSIX spinlock wrapper; use the one pointed out by Paolo + Add a couple of fixes over this spinlock implementation: * define cpu_relax() for some architectures * Optimize spin_lock() for uncontended cases - Add tb_hash_func5, a version of xxhash32 customized for tb-hash, so that the input values do not have to be contiguous in memory. + Drop xxhash.h, add only the customized version at exec/tb-hash-xx.h - qht + use size_t for counts in qht * Drop some 2**32 size checks in there; it's not really a problem in practice. + s/__func/func__locked/ + Test program: hash with tb_hash_func5 Thanks, Emilio