On 03/24/2017 05:01 PM, Andrew Baumann wrote: > From: Andrey Shedel <ashe...@microsoft.com> > > The multithreaded TCG implementation exposed deadlocks in the win32 > condition variables: as implemented, qemu_cond_broadcast waited on > receivers, whereas the pthreads API it was intended to emulate does > not. This was causing a deadlock because broadcast was called while > holding the IO lock, as well as all possible waiters blocked on the > same lock. > > This patch replaces all the custom synchronisation code for mutexes > and condition variables with native Windows primitives (SRWlocks and > condition variables) with the same semantics as their POSIX > equivalents. To enable that, it requires a Windows Vista or newer host > OS. > > [AB: edited commit message] > Signed-off-by: Andrew Baumann <andrew.baum...@microsoft.com> > --- > The major implication of this patch is that it drops support for > pre-Vista versions of Windows. However, those OSes are past their end > of life, and other OSS projects have dropped support. e.g.; the last > Cygwin release supporting XP was in Jun 2016. It doesn't seem like a > good tradeoff to invest effort in fixing broken code needed to support > them, so hopefully this isn't too controversial.
I'll leave the technical review to others, but from the pragmatic view, I'm in favor of this change. While we still strive to let qemu run past-their-prime OSs (like pre-Vista) as guests, it is a different story for the host, and I'm totally fine with stating that our mingw build requires a host OS that is not past end-of-life. Furthermore, our recent thread on which OSs should still be supported for builds should be evidence that we are willing to drop old code for hosts that cannot be set up as a build-bot; and I see no reason that anyone running an out-of-date Windows XP box would want to expose it to the internet to be a build-bot given that it has known security flaws that will not be patched. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature