From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35190) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c0AkY-0007zO-Nu for qemu-devel@nongnu.org; Fri, 28 Oct 2016 13:15:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1c0AkV-0002z8-A5 for qemu-devel@nongnu.org; Fri, 28 Oct 2016 13:15:26 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:58937) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1c0AkV-0002z0-00 for qemu-devel@nongnu.org; Fri, 28 Oct 2016 13:15:23 -0400 Received: from pps.filterd (m0098393.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.17/8.16.0.17) with SMTP id u9SHDPGg033775 for ; Fri, 28 Oct 2016 13:15:21 -0400 Received: from e06smtp10.uk.ibm.com (e06smtp10.uk.ibm.com [195.75.94.106]) by mx0a-001b2d01.pphosted.com with ESMTP id 26c9b7fr4q-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Fri, 28 Oct 2016 13:15:21 -0400 Received: from localhost by e06smtp10.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 28 Oct 2016 18:15:19 +0100 Received: from b06cxnps3075.portsmouth.uk.ibm.com (d06relay10.portsmouth.uk.ibm.com [9.149.109.195]) by d06dlp02.portsmouth.uk.ibm.com (Postfix) with ESMTP id 014C02190061 for ; Fri, 28 Oct 2016 18:14:33 +0100 (BST) Received: from d06av05.portsmouth.uk.ibm.com (d06av05.portsmouth.uk.ibm.com [9.149.37.229]) by b06cxnps3075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id u9SHFHBa41943120 for ; Fri, 28 Oct 2016 17:15:17 GMT Received: from d06av05.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av05.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id u9SHFHqX029279 for ; Fri, 28 Oct 2016 11:15:17 -0600 From: Claudio Imbrenda Date: Fri, 28 Oct 2016 19:15:14 +0200 Message-Id: <1477674916-6795-1-git-send-email-imbrenda@linux.vnet.ibm.com> Subject: [Qemu-devel] [PATCH v3 0/2] Qemu: gdbstub: fix vCont List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com, borntraeger@de.ibm.com, palves@redhat.com This small patchset fixes the incorrect behaviour of the vCont command in the gdb stub. The first patch, as suggested be Paolo, refactors some code. The most visible change is that it moves vm_start to cpus.c The second one fixes the incorrect behaviour of the vCont command. Previously, continuing or stepping a single thread (CPU) caused all other CPUs to be started too, whereas the GDB specification clearly states that without a default action all threads not explicitly mentioned in the command should stay stopped. So if the Qemu gdbstub receives a vCont;c:1 packet, no other CPU should be restarted except the first, and when a vCont;s:1 is received, the first CPU should be stepped without restarting the others. With this patchset Qemu now behaves as expected. See here for reference material about the packets: https://sourceware.org/gdb/current/onlinedocs/gdb/Packets.html https://sourceware.org/gdb/onlinedocs/gdb/Packets.html v2 -> v3 * removed resume_some_vcpus * cleared up the code and simplified the implementation in light of the clarification in the specification of the vCont packet Claudio Imbrenda (2): move vm_start to cpus.c gdbstub: Fix vCont behaviour cpus.c | 44 ++++++++++- gdbstub.c | 189 ++++++++++++++++++++++++++++++++++----------- hw/i386/kvmvapic.c | 2 + include/sysemu/cpus.h | 1 + include/sysemu/sysemu.h | 2 + target-s390x/misc_helper.c | 2 + vl.c | 32 +------- 7 files changed, 195 insertions(+), 77 deletions(-) -- 1.9.1