From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752265AbdCAJpV (ORCPT ); Wed, 1 Mar 2017 04:45:21 -0500 Received: from merlin.infradead.org ([205.233.59.134]:39506 "EHLO merlin.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751468AbdCAJoM (ORCPT ); Wed, 1 Mar 2017 04:44:12 -0500 Date: Wed, 1 Mar 2017 10:44:09 +0100 From: Peter Zijlstra To: Steven Rostedt Cc: LKML , Ingo Molnar , Thomas Gleixner , Andrew Morton , Clark Williams , Daniel Bristot de Oliveira Subject: Re: [PATCH v2] sched/rt: Add comments describing the RT IPI pull method Message-ID: <20170301094409.GB6515@twins.programming.kicks-ass.net> References: <20170228155030.30c69068@gandalf.local.home> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170228155030.30c69068@gandalf.local.home> User-Agent: Mutt/1.5.23.1 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Feb 28, 2017 at 03:50:30PM -0500, Steven Rostedt wrote: > + * The overloaded RT CPU, wher receiving an IPI, will try to push off its "wher" isn't in my dictionary, I'm thinking you mean: "when". Fixed that for you. > + * overloaded RT tasks and then send an IPI to the next CPU that has > + * overloaded RT tasks. This stops when all CPUs with overloaded RT tasks > + * have completed. Just because a CPU may have pushed off its own overloaded > + * RT task does not mean it should stop sending the IPI around to other > + * overloaded CPUs. There may be another RT task waiting to run on one of > + * those CPUs that are of higher priority than the one that was just > + * pushed. > + * > + * An optimization that could possibly be made is to make a CPU array similar > + * to the cpupri array mask of all running RT tasks, but for the overloaded > + * case, then the IPI could be sent to only the CPU with the highest priority > + * RT task waiting, and that CPU could send off further IPIs to the CPU with > + * the next highest waiting task. Since the overloaded case is much less likely > + * to happen, the complexity of this implementation may not be worth it. > + * Instead, just send an IPI around to all overloaded CPUs. Yeah, not sure, I'll leave it in though.