From patchwork Thu Aug 11 15:24:06 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 73773 Delivered-To: patch@linaro.org Received: by 10.140.29.52 with SMTP id a49csp170370qga; Thu, 11 Aug 2016 08:36:13 -0700 (PDT) X-Received: by 10.55.26.147 with SMTP id l19mr11813602qkh.247.1470929773479; Thu, 11 Aug 2016 08:36:13 -0700 (PDT) Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id v51si1887163qtc.2.2016.08.11.08.36.13 for (version=TLS1 cipher=AES128-SHA bits=128/128); Thu, 11 Aug 2016 08:36:13 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:49194 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bXs1k-0005N2-Sg for patch@linaro.org; Thu, 11 Aug 2016 11:36:12 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57378) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bXrqV-0003e9-6g for qemu-devel@nongnu.org; Thu, 11 Aug 2016 11:24:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bXrqT-0006ak-2d for qemu-devel@nongnu.org; Thu, 11 Aug 2016 11:24:35 -0400 Received: from mail-wm0-x22d.google.com ([2a00:1450:400c:c09::22d]:37285) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bXrqS-0006aV-Sd for qemu-devel@nongnu.org; Thu, 11 Aug 2016 11:24:33 -0400 Received: by mail-wm0-x22d.google.com with SMTP id i5so3240537wmg.0 for ; Thu, 11 Aug 2016 08:24:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=FR9Rap14M7+eo+LLXch8m5RFIpTrNvDMhTiLTqkRrQM=; b=Kv5UKwTlpLM0y1SsGlPl9cK0Efb6lRdH10nXEIz7mm/j4PrQ3x0L7UiXribxWXP1Zm 4U3kFNGjyYwJO6B3zn7ntkitdYqDxJ7UQ8PpchzBmjB399wQfhNBU+8na2NvDMMX9K92 hKvwjhvTg8mq5jPy2ErG/yoTp0pc/3B3GBECA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=FR9Rap14M7+eo+LLXch8m5RFIpTrNvDMhTiLTqkRrQM=; b=VflN8qpEMpryr+w6vgiBPflND1q2IfF9E5qHH2Vl9S61DKq6EhG8KYpXbwlCkyTtsN GPYive4xEDYmQZg/xkpUZ3iJQijUTMDq5YCGPx07wyB9zzpQlbK349wFoYsmgy1L1CLc SfDHFO7YR36zmZPgnBkV09v8L0GZb70CiYK7mXvCi+0gvtGWIqLiEZmHbxEG2l7+z0e5 YB5lRS7/Cn8QsK7LA4jZmDJdM/uqHFNO2v/vhrXykwKr8wY3R4FczTDVs3Zgi+KDnuBy 57+WXcsmv6lu3pL5BNC40HV2uaSO714E0tfHZhWjVn9FxdDgG9h5eUmKDV+mPP/9OKuR Hoow== X-Gm-Message-State: AEkoousx5D4LeSOImHYzpJnX48Q5Cv0HHeqy5REFsG9Hc6E2wjiTyzlGghy9+n090ZVRJvWa X-Received: by 10.194.82.164 with SMTP id j4mr12416545wjy.157.1470929072182; Thu, 11 Aug 2016 08:24:32 -0700 (PDT) Received: from zen.linaro.local ([81.128.185.34]) by smtp.gmail.com with ESMTPSA id p83sm289704wma.18.2016.08.11.08.24.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 11 Aug 2016 08:24:31 -0700 (PDT) Received: from zen.linaroharston (localhost [127.0.0.1]) by zen.linaro.local (Postfix) with ESMTP id 932523E0297; Thu, 11 Aug 2016 16:24:30 +0100 (BST) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: mttcg@listserver.greensocs.com, qemu-devel@nongnu.org, fred.konrad@greensocs.com, a.rigo@virtualopensystems.com, cota@braap.org, bobby.prani@gmail.com, nikunj@linux.vnet.ibm.com Date: Thu, 11 Aug 2016 16:24:06 +0100 Message-Id: <1470929064-4092-11-git-send-email-alex.bennee@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1470929064-4092-1-git-send-email-alex.bennee@linaro.org> References: <1470929064-4092-1-git-send-email-alex.bennee@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2a00:1450:400c:c09::22d Subject: [Qemu-devel] [RFC v4 10/28] target-arm/arm-powerctl: wake up sleeping CPUs X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, Alexander Spyridakis , claudio.fontana@huawei.com, jan.kiszka@siemens.com, mark.burton@greensocs.com, "open list:ARM" , serge.fdrv@gmail.com, pbonzini@redhat.com, =?UTF-8?q?Alex=20Benn=C3=A9e?= , rth@twiddle.net Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Testing with Alexander's bare metal syncronisation tests fails in MTTCG leaving one CPU spinning forever waiting for the second CPU to wake up. We simply need to kick the vCPU once we have processed the PSCI power on call. As the power control API is for system emulation only as is the qemu_kick_cpu function we also ensure we only build arm-powerctl for SoftMMU builds. Tested-by: Alex Bennée CC: Alexander Spyridakis Message-Id: <1439220437-23957-20-git-send-email-fred.konrad@greensocs.com> Signed-off-by: Alex Bennée Signed-off-by: Paolo Bonzini --- v3 - re-base caught arm_powerctl re-factor - include cpu.h header for kick definition - fix Makefile.objs to only build for softmmu --- target-arm/Makefile.objs | 2 +- target-arm/arm-powerctl.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) -- 2.7.4 diff --git a/target-arm/Makefile.objs b/target-arm/Makefile.objs index f206411..847fb52 100644 --- a/target-arm/Makefile.objs +++ b/target-arm/Makefile.objs @@ -9,4 +9,4 @@ obj-y += neon_helper.o iwmmxt_helper.o obj-y += gdbstub.o obj-$(TARGET_AARCH64) += cpu64.o translate-a64.o helper-a64.o gdbstub64.o obj-y += crypto_helper.o -obj-y += arm-powerctl.o +obj-$(CONFIG_SOFTMMU) += arm-powerctl.o diff --git a/target-arm/arm-powerctl.c b/target-arm/arm-powerctl.c index 6519d52..fbb7a15 100644 --- a/target-arm/arm-powerctl.c +++ b/target-arm/arm-powerctl.c @@ -166,6 +166,8 @@ int arm_set_cpu_on(uint64_t cpuid, uint64_t entry, uint64_t context_id, /* Start the new CPU at the requested address */ cpu_set_pc(target_cpu_state, entry); + qemu_cpu_kick(target_cpu_state); + /* We are good to go */ return QEMU_ARM_POWERCTL_RET_SUCCESS; }