Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp3959846imm; Thu, 17 May 2018 18:56:26 -0700 (PDT) X-Google-Smtp-Source: AB8JxZpEwDOmcJEVthOvWkkrL2cf8kaEimAF9gQdYVUyRuu6/aAwD6KfBeoxeUl66wB6CYRK08Y+ X-Received: by 2002:a65:4b02:: with SMTP id r2-v6mr5790257pgq.82.1526608586446; Thu, 17 May 2018 18:56:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526608586; cv=none; d=google.com; s=arc-20160816; b=DOZbg4lr1RtwQMstDrD0yI4SL8M5EJjUG+nN/4fvIZjaSTO1ya74QNCuQgLRSvlrc9 aS86awNt/AbJ+CVcHVeH93u5ZgrZiH4ef2lunX42tWiw9+lqLDoqMWDoLK2B+jnc3Vt2 BeuiEICMwaUm3dt4Jvs+E912dcKCy/Si48r+GniZAai2SVHAXkEzXUfZBeRoogl/I3NS 5pDoqSHgvM79fUSU4hZnH1JZy+1aVP4MeCyl1DyTZvCzf52B9W+jGK9Lk7LI/ec2EwoP o7kwzVULA5a2sG9DcubexOG3YXuijaS1+jX2XBboHnx/WtGoCqXCZUueTYXdXVgrwVUU edOA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=oiJrY3XHdAzwzG6f2UFObjYdAH/zLunyJZdYy6a7aLY=; b=VawFZiY3P1RV4ECUwcvjS3XcdbQ8fhslDanhcw7DJ6BMTi2qq9CapYI0aVx3Xs4BHx OeUuiW5GZdXRlp7Q2PKe83p7fufd/1F6IqwZ9KWefLRVO2aAaBwnTtSu81QBW0Iz4QDS AWJlz5NKhJxXe31nYWxUF0Y9WbrFXzyNhhnS4/zTTNSQvDdFieG7iqK1+ihi8rZbXugb XqvhRQAkI/dDaXpMqLBUNCYjsV+NB0pAPa1RnZJ6dNOeZhxdNb73lpvAFYRC/HOaB4Yj WXTbh+Gpe7XL18rVs8IdkMjhsMAGu7NRr35la+dqIqJQpzv2cAN6NehLmCHgSM+5hwDT 6jwQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@joelfernandes.org header.s=google header.b=mye8F7/7; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 3-v6si6666079plf.84.2018.05.17.18.56.12; Thu, 17 May 2018 18:56:26 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@joelfernandes.org header.s=google header.b=mye8F7/7; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752174AbeERBye (ORCPT + 99 others); Thu, 17 May 2018 21:54:34 -0400 Received: from mail-pg0-f67.google.com ([74.125.83.67]:37837 "EHLO mail-pg0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751695AbeERByd (ORCPT ); Thu, 17 May 2018 21:54:33 -0400 Received: by mail-pg0-f67.google.com with SMTP id a13-v6so2604727pgu.4 for ; Thu, 17 May 2018 18:54:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=joelfernandes.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=oiJrY3XHdAzwzG6f2UFObjYdAH/zLunyJZdYy6a7aLY=; b=mye8F7/7qEcFV3IAO68L/byp6KpYotgCy7uWplvX80k8dxf0FY5vsIdoLVbz+W7dRq psgkPUVJCptDBf4+3zyRGbRbpF/D+EXBMlCI0+yOsmUaAYum20DsDq8LT4qWCZybk30Z YYCimVYMjygl8OG4OXgDF0Uc8gjYnn1MH8NxA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=oiJrY3XHdAzwzG6f2UFObjYdAH/zLunyJZdYy6a7aLY=; b=IWU9YaD28fHO/S0DclybhclXKnftpP7RIXPodhNgCwskOAzdD6mzXGV8nXktSpURtZ p17/wgA70W5ugS+O9WFhNh6ykPQYYal7roGXetSUX/3LSim0qyNyASIVYnLYO/cjLkMO DcV/04znZoNUDCzeNq2DWSygzBVekHB1AT/HG0+h1HiN6dXXcFpYlfN5of30uY1tZQ0T Pxxq+JUPANeldjPwT0Fzj2lFtSx3qIepnBVkgsMF/E1VAyHueHbB3gxg/NujBdFW5M6B WbncVVn5VlUuVSVmfUctIPNArfT6/E6mdDW0kmEPb3uUNYxk6j2tWBu50kljzMZzutJh P48Q== X-Gm-Message-State: ALKqPwfxVqsdS8OXHDeaf5AvZZzg3CGn4M7kCu8UE0yncOISeiPPT2y/ OLPbyPjU3v7+ZV1NX7yuEvczDmqy3dE= X-Received: by 2002:a65:4a42:: with SMTP id a2-v6mr471615pgu.87.1526608472483; Thu, 17 May 2018 18:54:32 -0700 (PDT) Received: from joelaf.mtv.corp.google.com ([2620:0:1000:1600:3122:ea9c:d178:eb]) by smtp.gmail.com with ESMTPSA id z7-v6sm7500394pgp.74.2018.05.17.18.54.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 17 May 2018 18:54:31 -0700 (PDT) From: "Joel Fernandes (Google)" To: linux-kernel@vger.kernel.org Cc: "Joel Fernandes (Google)" , Steven Rostedt , Peter Zilstra , Ingo Molnar , Mathieu Desnoyers , Tom Zanussi , Namhyung Kim , Thomas Glexiner , Boqun Feng , Paul McKenney , Masami Hiramatsu , Todd Kjos , Erick Reyes , Julia Cartwright , kernel-team@android.com Subject: [PATCH 2/2] kselftests: ftrace: Add tests for the preemptoff and irqsoff tracers Date: Thu, 17 May 2018 18:54:21 -0700 Message-Id: <20180518015421.129868-3-joel@joelfernandes.org> X-Mailer: git-send-email 2.17.0.441.gb46fe60e1d-goog In-Reply-To: <20180518015421.129868-1-joel@joelfernandes.org> References: <20180518015421.129868-1-joel@joelfernandes.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Here we add unit tests for the preemptoff and irqsoff tracer by using a kernel module introduced previously to trigger atomic sections in the kernel. Cc: Steven Rostedt Cc: Peter Zilstra Cc: Ingo Molnar Cc: Mathieu Desnoyers Cc: Tom Zanussi Cc: Namhyung Kim Cc: Thomas Glexiner Cc: Boqun Feng Cc: Paul McKenney Cc: Masami Hiramatsu Cc: Todd Kjos Cc: Erick Reyes Cc: Julia Cartwright Cc: kernel-team@android.com Signed-off-by: Joel Fernandes (Google) --- tools/testing/selftests/ftrace/config | 3 + .../test.d/preemptirq/irqsoff_tracer.tc | 74 +++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 tools/testing/selftests/ftrace/test.d/preemptirq/irqsoff_tracer.tc diff --git a/tools/testing/selftests/ftrace/config b/tools/testing/selftests/ftrace/config index b01924c71c09..29588b328345 100644 --- a/tools/testing/selftests/ftrace/config +++ b/tools/testing/selftests/ftrace/config @@ -4,3 +4,6 @@ CONFIG_FUNCTION_PROFILER=y CONFIG_TRACER_SNAPSHOT=y CONFIG_STACK_TRACER=y CONFIG_HIST_TRIGGERS=y +CONFIG_PREEMPT_TRACER=y +CONFIG_IRQSOFF_TRACER=y +CONFIG_TEST_ATOMIC_SECTIONS=m diff --git a/tools/testing/selftests/ftrace/test.d/preemptirq/irqsoff_tracer.tc b/tools/testing/selftests/ftrace/test.d/preemptirq/irqsoff_tracer.tc new file mode 100644 index 000000000000..b76d781c5645 --- /dev/null +++ b/tools/testing/selftests/ftrace/test.d/preemptirq/irqsoff_tracer.tc @@ -0,0 +1,74 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0 +# description: test for the preemptirqsoff tracer + +MOD=test_atomic_sections + +fail() { + reset_tracer + rmmod $MOD || true + exit_fail +} + +unsup() { #msg + reset_tracer + rmmod $MOD || true + echo $1 + exit_unsupported +} + +modprobe $MOD || unsup "$MOD module not available" +rmmod $MOD + +grep "preemptoff" available_tracers || unsup "preemptoff tracer not enabled" +grep "irqsoff" available_tracers || unsup "irqsoff tracer not enabled" + +reset_tracer + +# Simulate preemptoff section for half a second couple of times +echo preemptoff > current_tracer +sleep 1 +modprobe test_atomic_sections atomic_mode=preempt atomic_time=500000 || fail +rmmod test_atomic_sections || fail +modprobe test_atomic_sections atomic_mode=preempt atomic_time=500000 || fail +rmmod test_atomic_sections || fail +modprobe test_atomic_sections atomic_mode=preempt atomic_time=500000 || fail +rmmod test_atomic_sections || fail + +cat trace + +# Confirm which tracer +grep "tracer: preemptoff" trace || fail + +# Check the end of the section +egrep "5.....us : " trace || fail + +# Check for 500ms of latency +egrep "latency: 5..... us" trace || fail + +reset_tracer + +# Simulate irqsoff section for half a second couple of times +echo irqsoff > current_tracer +sleep 1 +modprobe test_atomic_sections atomic_mode=irq atomic_time=500000 || fail +rmmod test_atomic_sections || fail +modprobe test_atomic_sections atomic_mode=irq atomic_time=500000 || fail +rmmod test_atomic_sections || fail +modprobe test_atomic_sections atomic_mode=irq atomic_time=500000 || fail +rmmod test_atomic_sections || fail + +cat trace + +# Confirm which tracer +grep "tracer: irqsoff" trace || fail + +# Check the end of the section +egrep "5.....us : " trace || fail + +# Check for 500ms of latency +egrep "latency: 5..... us" trace || fail + +reset_tracer +exit 0 + -- 2.17.0.441.gb46fe60e1d-goog