Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752456AbdGFP3c (ORCPT ); Thu, 6 Jul 2017 11:29:32 -0400 Received: from mail-pg0-f67.google.com ([74.125.83.67]:33673 "EHLO mail-pg0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751816AbdGFP3b (ORCPT ); Thu, 6 Jul 2017 11:29:31 -0400 Date: Fri, 7 Jul 2017 01:29:16 +1000 From: Nicholas Piggin To: "Gautham R. Shenoy" Cc: Michael Ellerman , Michael Neuling , Vaidyanathan Srinivasan , Shilpasri G Bhat , "Rafael J. Wysocki" , Akshay Adiga , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org Subject: Re: [PATCH 5/5] powernv:idle: Disable LOSE_FULL_CONTEXT states when stop-api fails. Message-ID: <20170707012916.215ed32a@roar.ozlabs.ibm.com> In-Reply-To: <1499272696-28751-6-git-send-email-ego@linux.vnet.ibm.com> References: <1499272696-28751-1-git-send-email-ego@linux.vnet.ibm.com> <1499272696-28751-6-git-send-email-ego@linux.vnet.ibm.com> Organization: IBM X-Mailer: Claws Mail 3.14.1 (GTK+ 2.24.31; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1396 Lines: 35 On Wed, 5 Jul 2017 22:08:16 +0530 "Gautham R. Shenoy" wrote: > From: "Gautham R. Shenoy" > > Currently, we use the opal call opal_slw_set_reg() to inform the that > the Sleep-Winkle Engine (SLW) to restore the contents of some of the > Hypervisor state on wakeup from deep idle states that lose full > hypervisor context (characterized by the flag > OPAL_PM_LOSE_FULL_CONTEXT). > > However, the current code has a bug in that if opal_slw_set_reg() > fails, we don't disable the use of these deep states (winkle on > POWER8, stop4 onwards on POWER9). > > This patch fixes this bug by ensuring that if the the sleep winkle > engine is unable to restore the hypervisor states in > pnv_save_sprs_for_deep_states(), then we mark as invalid the states > which lose full context. > > As a side-effect, since supported_cpuidle_states in > pnv_probe_idle_states() consists of flags of only the valid states, > this patch will ensure that no other subsystem in the kernel can use > the states which lose full context on stop-api failures. Looks good. Is there something minimal we can do for stable here? Aside question, do we need to restore LPCR at all with the SLW engine? It gets set up again when by the idle wakeup code. And does POWER9 really need MSR and PSSCR restored by SLW? (going a bit off topic here, I'm just curious) Thanks, Nick