Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752674AbdHGJNc (ORCPT ); Mon, 7 Aug 2017 05:13:32 -0400 Received: from bombadil.infradead.org ([65.50.211.133]:37010 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752331AbdHGJNb (ORCPT ); Mon, 7 Aug 2017 05:13:31 -0400 Date: Mon, 7 Aug 2017 11:13:26 +0200 From: Peter Zijlstra To: Alexey Budankov Cc: Ingo Molnar , Arnaldo Carvalho de Melo , Alexander Shishkin , Andi Kleen , Kan Liang , Dmitri Prokhorov , Valery Cherepennikov , Mark Rutland , Stephane Eranian , David Carrillo-Cisneros , linux-kernel Subject: Re: [PATCH v6 1/3] perf/core: use rb trees for pinned/flexible groups Message-ID: <20170807091326.5e3iec54ninmeyex@hirez.programming.kicks-ass.net> References: <96c7776f-1f17-a39e-23e9-658596216d6b@linux.intel.com> <20170803130002.oatczvnaalplrsep@hirez.programming.kicks-ass.net> <86cbe0b0-a1ec-4d5f-addc-87bccf2e97d7@linux.intel.com> <20170804143628.34c2xqxl2e6k2arj@hirez.programming.kicks-ass.net> <9d2e25c9-209c-f28a-d601-d3f1a71f032f@linux.intel.com> <20170807083913.vfqmwsdzxsczh4yr@hirez.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170807083913.vfqmwsdzxsczh4yr@hirez.programming.kicks-ass.net> User-Agent: NeoMutt/20170609 (1.8.3) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1071 Lines: 24 On Mon, Aug 07, 2017 at 10:39:13AM +0200, Peter Zijlstra wrote: > On Mon, Aug 07, 2017 at 10:17:46AM +0300, Alexey Budankov wrote: > > Makes sense. The implementation becomes a bit simpler. The drawbacks > > may be several rotations of potentially big tree on the critical path, > > instead of updating four pointers in case of the tree of lists. > > Yes, but like said, it allows implementing a better scheduler than RR, > allowing us to fix rotation artifacts where task runtimes are near the > rotation window. > > A slightly more complicated, but also interested scheduling problem is > the per-cpu flexible vs the per-task flexible. Ideally we'd rotate them > at the same priority based on service, without strictly prioritizing the > per-cpu events. > > Again, that is something that should be possible once we have a more > capable event scheduler. > > > So yes, cons and pros.. :-) Also, I think for AVL tree you could do the erase and (re)insert combined and then rebalance in one go, not sure RB allows the same thing, but it might be fun looking into.