From patchwork Mon May 13 10:29:49 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Lezcano X-Patchwork-Id: 164022 Delivered-To: patch@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp1141700ili; Mon, 13 May 2019 03:30:39 -0700 (PDT) X-Google-Smtp-Source: APXvYqx/91PlYfR3K5snZmrd1T74o1NAbV8iGORP9AlOwrbHzXMYUJZ+q2EU5FDjcjw7XXGLRZCR X-Received: by 2002:a17:902:46a:: with SMTP id 97mr1317100ple.66.1557743439507; Mon, 13 May 2019 03:30:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557743439; cv=none; d=google.com; s=arc-20160816; b=PDpjXjB+18vHCjjxrvuSt1RQslQDlwG50CdVGkTH28Uo/uRmPko+Rmv+tIOEExV4/A dhs7/Bv8g9KU3Md86+/w8+sqdojpH1uOdQYcMC9+QBxUpaFqsk84MywIZ3AhH+gNwZtk 1kSVSg60pExW4wmMB2HOckdc18vr5O2y8Dc62lZCxv1h4MVKWOkOcDZJ0wTfkPIczzTO AzIDMq+9Z0o4UbZYCIQlbCnB4quV2mXlgbdWB1P6Wjd5o3WL1TFldV/F1w8/7xhBqlpf CLkLo5/ynluEdxh7xPw9zgAYkadVVj7B8KcK6jurDNsYkUBcXlPbF2+38P2c2o6huPu0 URSA== 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; bh=D2Cp7f/Qid/by7EIC98tg3BbhOaVwQta3p5eP2Mz3hQ=; b=ZphBE3mcQQgIg3Jps29GQcPcbyd7Y2KaCi2cm4mtUneIokYVZKOxqzQWqb+Rz9CzWW g7k5jawC67oWEIPYKJE/EP/Vmx92bs4OR1zVyYJHWEb4+jYiopZzUdkszq7XtihuBkTj 6QvJjOc9PLYLimzO24S9kt+l3B64mkoJvZVL3IOImAygTarB9oQJkuXBt92wvLJ866ZO ajb/O82tnLUlOZnHlTKtji21pdu7QcigBNVBYUBq8az19NXYa9/WZXe0DjUfSymF6gbn 4MtIXS0dl9XfAykzWNJwRL0HWrAKpthd10IgJDiGa7E7uL9nAGRMrwIdAp1zDT7dlnhn 5P2w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=awxf1rKt; 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=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 101si16141471plb.31.2019.05.13.03.30.39; Mon, 13 May 2019 03:30:39 -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=@linaro.org header.s=google header.b=awxf1rKt; 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=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728958AbfEMKah (ORCPT + 30 others); Mon, 13 May 2019 06:30:37 -0400 Received: from mail-wm1-f68.google.com ([209.85.128.68]:35524 "EHLO mail-wm1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728577AbfEMKaM (ORCPT ); Mon, 13 May 2019 06:30:12 -0400 Received: by mail-wm1-f68.google.com with SMTP id q15so9123031wmj.0 for ; Mon, 13 May 2019 03:30:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=D2Cp7f/Qid/by7EIC98tg3BbhOaVwQta3p5eP2Mz3hQ=; b=awxf1rKt8shPIXHZraJS5fZLFnvTaFd4ypRimyn0+syJg+6YCdK0vkQQlGZQihWiQy dqfVHq4IkzUVyycEPEa4ZBl6vbWhscuLOoDnGbLvYXjeFB8Fd9sHi7YyKQvZyNfiQuCA nM7B6V7jiHiTwCNjbFrIOmt4Tp/yfW9HmHIftGpSL0dsqmOioOjr1fOdIde3cfNaUlU6 C9DIsFk3CeRtIlH42aMxIyIf52SwHnR7GhNm8ewuStu+WPnDRleG+PDhyWER297fLOOQ Vn2X4zTxbPOi20sbh6657KOHQOoux9sogvJ86Bi+v3Vv6jY74nN9I9BIV7wEVi/eRlCk qU3g== 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=D2Cp7f/Qid/by7EIC98tg3BbhOaVwQta3p5eP2Mz3hQ=; b=fZHcHOqdBL4DvmwACh80J6zfs1vVrYmJD2SgEPv9KCuy/R3VFy+GrG2AKB8y/c1LJl itLUDx5T6lL/7B0rjOvIGAYkJtoPfi5MJZi4PQELVuQT0XZQPQTs+F5wmi9Yo89SWHmd Lon8G75B1iFByMxACOZRF9UAwyOzqaTNsQAct48ei4CjdHsjNmJkaw+w2xDS8/tF1IcE yQQA2M/QhFkEQINCDWuefQdAs8uSFIcIc3ZMSPFALJWdRnkVSoAQZliHooI6L1BkYQLj LhjcUn/f4P5goMUPu2PcqJu55gpukbPh04XyrlADyeXi0qlpeQo5TQckxzS5M9Oo3q4R YULQ== X-Gm-Message-State: APjAAAWfv2nfNdeBR0AciwD0CfWfQ166wDHlxsOdlfPJhyr2gKX2RKe6 xr3roNI6iiVpcKcUrcuyxUDrRTbAe9Q= X-Received: by 2002:a05:600c:230a:: with SMTP id 10mr2020296wmo.13.1557743409981; Mon, 13 May 2019 03:30:09 -0700 (PDT) Received: from clegane.local (205.29.129.77.rev.sfr.net. [77.129.29.205]) by smtp.gmail.com with ESMTPSA id v192sm13645238wme.24.2019.05.13.03.30.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 13 May 2019 03:30:09 -0700 (PDT) From: Daniel Lezcano To: tglx@linutronix.de Cc: linux-kernel@vger.kernel.org Subject: [PATCH 5/9] genirq/timings: Encapsulate timings push Date: Mon, 13 May 2019 12:29:49 +0200 Message-Id: <20190513102953.16424-6-daniel.lezcano@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190513102953.16424-1-daniel.lezcano@linaro.org> References: <20190513102953.16424-1-daniel.lezcano@linaro.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org For the next patches providing the selftest, we do want to artificially insert timings value in the circular buffer in order to check the correctness of the code. Encapsulate the common code between the future test code and the current with an always-inline tag. No functional change. Signed-off-by: Daniel Lezcano --- kernel/irq/internals.h | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) -- 2.17.1 diff --git a/kernel/irq/internals.h b/kernel/irq/internals.h index 70c3053bc1f6..21f9927ff5ad 100644 --- a/kernel/irq/internals.h +++ b/kernel/irq/internals.h @@ -354,6 +354,16 @@ static inline int irq_timing_decode(u64 value, u64 *timestamp) return value & U16_MAX; } +static __always_inline void irq_timings_push(u64 ts, int irq) +{ + struct irq_timings *timings = this_cpu_ptr(&irq_timings); + + timings->values[timings->count & IRQ_TIMINGS_MASK] = + irq_timing_encode(ts, irq); + + timings->count++; +} + /* * The function record_irq_time is only called in one place in the * interrupts handler. We want this function always inline so the code @@ -367,15 +377,8 @@ static __always_inline void record_irq_time(struct irq_desc *desc) if (!static_branch_likely(&irq_timing_enabled)) return; - if (desc->istate & IRQS_TIMINGS) { - struct irq_timings *timings = this_cpu_ptr(&irq_timings); - - timings->values[timings->count & IRQ_TIMINGS_MASK] = - irq_timing_encode(local_clock(), - irq_desc_get_irq(desc)); - - timings->count++; - } + if (desc->istate & IRQS_TIMINGS) + irq_timings_push(local_clock(), irq_desc_get_irq(desc)); } #else static inline void irq_remove_timings(struct irq_desc *desc) {}