From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51878) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1anJa1-0001eE-6c for qemu-devel@nongnu.org; Tue, 05 Apr 2016 01:31:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1anJZy-0005Sx-02 for qemu-devel@nongnu.org; Tue, 05 Apr 2016 01:31:09 -0400 Received: from out5-smtp.messagingengine.com ([66.111.4.29]:59478) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1anJZx-0005Se-R0 for qemu-devel@nongnu.org; Tue, 05 Apr 2016 01:31:05 -0400 Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.nyi.internal (Postfix) with ESMTP id 2D58520D3D for ; Tue, 5 Apr 2016 01:31:04 -0400 (EDT) From: "Emilio G. Cota" Date: Tue, 5 Apr 2016 01:30:43 -0400 Message-Id: <1459834253-8291-1-git-send-email-cota@braap.org> Subject: [Qemu-devel] [PATCH 00/10] tb hash improvements List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: QEMU Developers , MTTCG Devel Cc: Peter Maydell , Peter Crosthwaite , Sergey Fedorov , Paolo Bonzini , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Richard Henderson This patchset is derived from my ongoing work on MTTCG, but does not depend on it and brings improvements that we can already benefit from. It applies cleanly on the current master and is checkpatch-clean. The key goal is to make the TB hash table faster, and while at it, scalable. Tested on two different host machines, the execution time improvement before and after this series, when booting a debian jessie arm image[*] with arm-softmmu, is: - Intel Xeon E5-2690: 21.2% less time - Intel i7-4790K: 23.5% less time This workload is particularly sensitive to TB hash performance. Other workloads not as sensitive might see a slight performance degradation with this patchset, since the hashing + lookup functions take now more instructions. In any case, no significant slowdowns should occur. The commit logs are sometimes long because I have lots of numbers to share. The only bits I'm not too comfortable with in this series are patches 2 and 5; I don't develop on Windows so I'm shooting in the dark there. Please take a look and if possible, test on workloads you care about! Thanks, Emilio [*] taskset -c 0 arm-softmmu/qemu-system-arm -machine type=virt -nographic \ -smp 1 -m 4096 -netdev user,id=unet,hostfwd=tcp::2222-:22 \ -device virtio-net-device,netdev=unet \ -drive file=jessie-arm32.qcow2,id=myblock,index=0,if=none \ -device virtio-blk-device,drive=myblock \ -kernel aarch32-current-linux-kernel-only.img \ -append 'console=ttyAMA0 root=/dev/vda1' \ -name arm,debug-threads=on -smp 1 -tb-size 1024 The image is taken from: http://people.linaro.org/~alex.bennee/images/jessie-arm32.qcow2 The image was modified to call `shutdown -h now` right after boot. The kernel is taken from: http://people.linaro.org/~alex.bennee/images/aarch32-current-linux-kernel-only.img