Received: by 2002:a05:6358:11c7:b0:104:8066:f915 with SMTP id i7csp7959596rwl; Thu, 23 Mar 2023 10:43:25 -0700 (PDT) X-Google-Smtp-Source: AK7set+6HaD+pVgr2fofASIDx+bwqxR+aEuUPjN2W6SZciQxwPwmGHdSELifxXhDrK7lvFQ3CAjx X-Received: by 2002:a17:902:cec7:b0:1a1:956e:5417 with SMTP id d7-20020a170902cec700b001a1956e5417mr9066739plg.22.1679593405191; Thu, 23 Mar 2023 10:43:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679593405; cv=none; d=google.com; s=arc-20160816; b=oaOWuUIGO48eDmyw6spYAvjdA+bGkDKRpfQtRsiXgJ3qnOLUs9+40V75ESP3wQTysf vf0HgeUzIyxwOTLX/qPulF103FQYFNEAz6Y9E/F0yy6Bd3OfVc/PzaKzD4MamiV7NlWv SBLgqE/E+0VWmveH9oqx7T+sEfKs17embwX0iw2Y4CYKUFSX+09Lf27eHHTyUojl5txT tK7UEf3xGTq38ec16MeJ2MdWNI/30Oj0Fdt4wRxILJXNc+xgWg7CeM4AxGCMnzdFwfGN 0m9kjmx+c+UnIJqWfDtJWib1Cx3ZrhgdUFFkVgSXP1rvjqkmYJIenq2W2pBAvB2PRt1e Diww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=5Y3s4NslPbVa9CgDudDcI6zUApY+ckicM+Uc4hYlRjQ=; b=MDdO70gXizzO6OMcwH16ApabH3ESoyd08Bco4K9yoGLcGuaHyUXkJ7SSkr88Q6jZv0 jwgakAM30dhFDnYV3e5wLm5UiN5dUTbA7erB0bbYdT2x63TEJphBa/iSZtNvZz22fBz4 NGqFST9+RXEVcmsZGkD8DfyMtBtU0eCmp/DnPhsptjkSZGg9UB471dxT3peWEnCeUQNT fVjF1DEij+3P6f5iS8gFAZrvKqYSlxjJzC8bM2WW21ZzgwShEMppRNYeTT/DqFMVJ5RB AVA1xwP1YL/hOQriqNktGiNMSeHfIUVutKMmCG1XNH9SKl18SetXbrC0l9KI253nQD6+ QzRA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cmpxchg-org.20210112.gappssmtp.com header.s=20210112 header.b=cWHGd6qz; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=cmpxchg.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s6-20020a63ff46000000b005030a59a81dsi18981402pgk.159.2023.03.23.10.43.13; Thu, 23 Mar 2023 10:43:25 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@cmpxchg-org.20210112.gappssmtp.com header.s=20210112 header.b=cWHGd6qz; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=cmpxchg.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231190AbjCWRlW (ORCPT + 99 others); Thu, 23 Mar 2023 13:41:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57052 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231153AbjCWRlC (ORCPT ); Thu, 23 Mar 2023 13:41:02 -0400 Received: from mail-qv1-xf2e.google.com (mail-qv1-xf2e.google.com [IPv6:2607:f8b0:4864:20::f2e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 170B431BE4 for ; Thu, 23 Mar 2023 10:40:55 -0700 (PDT) Received: by mail-qv1-xf2e.google.com with SMTP id o44so11669335qvo.4 for ; Thu, 23 Mar 2023 10:40:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20210112.gappssmtp.com; s=20210112; t=1679593254; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=5Y3s4NslPbVa9CgDudDcI6zUApY+ckicM+Uc4hYlRjQ=; b=cWHGd6qzEtImZZbDg+a5Y/P1Pufk7JMjmoHHmJBJgBRYPFjwpwpfYsJYoofXWheD8X wuDyv5MhlDkRy3YGtJttk5O6dXI2K+Jmrp8nMbgT38dfi6jqqMxfS2zrNayXhkA1dwcq uqz1winULzQ0nPMv1drtNKMqTn4pO/WomyQjzlDT3PwZpcZtFLdvKDQRWWJQH3PBl7xF xRxjehD1Tn7YLs3IyChW+sU0IyfSUVc3Vn+GJuMnJe4sWgr9VQAHEJw5y3Eu5RczVR4T th3vZQAUvwnXKKFAmk7Ar/mnnViByqaUqhtBmNAcct5SzqF0IZxuQVjlqQGHLM4Z169a ElDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679593254; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=5Y3s4NslPbVa9CgDudDcI6zUApY+ckicM+Uc4hYlRjQ=; b=jgHSHGF610QrjnY8GHTWInzaJv8b4u5rJSpcjHI+8PqC2kJPMq3yLAr+xzPbnZhuon M/vn0j00UE46B5EhsuJt+IYSO868bqRSRCLuq5u/yLm2JzH7o/Jcvu+9G4jko49G2Fcg QNZYTWT1yid0ow3+6BkhYJdLtrq53zW/Zlv8jCIzCT3tjZwfW1G8/GC7KrFIlmbtMUbW UhEfNL8INCrAXAbm2Waksg5Se4jfZOGcRAmZjR3BUh19YpWQGnLGe/KmLT6YmoBELXmX RKlI4xj4Gqmy9UtLc/Copty5eeDBDay4s5GenScTv5pUgmhZGME7T46Ic2M9W1Q9O6DO mc6Q== X-Gm-Message-State: AO0yUKUzZBTHpJoGuV2LLmn2BFvQC3YLYjTVc8PAhLDTit3LXAunNrhm RQFvdEWxiMyhDvgxtpDX3oW5ig== X-Received: by 2002:ad4:5bc8:0:b0:5ba:168d:d406 with SMTP id t8-20020ad45bc8000000b005ba168dd406mr12297580qvt.38.1679593253961; Thu, 23 Mar 2023 10:40:53 -0700 (PDT) Received: from localhost ([2620:10d:c091:400::5:62db]) by smtp.gmail.com with ESMTPSA id m9-20020a0cbf09000000b005dd8b9345eesm1551qvi.134.2023.03.23.10.40.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Mar 2023 10:40:53 -0700 (PDT) Date: Thu, 23 Mar 2023 13:40:52 -0400 From: Johannes Weiner To: Suren Baghdasaryan Cc: Domenico Cerasuolo , linux-kernel@vger.kernel.org, peterz@infradead.org, brauner@kernel.org, chris@chrisdown.name Subject: Re: [PATCH v2 3/3] sched/psi: allow unprivileged polling of N*2s period Message-ID: <20230323174052.GG739026@cmpxchg.org> References: <20230323103350.40569-1-cerasuolodomenico@gmail.com> <20230323103350.40569-4-cerasuolodomenico@gmail.com> <20230323150939.GA737760@cmpxchg.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Spam-Status: No, score=0.0 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Mar 23, 2023 at 09:43:16AM -0700, Suren Baghdasaryan wrote: > On Thu, Mar 23, 2023 at 8:09 AM Johannes Weiner wrote: > > > > On Thu, Mar 23, 2023 at 11:33:50AM +0100, Domenico Cerasuolo wrote: > > > @@ -151,6 +151,14 @@ struct psi_trigger { > > > > > > /* Deferred event(s) from previous ratelimit window */ > > > bool pending_event; > > > + > > > + /* Used to differentiate destruction action*/ > > > + enum psi_aggregators aggregator; > > > +}; > > > + > > > +struct trigger_info { > > > + struct list_head triggers; > > > + u32 nr_triggers[NR_PSI_STATES - 1]; > > > }; > > > > > > struct psi_group { > > > @@ -186,8 +194,7 @@ struct psi_group { > > > struct mutex trigger_lock; > > > > > > /* Configured polling triggers */ > > > - struct list_head triggers; > > > - u32 nr_triggers[NR_PSI_STATES - 1]; > > > + struct trigger_info trig_info[NR_PSI_AGGREGATORS]; > > > u32 poll_states; > > > u64 poll_min_period; > > > > Thanks for trying out this variant, but I think this is grouping up > > unrelated things, and that makes the code more difficult to understand > > and maintan. > > > > The *only* thing that's shared between those two is the > > update_triggers() part. trig_info[PSI_AVGS] doesn't use trigger_lock. > > It also doesn't use poll_task, poll_wait, poll_wakeup, poll_scheduled, > > poll_min_period, polling_next_update and polling_until. All these > > things are specific to the rt polling thread. > > > > The rename in the previous version is a bit churny, but it's justified > > in order to keep unrelated things separate / make it obvious which > > parts belong together, and who is reading and writing which fields. > > > > So my vote would be on the previous version. > > Hmm. Ok, but then I would suggest keeping RT trigger naming as is and > calling the new triggers based on averages as > avg_triggers/avg_nr_triggers/etc. This would limit the churn and since > we already have polling_total and avg_total, this naming would be > appropriate IMO. If we want to be even stricter, we could rename the > polling variables to poll_triggers/poll_nr_triggers/etc. Some more > churn but then the names are very distinct. IIRC Domenico had that in an earlier internal version. That was still confusing because both sets of members are used for polling, not just the rt-thread bits. I suggested to rename them all to make it clear which poll bits are for the rt thread and which ones are from the aggregator thread. IMO code clarity trumps churn avoidance here.