|
From: | Paolo Bonzini |
Subject: | Re: [Qemu-devel] [PATCH] configure: Detect when glibc implements makecontext() to always fail |
Date: | Fri, 14 Oct 2011 14:47:25 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:7.0) Gecko/20110927 Thunderbird/7.0 |
On 10/14/2011 02:30 PM, Peter Maydell wrote:
I've also just discovered that it's no use on Oneiric, where the linker warning has gone away but the syscall still always returns ENOSYS. I think we should just always use the gthread implementation rather than preferring a non-portable-and-hard-to-detect set of functions (which increases the set of different configs we need to test with). If there's a performance problem with that we should get it fixed in gthread:-)
A user-space longjmp will always be slower than a mutex+condvar+context switch. We're talking _orders of magnitude_ slower. At this point it's better to write assembly, since we already support only a dozen TCG targets.
I played with an alternative implementation using a 2-barrier instead of mutex+condvar, but it didn't give any speedup and was still much slower than gthread.
Paolo
[Prev in Thread] | Current Thread | [Next in Thread] |