From patchwork Thu Nov 19 14:06:55 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Wallen, Carl \(Nokia - FI/Espoo\)" X-Patchwork-Id: 56997 Delivered-To: patch@linaro.org Received: by 10.112.155.196 with SMTP id vy4csp3200400lbb; Thu, 19 Nov 2015 06:07:16 -0800 (PST) X-Received: by 10.140.84.202 with SMTP id l68mr7140298qgd.21.1447942036593; Thu, 19 Nov 2015 06:07:16 -0800 (PST) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id f16si6813374qgd.120.2015.11.19.06.07.16; Thu, 19 Nov 2015 06:07:16 -0800 (PST) Received-SPF: pass (google.com: domain of lng-odp-bounces@lists.linaro.org designates 54.225.227.206 as permitted sender) client-ip=54.225.227.206; Authentication-Results: mx.google.com; spf=pass (google.com: domain of lng-odp-bounces@lists.linaro.org designates 54.225.227.206 as permitted sender) smtp.mailfrom=lng-odp-bounces@lists.linaro.org Received: by lists.linaro.org (Postfix, from userid 109) id 02BDB61A30; Thu, 19 Nov 2015 14:07:16 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on ip-10-142-244-252 X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, URIBL_BLOCKED autolearn=disabled version=3.4.0 Received: from [127.0.0.1] (localhost [127.0.0.1]) by lists.linaro.org (Postfix) with ESMTP id 74C3161A20; Thu, 19 Nov 2015 14:07:08 +0000 (UTC) X-Original-To: lng-odp@lists.linaro.org Delivered-To: lng-odp@lists.linaro.org Received: by lists.linaro.org (Postfix, from userid 109) id B6FF061A23; Thu, 19 Nov 2015 14:07:03 +0000 (UTC) Received: from demumfd002.nsn-inter.net (demumfd002.nsn-inter.net [93.183.12.31]) by lists.linaro.org (Postfix) with ESMTPS id ECDB5619CB for ; Thu, 19 Nov 2015 14:06:58 +0000 (UTC) Received: from demuprx016.emea.nsn-intra.net ([10.150.129.55]) by demumfd002.nsn-inter.net (8.15.2/8.15.2) with ESMTPS id tAJE6vXw022450 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 19 Nov 2015 14:06:57 GMT Received: from DEMUHTC003.nsn-intra.net ([10.159.42.34]) by demuprx016.emea.nsn-intra.net (8.12.11.20060308/8.12.11) with ESMTP id tAJE6uFm013938 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Thu, 19 Nov 2015 15:06:56 +0100 Received: from DEMUHTC011.nsn-intra.net (10.159.42.42) by DEMUHTC003.nsn-intra.net (10.159.42.34) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 19 Nov 2015 15:06:56 +0100 Received: from DEMUMBX012.nsn-intra.net ([169.254.12.87]) by DEMUHTC011.nsn-intra.net ([10.159.42.42]) with mapi id 14.03.0248.002; Thu, 19 Nov 2015 15:06:56 +0100 From: "Wallen, Carl (Nokia - FI/Espoo)" To: EXT Bill Fischofer Thread-Topic: [lng-odp] [PATCH 1/1] linux-generic: config: increase ODP_CONFIG_SCHED_GRPS to 256 Thread-Index: AQHRItBnIReB68HYjEy2p5BypMt4QZ6jW24A Date: Thu, 19 Nov 2015 14:06:55 +0000 Message-ID: <27228BE6FE51F54FBE6396D376D2BD71115596B0@DEMUMBX012.nsn-intra.net> References: <1447934283-28558-1-git-send-email-carl.wallen@nokia.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.159.42.105] MIME-Version: 1.0 X-purgate-type: clean X-purgate-Ad: Categorized by eleven eXpurgate (R) http://www.eleven.de X-purgate: clean X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate-size: 3598 X-purgate-ID: 151667::1447942017-000015C7-3FFE5F44/0/0 X-Topics: patch Cc: LNG ODP Mailman List Subject: Re: [lng-odp] [PATCH 1/1] linux-generic: config: increase ODP_CONFIG_SCHED_GRPS to 256 X-BeenThere: lng-odp@lists.linaro.org X-Mailman-Version: 2.1.16 Precedence: list List-Id: "The OpenDataPlane \(ODP\) List" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: lng-odp-bounces@lists.linaro.org Sender: "lng-odp" Hi, We have a use case where we need to create a queue for each core running, i.e. we need to create as many sched-groups (each with one unique bit set in the thrmask) as we have cores in the system and then create as many queues and tie them to each sched-group. This way we can create queues from which events are certain to be scheduled on a single core only. We use these "single core queues" to trigger e.g. control operations or functions that need to be run on each core. For this you would need as many sched-groups as you have cores + some additional more for whatever partitioning the application wants to do. Adding more sched-groups did not seem to impact performance, at least not when they were unused. I'm a bit worried about the case where you would have a large amount of cores running and use these "single-core queues" for internal management operations, thus meaning that events on them would be quite rare. Would the ODP scheduler (linux-generic at least) keep polling these queues for events all the time even if they are empty or is there some logic to only dequeue from queues that actually contain events? /carl From: EXT Bill Fischofer [mailto:bill.fischofer@linaro.org] Sent: Thursday, November 19, 2015 3:44 PM To: Wallen, Carl (Nokia - FI/Espoo) Cc: LNG ODP Mailman List Subject: Re: [lng-odp] [PATCH 1/1] linux-generic: config: increase ODP_CONFIG_SCHED_GRPS to 256 No problem with picking a "good" number, but curious as to what the use case is for this proposed increase. On Thu, Nov 19, 2015 at 5:58 AM, Carl Wallen wrote: Increase the ODP_CONFIG_SCHED_GRPS define from 16 to 256 to support a larger number of scheduling groups by default. Signed-off-by: Carl Wallen ---  platform/linux-generic/include/odp/config.h | 2 +-  1 file changed, 1 insertion(+), 1 deletion(-) -- 2.1.4 _______________________________________________ lng-odp mailing list lng-odp@lists.linaro.org https://lists.linaro.org/mailman/listinfo/lng-odp Reviewed-by: Bill Fischofer diff --git a/platform/linux-generic/include/odp/config.h b/platform/linux-generic/include/odp/config.h index ee23df3..da8856f 100644 --- a/platform/linux-generic/include/odp/config.h +++ b/platform/linux-generic/include/odp/config.h @@ -61,7 +61,7 @@ static inline int odp_config_sched_prios(void)  /**   * Number of scheduling groups   */ -#define ODP_CONFIG_SCHED_GRPS 16 +#define ODP_CONFIG_SCHED_GRPS 256  static inline int odp_config_sched_grps(void)  {         return ODP_CONFIG_SCHED_GRPS;