On Tue, Nov 23, 2010 at 4:49 PM, Anthony Liguori <aliguori@xxxxxxxxxx> wrote: > qemu-kvm vcpu threads don't response to SIGSTOP/SIGCONT. ÂInstead of teaching > them to respond to these signals (which cannot be trapped), use SIGUSR1 to > approximate the behavior of SIGSTOP/SIGCONT. > > The purpose of this is to implement CPU hard limits using an external tool that > watches the CPU consumption and stops the VCPU as appropriate. > > This provides a more elegant solution in that it allows the VCPU thread to > release qemu_mutex before going to sleep. > > This current implementation uses a single signal. ÂI think this is too racey > in the long term so I think we should introduce a second signal. ÂIf two signals > get coalesced into one, it could confuse the monitoring tool into giving the > VCPU the inverse of it's entitlement. > > It might be better to simply move this logic entirely into QEMU to make this > more robust--the question is whether we think this is a good long term feature > to carry in QEMU? > +static __thread int sigusr1_wfd; While OpenBSD finally updated the default compiler to 4.2.1 from 3.x series, thread local storage is still not supported: $ cat thread.c static __thread int sigusr1_wfd; $ gcc thread.c -c thread.c:1: error: thread-local storage not supported for this target $ gcc -v Reading specs from /usr/lib/gcc-lib/sparc64-unknown-openbsd4.8/4.2.1/specs Target: sparc64-unknown-openbsd4.8 Configured with: OpenBSD/sparc64 system compiler Thread model: posix gcc version 4.2.1 20070719 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html