Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp3962628imm; Thu, 17 May 2018 19:00:46 -0700 (PDT) X-Google-Smtp-Source: AB8JxZrN3P2741fDagFpj/FzqoVt9YUVcHdu9hkuzdjqaV4KCcD7BZpuUS8d/+cRaaFh+69Zoxak X-Received: by 2002:a62:3f4e:: with SMTP id m75-v6mr7304327pfa.176.1526608846741; Thu, 17 May 2018 19:00:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526608846; cv=none; d=google.com; s=arc-20160816; b=Uo2H8VITAfeVCLP4AnsuNtaY5glC/cPiIEG0OKvOCwTP+pksMwteeoIHDTTSUNHEVJ pIFAn6akDqHx8XQ6TzMfOPiZUjEdj33m6fij9Mk5NVVGfonfJfj5mzR4MBb/lX2tn3to YpmIlB314yz5gdOKklM86sdJ9JdgOs5kVYvEXIrerlthkNeGJSpxQHXSq+8Z23qEgjgY B3W3W+h6Gu+zYKpOSKFL6dI9UqEcHz/oKVwrydIHBOwumppg2n9Vi8V+Aj2YgzTKZCfB +SomvHHTCLwapmfn/diPaBK6FleT7ZWBegtW6/Da+EbUcf9AQsQRZPIs5aucXVEwcLlg whjQ== 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=ETc6nvSwRMOGlRimIre+2B/vo6QsBnSxzSKML6GEf/8=; b=vzPYwH8zK1q8dTJ9DMXfkhAgG1ZFCfVrAyQYxT/6UZhf8gZ4sh22GJ1H1/1Rp0k0LV qZlsY8rERkCvOYuBJykcj3KpDEgkPI2xNrZjQ7huHvNfOzpbURW9VGXPM4Y/UK/feaYJ /N9qcmocypZH61HG2ei4tQR5h0OpxYkeySU3REwQUSbtbje51aU+N4Suzlcdy36ctzzc p+mV8RF3WrA5au92loexpZTY/ZNrnOpvXW0PxAlWnwZayug/uJFNlTcYmmmJqXGoe3rF uQzsIiy3lmd348ghpxChiiQsLX8/RwiFZAfVvbVNIWtxnt9F+2cm3wxgd/QaNgve4OCR 1VhA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=Bm1aOVso; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l18-v6si6431268pfe.299.2018.05.17.19.00.32; Thu, 17 May 2018 19:00:46 -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=@google.com header.s=20161025 header.b=Bm1aOVso; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752366AbeERB75 (ORCPT + 99 others); Thu, 17 May 2018 21:59:57 -0400 Received: from mail-pl0-f66.google.com ([209.85.160.66]:43275 "EHLO mail-pl0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751815AbeERB7L (ORCPT ); Thu, 17 May 2018 21:59:11 -0400 Received: by mail-pl0-f66.google.com with SMTP id c41-v6so3620396plj.10 for ; Thu, 17 May 2018 18:59:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=ETc6nvSwRMOGlRimIre+2B/vo6QsBnSxzSKML6GEf/8=; b=Bm1aOVso09OcCyu2fQz9Gg7F4fx305js6Omqb5u+OHcPSwmiy6vGjKhw5JNd54hmMy qOcc0z+5BSdyas5KUBkbsdgs22vmpehegkbXA6Ov07jf02TFnVMqq9iHqB+IJN6WUmO7 gJgZmAxvcwKzdcB29SZGIa3TgmCmjlZgWBo8uepU3FbfJmYpTr8TRG+3bqmgFPcLIsf2 cJeozPqOAwMAC74DMzd6mqWi5U/JyErM41gWSgTe97sikbahceFvl7LS4X6XbEnE3dJW hYXqOGqsVFm9woMlqhVc8zPtgURwKTY+q/C9lR2JLtd4WuFeNIJFJbAQqyUg4A47ZrtO 1rqQ== 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=ETc6nvSwRMOGlRimIre+2B/vo6QsBnSxzSKML6GEf/8=; b=kB80mkQ16wQpI7O0lA44y+ypWFJ7VJyDNpxM39v+blL6lMNcMeucaqVP+hPRzq8Aka Vz054jeGQeaxxBROHS7yAss6p9MMtyhWOp70OLCnSne7mHkXC/kpU2VuoR/68O84UKsa 8bCw+y7WpqD7DMIzMjT28BGtX8JN03M0hzsTuc5WPILA27j2YkiOpi+rT/xVmxaV5zre 80wTr9cJwCvp8kk9sPFYNGh88FQIHPFRRtL94jx0XUXKrdNqJ6fI8M4zVreLlr1fNPEt 6kBkT5h3wgO1/RpeWvLtObj3wZSfKrnQ0faFKUbpaPdWDrRI14OnT66/cbXuU1v9HoPk pmzg== X-Gm-Message-State: ALKqPwdRi5z4hI2du6Z02wS9J7x5ZguTC5rItxz8cnfyX9zOVxKpDrN6 YgrX6ERFtYodcipAE1McqTOMMSaX3+E= X-Received: by 2002:a17:902:ba87:: with SMTP id k7-v6mr7540884pls.193.1526608750225; Thu, 17 May 2018 18:59:10 -0700 (PDT) Received: from joelaf.mtv.corp.google.com ([2620:0:1000:1600:3122:ea9c:d178:eb]) by smtp.gmail.com with ESMTPSA id y24-v6sm11506817pfn.23.2018.05.17.18.59.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 17 May 2018 18:59:09 -0700 (PDT) From: Joel Fernandes 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:59:02 -0700 Message-Id: <20180518015902.131427-3-joelaf@google.com> X-Mailer: git-send-email 2.17.0.441.gb46fe60e1d-goog In-Reply-To: <20180518015902.131427-1-joelaf@google.com> References: <20180518015902.131427-1-joelaf@google.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: "Joel Fernandes (Google)" 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