From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754342AbbKJQvz (ORCPT ); Tue, 10 Nov 2015 11:51:55 -0500 Received: from mga14.intel.com ([192.55.52.115]:31673 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754179AbbKJQvy (ORCPT ); Tue, 10 Nov 2015 11:51:54 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.20,271,1444719600"; d="scan'208";a="682277179" Date: Tue, 10 Nov 2015 08:50:55 -0800 From: Jacob Pan To: Peter Zijlstra Cc: LKML , Rafael Wysocki , Len Brown , Andi Kleen , Thomas Gleixner , Paul Turner , Tim Chen , Dietmar Eggemann , Eduardo Valentin , Punit Agrawal , Srinivas Pandruvada , jacob.jun.pan@linux.intel.com Subject: Re: [RFC PATCH v2 3/3] sched: introduce synchronized idle injection Message-ID: <20151110085055.67bdb1fa@icelake> In-Reply-To: <20151110163646.GG17308@twins.programming.kicks-ass.net> References: <1447114883-23851-1-git-send-email-jacob.jun.pan@linux.intel.com> <1447114883-23851-4-git-send-email-jacob.jun.pan@linux.intel.com> <20151110132324.GC17308@twins.programming.kicks-ass.net> <20151110060116.26cd5ff8@yairi> <20151110145823.GD17308@twins.programming.kicks-ass.net> <20151110082859.1493f106@icelake> <20151110163646.GG17308@twins.programming.kicks-ass.net> Organization: OTC X-Mailer: Claws Mail 3.9.3 (GTK+ 2.24.23; 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 On Tue, 10 Nov 2015 17:36:46 +0100 Peter Zijlstra wrote: > > The downside is that we need to restart the timers every time if > > user were to change injection parameters, i.e. duration and percent. > > Or do locking which might be too expensive. In the previous > > approach, it will naturally catch up the parameter change. > > Why? the timer will fire and observe the new value for reprogramming > the next period. All you need to do is to ensure whole values are > written/read -- ie. avoid load/store tearing. Different per CPU timer may intercept parameter changes at slightly different time, so there is a race condition such that some CPUs may catch the period change later by one period, which results in a correct period change but at a different time, i.e. out of sync. Jacob