From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751893AbbDNGAB (ORCPT ); Tue, 14 Apr 2015 02:00:01 -0400 Received: from e35.co.us.ibm.com ([32.97.110.153]:44071 "EHLO e35.co.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750992AbbDNF7w (ORCPT ); Tue, 14 Apr 2015 01:59:52 -0400 Message-ID: <552CACD2.5060600@linux.vnet.ibm.com> Date: Tue, 14 Apr 2015 11:29:46 +0530 From: Preeti U Murthy User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: "Shreyas B. Prabhu" , linux-kernel@vger.kernel.org, Michael Ellerman CC: linuxppc-dev@lists.ozlabs.org Subject: Re: [PATCH v4 3/3] powerpc/powernv: Introduce sysfs control for fastsleep workaround behavior References: <1428976613-13007-1-git-send-email-shreyas@linux.vnet.ibm.com> <1428976613-13007-4-git-send-email-shreyas@linux.vnet.ibm.com> In-Reply-To: <1428976613-13007-4-git-send-email-shreyas@linux.vnet.ibm.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 15041405-0013-0000-0000-00000A07CBDA Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Shreyas, On 04/14/2015 07:26 AM, Shreyas B. Prabhu wrote: > Fastsleep is one of the idle state which cpuidle subsystem currently > uses on power8 machines. In this state L2 cache is brought down to a > threshold voltage. Therefore when the core is in fastsleep, the > communication between L2 and L3 needs to be fenced. But there is a bug > in the current power8 chips surrounding this fencing. > > OPAL provides a workaround which precludes the possibility of hitting > this bug. But running with this workaround applied causes checkstop > if any correctable error in L2 cache directory is detected. Hence OPAL > also provides a way to undo the workaround. > > In the existing implementation, workaround is applied by the last thread > of the core entering fastsleep and undone by the first thread waking up. > But this has a performance cost. These OPAL calls account for roughly > 4000 cycles everytime the core has to enter or wakeup from fastsleep. > > This patch introduces a sysfs attribute (fastsleep_workaround_state) > to choose the behavior of this workaround. > > By default, fastsleep_workaround_state = dynamic. In this case, workaround > is applied/undone everytime the core enters/exits fastsleep. > > fastsleep_workaround_state = applyonce. In this case the workaround is > applied once on all the cores and never undone. This can be triggered by > echo applyonce > /sys/devices/system/cpu/fastsleep_workaround_state I was wondering if we really need such an elaborate design for this sysfs file. Why not a sysfs file called fastsleep_workaround_apply_once, which is set to '0' by default and the only value that it can take is '1' ? The name easily implies that the workaround is applied only once if it is set. I can see that this can cut down a good chunk of code from this patch. I just didn't find too much value in having so much code for a simple 'on' knob. Regards Preeti U Murthy