From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751777AbbCXWGn (ORCPT ); Tue, 24 Mar 2015 18:06:43 -0400 Received: from mail-am1on0066.outbound.protection.outlook.com ([157.56.112.66]:34016 "EHLO emea01-am1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752068AbbCXWGm (ORCPT ); Tue, 24 Mar 2015 18:06:42 -0400 Message-ID: <5511DFE2.4010605@ezchip.com> Date: Tue, 24 Mar 2015 18:06:26 -0400 From: Chris Metcalf User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 MIME-Version: 1.0 To: Peter Zijlstra CC: , Ingo Molnar , "Paul E. McKenney" , Thomas Gleixner , Frederic Weisbecker Subject: Re: [PATCH 1/4] tile: support arch_irq_work_raise References: <1427224895-30830-1-git-send-email-cmetcalf@ezchip.com> <1427224895-30830-2-git-send-email-cmetcalf@ezchip.com> <20150324211406.GB27490@worktop.programming.kicks-ass.net> In-Reply-To: <20150324211406.GB27490@worktop.programming.kicks-ass.net> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [173.76.21.154] X-ClientProxiedBy: DM2PR11CA0002.namprd11.prod.outlook.com (25.160.91.12) To AM3PR02MB0533.eurprd02.prod.outlook.com (25.160.6.139) Authentication-Results: gmail.com; dkim=none (message not signed) header.d=none; X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AM3PR02MB0533; X-Microsoft-Antispam-PRVS: X-Forefront-Antispam-Report: BMV:1;SFV:NSPM;SFS:(10009020)(6009001)(6049001)(377454003)(479174004)(51704005)(2950100001)(86362001)(19580395003)(110136001)(83506001)(92566002)(66066001)(19580405001)(62966003)(77156002)(65956001)(47776003)(65806001)(42186005)(50986999)(87976001)(80316001)(65816999)(54356999)(87266999)(40100003)(59896002)(46102003)(64126003)(15975445007)(122386002)(23746002)(76176999)(33656002)(36756003)(50466002)(77096005)(117156001)(18886065003);DIR:OUT;SFP:1101;SCL:1;SRVR:AM3PR02MB0533;H:[192.168.1.160];FPR:;SPF:None;MLV:sfv;LANG:en; X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(5005006)(5002010);SRVR:AM3PR02MB0533;BCL:0;PCL:0;RULEID:;SRVR:AM3PR02MB0533; X-Forefront-PRVS: 0525BB0ADF X-OriginatorOrg: ezchip.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2015 22:06:38.1206 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM3PR02MB0533 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 3/24/2015 5:14 PM, Peter Zijlstra wrote: > On Tue, Mar 24, 2015 at 03:21:32PM -0400, cmetcalf@ezchip.com wrote: >> From: Chris Metcalf >> >> Tile includes a hypervisor hook to deliver messages to arbitrary >> tiles, so we can use that to raise an interrupt as soon as >> possible on our own core. Unfortunately the Tilera hypervisor >> disabled that support on principle in previous releases, but >> it will be available in MDE 4.3.4 and later. > Can you program a timer in the (recent) past which will instantly > trigger an interrupt? This is what PPC64 does to implement the self-ipi. I looked in git history a bit and see commit 105988c015943 from 2009, which looks like it was the basis for the powerpc support. I'm a little leery of just randomly changing the in-flight timer decrementer value, though; does the timer event_handler properly handle being called early, and then properly handle resetting the decrementer to the right value? I guess if both of those things are true, it seems plausible to adopt the approach you suggested. On the other hand, the approach I coded up avoids making any of those slightly scary assumptions about the timer subsystem, and I don't really have a problem with saying you need a recent Tilera hypervisor binary if you want to use NOHZ_FULL... -- Chris Metcalf, EZChip Semiconductor http://www.ezchip.com