Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp109954pxf; Tue, 6 Apr 2021 16:32:35 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzW2e46zb+WmXweiPSG9oQkKi9WlSxQjyix8nSO8WM2w89GBvJkB+fq1mpoh3fmNQozcppP X-Received: by 2002:a17:907:720a:: with SMTP id dr10mr488737ejc.375.1617751955166; Tue, 06 Apr 2021 16:32:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617751955; cv=none; d=google.com; s=arc-20160816; b=Zg6lcTc/yoDYdxJPCRZ8vXHhhnDR8YopMdPBYgk5g3HRtHwV2pzs2zP65H9V4QIvqd Xq2u7aDhKSgOPhZF3PZlFOd8US8YM6d+QztbYtpC0e0fIpftC2wNljUM2FIBnJquJ3MM +uKtuSkdd4nTxJRuhAPQ+KhzLbHb9TXK/1KYnKf2kWNFRN9H/q6mjVwoSC3j1gWXnbjF tKKmn6LZ74C43j6Ejq4Wg1H5f7LMvrvo1FdmLl20VaJ3WRYIPKPCab7nL/AwYhzpkSaV damr+KVEHreuODuBnKj61gQu3eworGNhdB8QNIXe1IMRIOlrP966lJzY7w6o189QS5Y8 bndQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=GqwLT9earkXIj3mKLKZrj+6hWxt8NrgkmSJhRhhjzAo=; b=J8kJXy3TCwU/Ir9lblwO04nn1CB2t96JR9UnwsvPVAdpTFfJzPGAPZ7mQdc6IRBEnG aM8AFWvnbMbrCbNmWZmHV5DsSgAmeHiNupvOCzkF8CSA101zbcKQ9/77GYVqziJQEvYb 89hRI/Bi9zzqMqean47Yss71FCxB3zvfyuIek/R+9YUahf2h/cI3WruDg41ja4vMxtkx ZhRtc8KdKVpEjC+a60WS9qO1PpXtz0hikDzKpY5c+BfF1ydLN6hb2LbjiGdzyfXOQ110 U+dbrAw9BfPTDHAY/NMcn0l2SDBbxtaPF9d1t+HDmajAAFqtFnhh4qwYRRkATtOdnoSe vfDg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=sDnJNWn7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ga26si1764629ejc.301.2021.04.06.16.32.12; Tue, 06 Apr 2021 16:32:35 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=sDnJNWn7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234097AbhDFKl5 (ORCPT + 99 others); Tue, 6 Apr 2021 06:41:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49424 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229787AbhDFKl4 (ORCPT ); Tue, 6 Apr 2021 06:41:56 -0400 Received: from mail-il1-x134.google.com (mail-il1-x134.google.com [IPv6:2607:f8b0:4864:20::134]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 11753C06174A; Tue, 6 Apr 2021 03:41:48 -0700 (PDT) Received: by mail-il1-x134.google.com with SMTP id d10so12627510ils.5; Tue, 06 Apr 2021 03:41:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=GqwLT9earkXIj3mKLKZrj+6hWxt8NrgkmSJhRhhjzAo=; b=sDnJNWn7Z2IewJKMiE7LngPEyfOX1AUQyJ0/yucjC1+WUEHGez3FNZiO1u+0F7ImG1 2Cr2fS5v7V0g9ngBry9FuUmHNlVlwzXRf0WiAHde/ELtWf0HzHTb+9m2XxMidarWJPps eyQhIoNXARE28XD0qH9X5KnHbMNFQpxQk5HjF/lFvstqUdThh8nluS1zJM2/xF8lyWsN IKeaHgcD5c0ElpMhaegCTBGULOApasFOiZCFWe05Hd05JkNmoig2DOX5foPSflk5/sHj VA6+arofL8TsPQeGHQ1x94clDQAYcR++1nVte7Vrrbpyf4NvDmKFMrcAxUNdrgFETFeF 4Cbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=GqwLT9earkXIj3mKLKZrj+6hWxt8NrgkmSJhRhhjzAo=; b=JHEs2h1DxYgjhz97vhDLV3DF3BrEkktxQEA9Ue0EUtbEmrnPSrwN+yy3q4vGKy8gjw S/Ngac0UC2YlutFiofNEBzSe11P/+eC/IxI6ykSSQ1bYqmrlZ2h6WxrqZS5RkhpGAsX5 lpxeUXVHTohWbysCUb2TE0h5OiRH0uzd30hD3cXxK7gk/aLeHLqiAhziTChGBVyiThEx Tp4KC5Myc1zaKVTso6ilOS0pdcH+Nu4zV5OZQaWzeQFHe7DO6UWkLTtcsZIcmwNW528n /w45/TTfWONuXAThYHCuJIJRk1ifJWfjl2LkDHja0f6U/PRG/I7q0N1X9wRxEuXN9wEw SPkg== X-Gm-Message-State: AOAM531pAJsDYtwByPlhXwu6YRPSlP4hM63uFdleoaLAk/q6eamXnZ39 1HroBeCz9cncRYFObpv6bfVA+sS2uqtCyZ52jmQ= X-Received: by 2002:a92:7f03:: with SMTP id a3mr23311252ild.203.1617705707486; Tue, 06 Apr 2021 03:41:47 -0700 (PDT) MIME-Version: 1.0 References: <20210327101254.56872-1-laoar.shao@gmail.com> In-Reply-To: <20210327101254.56872-1-laoar.shao@gmail.com> From: Yafang Shao Date: Tue, 6 Apr 2021 18:41:11 +0800 Message-ID: Subject: Re: [PATCH v2 0/6] sched: support schedstats for RT sched class To: Mel Gorman , Ingo Molnar , Peter Zijlstra , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Benjamin Segall , bristot@redhat.com Cc: LKML , linux-rt-users@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, Mar 27, 2021 at 6:13 PM Yafang Shao wrote: > > We want to measure the latency of RT tasks in our production > environment with schedstats facility, but currently schedstats is only > supported for fair sched class. In order to support if for other sched > classes, we should make it independent of fair sched class. The struct > sched_statistics is the schedular statistics of a task_struct or a > task_group, both of which are independent of sched class. So we can move > struct sched_statistics into struct task_struct and struct task_group to > achieve the goal. > > After the patchset, schestats are orgnized as follows, > struct task_struct { > ... > struct sched_statistics statistics; > ... > struct sched_entity *se; > struct sched_rt_entity *rt; > ... > }; > > struct task_group { |---> stats[0] : of CPU0 > ... | > struct sched_statistics **stats; --|---> stats[1] : of CPU1 > ... | > |---> stats[n] : of CPUn > #ifdef CONFIG_FAIR_GROUP_SCHED > struct sched_entity **se; > #endif > #ifdef CONFIG_RT_GROUP_SCHED > struct sched_rt_entity **rt_se; > #endif > ... > }; > > The sched_statistics members may be frequently modified when schedstats is > enabled, in order to avoid impacting on random data which may in the same > cacheline with them, the struct sched_statistics is defined as cacheline > aligned. > > Then we can use schedstats to trace RT tasks as well, for example, > Interface File > task schedstats : /proc/[pid]/sched > group schedstats: /proc/sched_debug > tracepoints : sched:sched_stat_{runtime, wait, sleep, iowait, blocked} > > As PATCH #2 and #3 changes the core struct in the scheduler, so I did > 'perf bench sched pipe' to measure the sched performance before and after > the change, suggested by Mel. Below is the data, which are all in > usecs/op. > Before After > kernel.sched_schedstats=0 6.0~6.1 6.0~6.1 > kernel.sched_schedstats=1 6.2~6.4 6.2~6.4 > No obvious difference after the change. > > Changes since v1: > - Fix the build failure reported by kernel test robot. > - Add the performance data with 'perf bench sched pipe', suggested by > Mel. > - Make the struct sched_statistics cacheline aligned. > - Introduce task block time in schedstats > > Changes since RFC: > - improvement of schedstats helpers, per Mel. > - make struct schedstats independent of fair sched class > > Yafang Shao (6): > sched, fair: use __schedstat_set() in set_next_entity() > sched: make struct sched_statistics independent of fair sched class > sched: make schedstats helpers independent of fair sched class > sched: introduce task block time in schedstats > sched, rt: support sched_stat_runtime tracepoint for RT sched class > sched, rt: support schedstats for RT sched class > > include/linux/sched.h | 7 +- > kernel/sched/core.c | 24 +++-- > kernel/sched/deadline.c | 4 +- > kernel/sched/debug.c | 90 +++++++++-------- > kernel/sched/fair.c | 210 ++++++++++++++++----------------------- > kernel/sched/rt.c | 143 +++++++++++++++++++++++++- > kernel/sched/sched.h | 3 + > kernel/sched/stats.c | 104 +++++++++++++++++++ > kernel/sched/stats.h | 89 +++++++++++++++++ > kernel/sched/stop_task.c | 4 +- > 10 files changed, 489 insertions(+), 189 deletions(-) > > -- > 2.18.2 > Peter, Ingo, Mel, Any comments on this version ? -- Thanks Yafang