From patchwork Mon Jun 18 14:47:34 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 138983 Delivered-To: patch@linaro.org Received: by 2002:a2e:970d:0:0:0:0:0 with SMTP id r13-v6csp4041742lji; Mon, 18 Jun 2018 07:48:12 -0700 (PDT) X-Google-Smtp-Source: ADUXVKIcGlY/ma2U62f5mx/7uuJ7ip4xH/YfvknNk7EaMTWpRqabZkZsgd2lR0dziDoC7D9bug4X X-Received: by 2002:a17:902:7406:: with SMTP id g6-v6mr14241686pll.90.1529333292029; Mon, 18 Jun 2018 07:48:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1529333292; cv=none; d=google.com; s=arc-20160816; b=GAH/hzt0G/YPpNPLzwBZROzrz5OqhjDhhyux90THXV+HrEK8Pu9SKjrqjxi0lSkTBc Md1az+fwTAUau+NWTqs/S3SfdeIkvfya3ZgQIqfX1BxK14oH2EoYKGhBnrmcB6dU5yzt IVKVRRqNq11BrwCCklGydzvpRAh1MqdFJrOWvsL9qdfJ99wbMj/k6GVRe61+4DBZ7E6V eg9FfGhIQm/kxMmz5JTzS3Z7sStRXtH2sSbYWYbyqGr5JeJB1TOnbhHu5VaZ+7/eIHjz McROPPTllrDO9sMSVCaqysPJ9hqTwGaUjZCRo+opjb7LU4ilS7u/tcazoCktnD5LZDnV ubwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=fbsmSpW/nlNWZcylKJUKwdmyUmuWkLm0+2lXCEInPMM=; b=ohgY/EsQDQSP7H5j75FzeIJHu4ZKp8wgcygq59btrQPIMKa++0RsyNLaJYq8prTJgF EDl8hHE++e2HRS8SW8I3WY/Nj1wOkTddSbrO8VQZUern4gyxBTEucxV/6CILrzwBrmMx y//L0xKYZZbgx3lqHswcK5I8Aq6amJevOxaCkaJS4E0w+MySL1t3/yWRoF9v1oznH/sL F+qciAvMd9otE34NtdlEJt1mfF8v3eEZbhUgE3pjrs0R8642FNgSC35qfUUVobvMTu2b JFEdn+WShu0ISf8sWxsEO8PUAPA/z2yTYDyhe8mbDGLjir5Ec8X3Pib28otcZ7NPsULi Zu4Q== ARC-Authentication-Results: i=1; mx.google.com; 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 b26-v6si12070437pgw.394.2018.06.18.07.48.11; Mon, 18 Jun 2018 07:48:12 -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; 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 S935289AbeFROsK (ORCPT + 30 others); Mon, 18 Jun 2018 10:48:10 -0400 Received: from mout.kundenserver.de ([212.227.126.135]:59631 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934657AbeFROsH (ORCPT ); Mon, 18 Jun 2018 10:48:07 -0400 Received: from wuerfel.lan ([95.208.111.237]) by mrelayeu.kundenserver.de (mreue001 [212.227.15.129]) with ESMTPA (Nemesis) id 0MYoWQ-1fhYW21AcU-00VOfw; Mon, 18 Jun 2018 16:47:44 +0200 From: Arnd Bergmann To: Davidlohr Bueso , "Paul E. McKenney" , Josh Triplett Cc: Arnd Bergmann , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Kees Cook , linux-kernel@vger.kernel.org Subject: [PATCH] rcutorture: use monotonic timestamp for stall detection Date: Mon, 18 Jun 2018 16:47:34 +0200 Message-Id: <20180618144741.339763-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K1:vHQmKBVQmbjqX8hGvUq/PTs0ZFDIM5QqFCxlcg2mhhWAPtLJ9II fkd61PAsHo2zVj7qQmvN+ga5P/M/q/G8SBWoA31j79z7IPGnleZt89uEtZOe+vcse0TbUVu jwz1TtGZso2CILqUwug7ZuLe4Lb72KEZaXfRvogvE0fp82i74uEMuOp/Ms+q06AeUWvfRgP 0GrLwyJVD0F/8s+ZGl5cA== X-UI-Out-Filterresults: notjunk:1; V01:K0:VeRCssyuIjo=:LGtcUsmCIH6anEfa61ggIW W1IDusg/Jt0sLr9uu47yIZhjp3LtdU9fv3fC69iajy7qlTUSLpRLipTL4/cyuspxJHWZ0HnPk 6cBCFFALtIZVo4N3ff10aL72WPw3emC+vzlheiwJ/FI4KoZ9oZeKXtZ7CApqiR9kvzEAplaQy 8EQZhaC9GIrep1UhV7PlmskWZanupMxhzrV5aaZKiMvzVbJYVVQzxAcjYUQ1YJ/6mDZfZGF3i vVuA4wxC7VdsxCd7gKseZdadVyop2NI0PDT4mdZoQ2tNmH3wGCI/hn8DggaA7hmkeGnvHWV2Y dFDQwdmRNttR/sl99PcCXVuG1jEoETx2r30RaQrQLcQwgsYKBCfu/ftv90NjRAUsXdZVpNm0R sC2UGK2AlQc8mt3vSAv8YaXz7why169qg31moaN2weH27+HGvJC79106SqqdkMY4/De5G7vUx jgkZj//EM5WKlSj9xvcH5rb25YUeHrfi0hOESv+PTlhyBwFL6ZfqlLUxjhNea37D6IIvRRxql mE7OgTzy4qMMMZEZaSvwq/De1Sy7BQPROvAcZbLh6wpoIscySAgEFY5tLcccRZ93lzbrLdR+a bhb3drQPTFREFUOtPDGr4eap2acXXdZFy6woHiom3LomwcGyjj8DgdJQDGhyM5Wf17Bjmo7ez XuyHGr3QuuVQ4NlJJEgI94XmfWNsG9x9Wc82xmEpJlmNWoVeNko+7qCY7+gZR+Z2Mvfk= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The get_seconds() call is deprecated because it overflows on 32-bit architectures. The algorithm in rcu_torture_stall() can deal with the overflow, but another problem here is that using a CLOCK_REALTIME stamp can lead to a false-positive stall warning when a settimeofday() happens concurrently. Using ktime_get_seconds() instead avoids those issues and will never overflow. The added cast to 'unsigned long' however is necessary to make ULONG_CMP_LT() work correctly. Signed-off-by: Arnd Bergmann --- kernel/rcu/rcutorture.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) -- 2.9.0 diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c index 42fcb7f05fac..f42cf69ef539 100644 --- a/kernel/rcu/rcutorture.c +++ b/kernel/rcu/rcutorture.c @@ -1446,7 +1446,7 @@ static int rcu_torture_stall(void *args) VERBOSE_TOROUT_STRING("rcu_torture_stall end holdoff"); } if (!kthread_should_stop()) { - stop_at = get_seconds() + stall_cpu; + stop_at = ktime_get_seconds() + stall_cpu; /* RCU CPU stall is expected behavior in following code. */ rcu_read_lock(); if (stall_cpu_irqsoff) @@ -1455,7 +1455,8 @@ static int rcu_torture_stall(void *args) preempt_disable(); pr_alert("rcu_torture_stall start on CPU %d.\n", smp_processor_id()); - while (ULONG_CMP_LT(get_seconds(), stop_at)) + while (ULONG_CMP_LT((unsigned long)ktime_get_seconds(), + stop_at)) continue; /* Induce RCU CPU stall warning. */ if (stall_cpu_irqsoff) local_irq_enable();