From patchwork Fri Jun 30 17:10:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Hilber X-Patchwork-Id: 114837 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10561826vqr; Fri, 30 Jun 2023 11:05:15 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4jBaa4HXSx40cEnCW1L+cQVWVJrnyW40U3tIOCc/+eZqmFFs2lUea+ETQMTTWf67HNKpFm X-Received: by 2002:a05:6a20:3b99:b0:128:f513:55ed with SMTP id b25-20020a056a203b9900b00128f51355edmr2528237pzh.54.1688148315238; Fri, 30 Jun 2023 11:05:15 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1688148315; cv=pass; d=google.com; s=arc-20160816; b=iL3O8RF0q9MvNWPU3dy59/qcbrUjCQ1cqhOaiq/7weMuoLLBR3wxV9AnliX4tVF6Cx xSq84S1YbjI+CWk0sUzZgQHVz428QmkVThcObvYap9wbZff4rrg+7ufHStOq3TxEWOzJ i5SnEzr4+0y8M91lLW2mGal6dV37bhtj7lat4exHPkAFF+fMSiWsIYx23wXVlCVW9sM6 E6aUGJGZ4OrHAZJLwFtQ8hgiP5wxOY2JyHoUo0cJeFfW75sGqvvzTYlNoeAbJD9u1Mfb bI32mu32b4dNF1vwjFPDxsOfLaqPEYLD3d4YmizQGCccKwVJAwZsaRFvVxBKQCjn2k4l HYLA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:dkim-signature:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from; bh=vXN+mcxHCBD/Bc+55O++gwMaslKK7ehhRDriFCoeY88=; fh=peIHtHFjDbOExqtAIMJ/4G9JW3QvjLOZfOj48e1nq60=; b=rAmn3qNi9srlxuGgHe0Ku5IJKrDfnkrNUVHDStUygMsIDepMjJyASZmSR8VAy2AiBn N788jS57GM2Mg6aynoX8SDrvliiQ2IRGo+u+sCqP6kgJLlbixUj23l3Knjx32j1YQuud 7h92VQG95n061ae0dZnB7khANynD5joO3PYgZ8Iffmg9QcvvZz+3Hfyo1a2AXFb+byB0 srigmHdJ47qIJJntIrjMVW1UQuCd7Z/N5sf0ZDlSUcmidPO+IRbrZixMDhvjjLVQVq1p 1kl94j5Rs4aR+wfY3COfgtJiYdpafebCmI/U7lce+FEESXpDGdiCcVuQdcUcwEO3v6uD vEDQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=fail header.i=@opensynergy.com header.s=TM-DKIM-20210503141657 header.b=t3mhNt+7; arc=pass (i=1 spf=pass spfdomain=opensynergy.com dmarc=pass fromdomain=opensynergy.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=opensynergy.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id a5-20020a056a001d0500b00666b1fb841dsi10175178pfx.7.2023.06.30.11.05.02; Fri, 30 Jun 2023 11:05:15 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@opensynergy.com header.s=TM-DKIM-20210503141657 header.b=t3mhNt+7; arc=pass (i=1 spf=pass spfdomain=opensynergy.com dmarc=pass fromdomain=opensynergy.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=opensynergy.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232613AbjF3RdS (ORCPT + 99 others); Fri, 30 Jun 2023 13:33:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47180 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232757AbjF3RdN (ORCPT ); Fri, 30 Jun 2023 13:33:13 -0400 Received: from refb01.tmes.trendmicro.eu (refb01.tmes.trendmicro.eu [18.185.115.54]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 877211FE7 for ; Fri, 30 Jun 2023 10:33:11 -0700 (PDT) Received: from 104.47.11.170_.trendmicro.com (unknown [172.21.19.48]) by refb01.tmes.trendmicro.eu (Postfix) with ESMTPS id EAF6C10A25576 for ; Fri, 30 Jun 2023 17:12:30 +0000 (UTC) Received: from 104.47.11.170_.trendmicro.com (unknown [172.21.178.36]) by repost01.tmes.trendmicro.eu (Postfix) with SMTP id 07BB810000D10; Fri, 30 Jun 2023 17:12:29 +0000 (UTC) X-TM-MAIL-RECEIVED-TIME: 1688145148.576000 X-TM-MAIL-UUID: 86f23f87-e04d-4cef-a032-bf5c1ece3099 Received: from DEU01-FR2-obe.outbound.protection.outlook.com (unknown [104.47.11.170]) by repre01.tmes.trendmicro.eu (Trend Micro Email Security) with ESMTPS id 8CD0D10000E20; Fri, 30 Jun 2023 17:12:28 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T5PDywLNPEoByCJScO2ZE12/BW2HdxlMPe3UdVNys8IHumrRMmCofYh9wWvdcr6G5dqjvEEgCxIRZe7vTanbn7jieSxYRmah0fC1EjglRHeitOYiTDPlFpQ1In/qk0wTMc/UibbLJ+wtB5cOmf6DdomAkvk4XcWHuOy0UEg1QDd1lTxd31EZ6pqqmP/ycUuB6zqO6DrQNZeoup5vgc0/HbeB+Ddki5/DpbDAADFcO+6WaDK8TokxO2elf/H8XJsryT+3Zbq9QwFJjgKBFJDENFEQ0ykpsLMUMGFIca7fjG8HUkvEAxwD4caHulC1k2aHkzGVVah0MIhiRnrGzAYJdw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=vXN+mcxHCBD/Bc+55O++gwMaslKK7ehhRDriFCoeY88=; b=fZr06qRyjL0y8Vohph4xOAthjoz1OiUVTnQT8DSzvkkwZ7o7pUrdepRkfv3mtcTTxx+/clKGE7FRzWJoq7gkeQ5BoRLdzTKil/s9D8oCRA7yR1VyjccnkEomqKvXSyjvs5GnFH/DhoD27DAxFBD7oHZl/8UfpBO2+ilWiJKVIThvM4LiBXvLMr1kyZMpQVbmkY8VPUix4Qv/QWVM55mPGq/rVKg4eMaqF7CBSLmHYceZtHo5oG4OGzxvh7GgIlSMwaRo6i8YegT1n8NbOfdWR37mGEGiEuuO/dPR6uBlj9pjpWGs3pSnhw/T6vuAdCp7l2kaGnZ7R0W7KeCeVAXz+w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 217.66.60.4) smtp.rcpttodomain=google.com smtp.mailfrom=opensynergy.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=opensynergy.com; dkim=none (message not signed); arc=none X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 217.66.60.4) smtp.mailfrom=opensynergy.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=opensynergy.com; Received-SPF: Pass (protection.outlook.com: domain of opensynergy.com designates 217.66.60.4 as permitted sender) receiver=protection.outlook.com; client-ip=217.66.60.4; helo=SR-MAIL-03.open-synergy.com; pr=C From: Peter Hilber To: linux-kernel@vger.kernel.org Cc: Peter Hilber , John Stultz , Thomas Gleixner , Stephen Boyd , "Christopher S. Hall" Subject: [RFC PATCH 1/7] timekeeping: Fix cross-timestamp interpolation on counter wrap Date: Fri, 30 Jun 2023 19:10:44 +0200 Message-Id: <20230630171052.985577-2-peter.hilber@opensynergy.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230630171052.985577-1-peter.hilber@opensynergy.com> References: <20230630171052.985577-1-peter.hilber@opensynergy.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB8EUR05FT036:EE_|FRYP281MB2106:EE_ X-MS-Office365-Filtering-Correlation-Id: a56cb0b6-6348-47c2-3cf9-08db798d2e35 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ub4xbx8gL3Xf4qnFyZgrn9+pByovhq+rsSihZQ/5deL1bqyvrg8E1LVopGtunXCPujPA320KrUEPYpxZYQBNd0s4oDoEymutiPAHo1UdTbRZgBcAjXR/O0T02VgPV9+hYT72vZriKhjVHW1WRevUxP9FPui7gRXDEVpvrBUVh9PssPgcWeBrp/RvxtbtgLzLg5abDRdBaieumEVnVGqkJ3uvrsIG814puc10S/om0HlKBpwaU7MLopEnes5tE1zrkjW5jcDTusUPkSnHBSBVZBuMEdkRXzHUSR1/Q/KQqtGsWeq3H6YQv9KxZsJWTF7iLUWELR4tRks7XEVNU4yXFs0LWyXgTdMq754G12H5/8W+l0Kz37g7he5I5ayuDvDgN07Z2OdxXw0ph1u9Z8EYS043b3cDcXENQCDnHfC+4cA2j1dAZeF//CcgSONkjHkl4qyjedw/sur2sUBJxDINqTYbYS6pbjuVAlaEf5nTRGibqREol3G1kLd3gKR9amm1tnoqLApIJLHt/5KsWWs27rH3JYLUh+DgnbaAiB2GDPIDEu6tddpXTAZfQWODR8mvDNC/3tK4gIR0Rm8rLx9+UJZjvXiSpIhboq51vrwoh3s76fPwaMziCFUKO4vh6YcNBzqkSScAZh2/7MMuXjoXFR1RNGNerm+fJyGSTnmX2KWbc6nbS+5A1dsDinNTrzwjATRh/5QUUWB4Zur2e4qe2Ibsu803bo+WIA/7pIpVBdpchvhcR8zuwG7/HeRTtHrAZW4z2vCvu56tUmdaXcgKkw== X-Forefront-Antispam-Report: CIP:217.66.60.4;CTRY:DE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SR-MAIL-03.open-synergy.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230028)(376002)(396003)(39840400004)(136003)(346002)(451199021)(46966006)(36840700001)(86362001)(54906003)(8936002)(8676002)(5660300002)(82310400005)(26005)(44832011)(1076003)(478600001)(6916009)(4326008)(70206006)(70586007)(41300700001)(316002)(42186006)(186003)(2616005)(2906002)(4744005)(47076005)(83380400001)(336012)(36860700001)(40480700001)(36756003)(81166007)(36900700001);DIR:OUT;SFP:1102; X-OriginatorOrg: opensynergy.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jun 2023 17:12:27.4554 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a56cb0b6-6348-47c2-3cf9-08db798d2e35 X-MS-Exchange-CrossTenant-Id: 800fae25-9b1b-4edc-993d-c939c4e84a64 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=800fae25-9b1b-4edc-993d-c939c4e84a64;Ip=[217.66.60.4];Helo=[SR-MAIL-03.open-synergy.com] X-MS-Exchange-CrossTenant-AuthSource: DB8EUR05FT036.eop-eur05.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: FRYP281MB2106 X-TM-AS-ERS: 104.47.11.170-0.0.0.0 X-TMASE-Version: StarCloud-1.3-9.1.1011-27724.001 X-TMASE-Result: 10--2.538700-4.000000 X-TMASE-MatchedRID: SVm/7o6CSMO6TyUO/xKZhTakEkBtr136rutCeVh17xk7dRmDCUrvToyD IPOAt5xjKy3tE1HfkQHDxsdOfchH340cVCEiK1Pf0pUa1RtpyoMqq8hD1DGRIOU0ANNKseCVi8+ IGr+Jb3Uyk/Hw4XN9jTDfSGFUeim/x10k8QqyoAwRLjqoJJt/9Ye8/oJiio9KA3+iPIxcfrY69F U9T760azOhN3RGo1v1NMyO/nomWfCAp+J3UCS7tJfmvpdxWEjowcHhVE1atjtxZskk+1rr0wD2c Tn+TrXw X-TMASE-XGENCLOUD: 04980225-2de2-4c51-a9ba-2ac3d94fe891-0-0-200-0 X-TM-Deliver-Signature: 8A49E00382A2AA2D967A2786A772B5E2 X-TM-Addin-Auth: R5IOi/pDqqAVg65gh0FlFR2xaV1lHVp8faf0lFZ1rN5Zer5q7PeLxG8r1pu 0sMKwNZ/xEGe5kuSsll6h4+tUMi1c1H1RnKvLMjGZ0w8v3y/tkx9svkJASeEmkQKBnd4zo8dIEs DzJPGq3QgEjNlOjFaqtWMtui2/LOB0EpMAVPsQ+KtRVYgISrVLnx/EMVJuq6FkbEg7NuVgUbvi8 ALBRk3L5TtuW1T6S8OXaIdoLWTbDo4fSfKwIycDJnxrlLylycFbnqlGbsE9kRZXUm5TE+FIIt7R CHRNq4KhHmj0CRQ=.gAHxG/GY+BbIZvt/xoHYcRtWP2oBWhH/QBlvxnoo13JFOmMR1/bnB8madT +/NN82fHG/rAGfOGUi0BFqSUxCC6iY6uR8QpRAVWORhwt0JWVKvBpGW6O4P+gMrxIM2Y1lulCDx maGZlp3TY7sZ8zylMzWrpSx/p/k4rnanudhPW5pOwL6xfqbnfHaKc6C4Zk7H938zUgCi/zeFdYm RfAUIBfBu/C1kwHx8NDqed4bo/ScVfvm+g9jYEiN4TyZVntSnJGGGCjViV0MHgJk6K5+qEoB6yF sJEVCbXgexFGLPGGWbG91oNvRviFQF9beGBl1iSgj1NgEMRBubC0WpI6Cog== X-TM-Addin-ProductCode: EMS DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opensynergy.com; s=TM-DKIM-20210503141657; t=1688145148; bh=KJ7jdUAF6nQwrGeh3TA5XMiM4xrWxyEC0N2xmTiFGAg=; l=991; h=From:To:Date; b=t3mhNt+7SLp07gRdKR5fSDttFdItnUSqNJxsBl1dY3kmyVSMnllDRvtu5mCWRktUe 8Fbh7XgsvH0JyXKB0sKSs7O6AEiYJBA0pzKyN+8Bvs6pRglvjerRRPL9j6aJvmAnae F2B64CK2d+65P/GxAJOjjLLLF6nf7Vk1w2g6x8P3wErQwJEcPKK2d+rBQprSNNWFxi CPOauH/E810SF0szXxv6YZIdCKdQvUxnSSWJX5bp5tRgw2aSWIiq5D5oQDFBXWeT6V Abk2fUBaxRkSKjXMfY7QOTqcbDdsHaZzdZf+Ig24bP/3skjUziZhd4qR8pa3ECTMJn hDpGnkkniAhvw== X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_PASS, SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770151807955423728?= X-GMAIL-MSGID: =?utf-8?q?1770151807955423728?= cycle_between() decides whether get_device_system_crosststamp() will interpolate for older counter readings. cycle_between() yields wrong results for a counter wrap-around where after < before < test, and for the case after < test < before. Fix the comparison logic. Fixes: 2c756feb18d9 ("time: Add history to cross timestamp interface supporting slower devices") Signed-off-by: Peter Hilber Acked-by: John Stultz --- kernel/time/timekeeping.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index 266d02809dbb..8f35455b6250 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c @@ -1186,7 +1186,7 @@ static bool cycle_between(u64 before, u64 test, u64 after) { if (test > before && test < after) return true; - if (test < before && before > after) + if (before > after && (test > before || test < after)) return true; return false; } From patchwork Fri Jun 30 17:10:45 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Hilber X-Patchwork-Id: 114835 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10552233vqr; Fri, 30 Jun 2023 10:49:52 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4fW8d5g6gnll83oPS+F1SVZ+x8l1QS0N+LNhz6KKi+2ZJ7bZr1kHWnQ25U8+ywAJUzgn3e X-Received: by 2002:a05:6a20:1456:b0:127:72c3:6427 with SMTP id a22-20020a056a20145600b0012772c36427mr3886017pzi.2.1688147392162; Fri, 30 Jun 2023 10:49:52 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1688147392; cv=pass; d=google.com; s=arc-20160816; b=JkTyDsF4ZUo7anrxGRUV9krBngkPwJ+rZPNzR9DB/Do6EMTCNC01Y9nxoeNM1UpELw K5OI5Vp4VR7eVEO8s8JZX8fLI6TbvcrACUDn/e8iBvGS0CCMPrqXRDOmYZ/5+uInbS0P hV6xhnTYCM46CfjTFk+E1vURDuwPBBSMWf//cqHhBmaQCaYxKxJXwukTnKpDOJZfoD+v uPZUZEu+Nf0kVQl2GxGSNbvSYCIAQ0kzoZUZty1EzAurqh/L7KkwCbJBrrGsp7ZjJMxG XHvMaFhTY13HQFdHiHGNos8utYfxubShb/LUkbTw9CmjYYOsPRrOTngT/DEXKd+G4/9F PCIw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:dkim-signature:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from; bh=Q60tNdBmhsnchPnWNLACIYzfR/FeJ2vn169CHo43Ki8=; fh=peIHtHFjDbOExqtAIMJ/4G9JW3QvjLOZfOj48e1nq60=; b=jmbI7oWrpPO12tGJhbRtA/FzPdWA1W3n1YwmZTy1t6x7IxOQQ0QjocetWzcs079coY 65KNq6Z7X2i6RofDKZMJdxlrB8rA/0pEUhtyJfUtbsIVaW4HjuVptKHTk8djt1XBLZk1 JTxt5aFhtMQNUNcEMiuHSUgwhlPT8JkN02bDTx5EHxtFnpJ2lpDZS8PSXRGgMtZi+DcV 7p4OlSovsxNufwGwPTLED74XWnfzVm3Wn6/pH0MxuIpuxgJluhC9Fusno2ymR8b5Wiv0 kY/rGR7OLXSopfqkmQGDgTYgciy+ma8qOxY6qPpR8SUTUsU5Jm9gp1wacafJmas55I3x m1Gw== ARC-Authentication-Results: i=2; mx.google.com; dkim=fail header.i=@opensynergy.com header.s=TM-DKIM-20210503141657 header.b=ldpexf99; arc=pass (i=1 spf=pass spfdomain=opensynergy.com dmarc=pass fromdomain=opensynergy.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=opensynergy.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f50-20020a056a000b3200b00670db3b5032si10917289pfu.333.2023.06.30.10.49.37; Fri, 30 Jun 2023 10:49:52 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@opensynergy.com header.s=TM-DKIM-20210503141657 header.b=ldpexf99; arc=pass (i=1 spf=pass spfdomain=opensynergy.com dmarc=pass fromdomain=opensynergy.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=opensynergy.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232795AbjF3RdW (ORCPT + 99 others); Fri, 30 Jun 2023 13:33:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47180 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232744AbjF3RdP (ORCPT ); Fri, 30 Jun 2023 13:33:15 -0400 Received: from refb01.tmes.trendmicro.eu (refb01.tmes.trendmicro.eu [18.185.115.53]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 23AC7E6C for ; Fri, 30 Jun 2023 10:33:13 -0700 (PDT) Received: from 104.47.7.168_.trendmicro.com (unknown [172.21.19.58]) by refb01.tmes.trendmicro.eu (Postfix) with ESMTPS id B505810A258A1 for ; Fri, 30 Jun 2023 17:12:31 +0000 (UTC) Received: from 104.47.7.168_.trendmicro.com (unknown [172.21.199.100]) by repost01.tmes.trendmicro.eu (Postfix) with SMTP id 40E57100017BF; Fri, 30 Jun 2023 17:12:30 +0000 (UTC) X-TM-MAIL-RECEIVED-TIME: 1688145149.849000 X-TM-MAIL-UUID: 71dbd5db-74cf-45ce-a709-5fcf4c19fa38 Received: from DEU01-BE0-obe.outbound.protection.outlook.com (unknown [104.47.7.168]) by repre01.tmes.trendmicro.eu (Trend Micro Email Security) with ESMTPS id CF7A810000E23; Fri, 30 Jun 2023 17:12:29 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=htesn4jFwT0TKgU+LaT+mzqfGxvxEaHATF19aJxr/0zRNCPF9jiFPbi/Oxh2Xz6TxzrjhgNiKncXWXJ4b3Hnc3v1iOoQ0dzv8/TewC7dXloFhqREfULfsm0dbU0QwlvRoDtPyawZz8UcHUbK+AdTvjQvv9C8kbeg0V2fmsrmm58Rk8ffvnv2yvIY739Gxrl79DAkMqkMMOMQz1U8E+UCAslw0hRY1q2ha5Cn+FvMmp3rQNvmp5SKCZtdQPZvAfmo7rpuQE++1pHhtD62PvM5OAJQTbax48/M0lgk4yZJ/S9rz4gt/uiY5HR7e0oYab2OWpgbFzycaF+9r0jFX6Ukgg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Q60tNdBmhsnchPnWNLACIYzfR/FeJ2vn169CHo43Ki8=; b=NOY7mFPE23mPpAZ4DcrshFAuQoCymV4Qpg29Xlt+kDE7VvxWJSHVz+AsVQ8Y6vMyCDv8XzIgeUgzG56393hATueIuoKX0OOlKbFJqEg4SUSS6fxcdwRuBd3XRtBfHfR/C8GGFv4UCkT6GbI8GhDErLwwPYfp9d9YCZahZjoXDkij2tKtrQc8GK3GJj8yIqfDIXP5QavY+QLYj6hkf0R7iculLsSet4gELdRrqSKQbCB6/dfatl6I0/bCDRV2o8dLxsDoiXZ64I5IgvgJqlQ+8WIyT1O/J5vMeEHHpgFKFmiOZ9ktn05unQ/3DisS21Md40OqN5H3WoMnqDWZnrK+Mw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 217.66.60.4) smtp.rcpttodomain=google.com smtp.mailfrom=opensynergy.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=opensynergy.com; dkim=none (message not signed); arc=none X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 217.66.60.4) smtp.mailfrom=opensynergy.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=opensynergy.com; Received-SPF: Pass (protection.outlook.com: domain of opensynergy.com designates 217.66.60.4 as permitted sender) receiver=protection.outlook.com; client-ip=217.66.60.4; helo=SR-MAIL-03.open-synergy.com; pr=C From: Peter Hilber To: linux-kernel@vger.kernel.org Cc: Peter Hilber , John Stultz , Thomas Gleixner , Stephen Boyd , "Christopher S. Hall" Subject: [RFC PATCH 2/7] timekeeping: Fix cross-timestamp interpolation corner case decision Date: Fri, 30 Jun 2023 19:10:45 +0200 Message-Id: <20230630171052.985577-3-peter.hilber@opensynergy.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230630171052.985577-1-peter.hilber@opensynergy.com> References: <20230630171052.985577-1-peter.hilber@opensynergy.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB8EUR05FT043:EE_|BEZP281MB1879:EE_ X-MS-Office365-Filtering-Correlation-Id: ebcbff29-e16f-4686-b065-08db798d2e7f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /JRVLcZhO1vAL7O81m022CXTz7yvw8LI6wMvEOB+m9RgARhuABqMDn4OnaO/cYiJDrh7JAUyjbUDR+QqFiGwIpJFUhEufHVuOKCVtU/C+woVgDCLeElLmHdYdKwHqKUp7agQGxA8Azl91TfWDb1rR29WDq7Wx90hXcIPIbHY0B8SklE+Z7tzw8NJ7tIY2UXeDnX68wVpd1/lCKgSjALhVqdv23T0lXkSNLGZmouT7c/IdpErsFIQu4AhVZ83HN3kHkMrQ1izdPOZeGk+rYDQ1LiIzd12IXvU4KSCfQj52sTkqgMG0TR8eM2j0yFzSSZRpGLS3+2k1ah4r7AzDzXMWWp0JQEdhfOpU+DfFcDSxprTvDaIVfBjGHawg5qOLHx0LzE/6GxHv3I2x2yP3OR2ULybegd+U4H7XTGOW3/2gmw6ubabXrLywGVH2hyA5ggM5Yo1lvjkETBXjODmPUrc1sgtS6p3YVLjwlWF5WrA311nZP9XhpFoEkITzRTyzweIbl0sUzM5TdECsE0KuCmtvKsO95+8a0Ko0EiFnX3S1UjvzXQuem2IaDTod4EGqUIVQXzSYMVbe7PDqCNiBl4LJCmFhYw8j5gY0HEytNRKA2StVf+TbHPOalifx9Zm595JpWRE7YzPhNPejfIb0Qfs538ZtjxjfI1bzxfA8AF9Sc22M7yg/5SsVhvJJqL01T+6Mibv7rYaNn2yYboGUt24QOAFd2bTQzcYp3tgCU1cHabx1BVA9mMuD1m5XeOMNLUtZaF18CVy2ac+3G6POs7q7A== X-Forefront-Antispam-Report: CIP:217.66.60.4;CTRY:DE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SR-MAIL-03.open-synergy.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230028)(346002)(136003)(39840400004)(376002)(396003)(451199021)(36840700001)(46966006)(336012)(47076005)(83380400001)(2616005)(2906002)(81166007)(36860700001)(40480700001)(36756003)(8936002)(8676002)(82310400005)(5660300002)(86362001)(54906003)(41300700001)(6916009)(4326008)(70206006)(70586007)(316002)(478600001)(42186006)(186003)(44832011)(1076003)(26005)(36900700001);DIR:OUT;SFP:1102; X-OriginatorOrg: opensynergy.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jun 2023 17:12:27.9433 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ebcbff29-e16f-4686-b065-08db798d2e7f X-MS-Exchange-CrossTenant-Id: 800fae25-9b1b-4edc-993d-c939c4e84a64 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=800fae25-9b1b-4edc-993d-c939c4e84a64;Ip=[217.66.60.4];Helo=[SR-MAIL-03.open-synergy.com] X-MS-Exchange-CrossTenant-AuthSource: DB8EUR05FT043.eop-eur05.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BEZP281MB1879 X-TM-AS-ERS: 104.47.7.168-0.0.0.0 X-TMASE-Version: StarCloud-1.3-9.1.1011-27724.001 X-TMASE-Result: 10--7.750800-4.000000 X-TMASE-MatchedRID: 1XqbU0So2KXeBLQRDW0C4eI/SZYjZQvVuxdWEFKDsyyXYoGYte3R6q4H XgANsgPq0mUWktwu7TXnChKkI+hacAbTZXdljfOOm2eUW/oDuiHUWSTjY4IXEm149/2JSpDnQfG nDcNT/+U/ll3y6AJK8EURbKbsUADuwijDQnirsG3SlRrVG2nKgyqryEPUMZEg5TQA00qx4JWLz4 gav4lvdTKT8fDhc32NMySZ9aHRPt/PupojnxPiBHOjEKYddvv6cnxszfxH2Ckmx8kl1Wnd+q+eC SMeOiOkfZ9uentPYeaJcb4M4L3rfi1QF7giu85XOwBXM346/+wU7BU91OLaCei3GsXe4mHOzB/L iqfZJh8aw7I5evsuCHFywM3Ch1Yp X-TMASE-XGENCLOUD: 3b0ad64e-e23b-423b-89d1-10fbd1df4d76-0-0-200-0 X-TM-Deliver-Signature: ADFDF136A588C9A88EB8FEB556EB8A2B X-TM-Addin-Auth: DtwCBclG1ECHvjY8OmFIA3YFulJggL4gVfPFWuOd7F5yj/x0J2Ow7CBfJ47 kui0ERey5u5nX98KEnoKW9BjGBk0q/MnfJ2LGuw2Mr8wlWzXX1qVXkWcu3+HvC5jpyzrLcujLV4 B+cpHvZ2HVOu0Zh1Q2pj0hmDHsPYTD1aCSh+8bMLOTbD9mahISclDjutArwvNF1Fq6FiTj64G4K iS78T363jxDgumFQT+VOKBGlA4J7zRU3imu7xccWpH04dl6jHjUyBhpRiG54DT02Q2To9pEx0iD 6kG3hs8opEyLF5A=.H5AV2DlODN1T79Z4+7H29YjOQTxYkBZOA8PUa1PiknwAst0ejxA0SFycgV vVFKkB9/Ta/Uzh7eYdshe3LrgoXyJ2TMhVQbYV0lAJ79wxRXxh2M3uB358YALnxF6L1zPT+9T0m UYFeJ2TktKTXIBfolaoZzHkPiynISlSrZjhN2B4r2pblWjGFMpAIn3BWq4TQgyYXEWwVtHwcKr1 Tqpq5a+EOBHRkqCin1ToYcUnsZ4+y98bNh0Nm9f5aaHXnWMtEWm3/V6NgvIXzOFp95CG/EwJqKn Lh7ubFfG5cCL1lfNanwdr0TOfRjIosTEOpMtLWP/qUyMYtBgcUgA7R7wRSg== X-TM-Addin-ProductCode: EMS DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opensynergy.com; s=TM-DKIM-20210503141657; t=1688145150; bh=vw7IXbVbuGsoAPP7rGBOB/cR+N7efyuPwJIzEnE6rAk=; l=2613; h=From:To:Date; b=ldpexf99aNZV7pwnG8ud0mWpRmclSY+Y/DJDcBOTJrPy+uLK/E2IxduD3XmZPnK91 H6JS5zqF2IAeoP8dFPMyqtzTkhyHHvhZriu4LVb9OmB2we2csfse6Sy5pfXG5z38hJ /fRaS899IiIJA4iqzkRQYb8H1xDadVKNRy/F/U1qE0bCJcsitWcv3NF5dnz3l5a3xG b6liLfA1bxAfg19y3mIWDKPRgq6787/7HzkF1WhDGS0OQbh/jXfF91wg/WD5ITddab UOTm7FYgEW2f5hM25RRkCNLkCcnalt4c60yIeyN90tRMnnZFXt0gab4+pVRT7zjmDQ UfeVGmpR8H8SA== X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_PASS, SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770150840215993637?= X-GMAIL-MSGID: =?utf-8?q?1770150840215993637?= cycle_between() decides whether get_device_system_crosststamp() will interpolate for older counter readings. So far, cycle_between() checks if parameter test is in the open interval (before, after), when disregarding the special case before > after. The only cycle_between() user, get_device_system_crosststamp(), has the following problem with this: If interval_start == cycles, cycle_between(interval_start, cycles, now) returns false. If a history_begin was supplied to get_device_system_crosststamp(), it will later call cycle_between() again, with effective argument values cycle_between(history_begin->cycles, cycles, cycles). Due to the test against the open interval, cycle_between() returns false again, and get_device_system_crosststamp() returns -EINVAL, when it could have succeeded. Fix this by testing against the closed interval in cycle_between(). This disables interpolation if interval_start == cycles. For the special case before > after, similar arguments hold. Fix this in a similar way. At the second cycle_between() call site, add an extra condition in order to effectively check a half-open interval, which keeps the condition documented above the call site satisfied. Fixes: 2c756feb18d9 ("time: Add history to cross timestamp interface supporting slower devices") Signed-off-by: Peter Hilber --- kernel/time/timekeeping.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index 8f35455b6250..7e86d5cd784d 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c @@ -1180,13 +1180,13 @@ static int adjust_historical_crosststamp(struct system_time_snapshot *history, } /* - * cycle_between - true if test occurs chronologically between before and after + * cycle_between - true if test occurs chronologically in [before, after] */ static bool cycle_between(u64 before, u64 test, u64 after) { - if (test > before && test < after) + if (test >= before && test <= after) return true; - if (before > after && (test > before || test < after)) + if (before > after && (test >= before || test <= after)) return true; return false; } @@ -1282,6 +1282,7 @@ int get_device_system_crosststamp(int (*get_time_fn) * clocksource change */ if (!history_begin || + history_begin->cycles == system_counterval.cycles || !cycle_between(history_begin->cycles, system_counterval.cycles, cycles) || history_begin->cs_was_changed_seq != cs_was_changed_seq) From patchwork Fri Jun 30 17:10:46 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Hilber X-Patchwork-Id: 114831 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10542511vqr; Fri, 30 Jun 2023 10:33:02 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4UVirlu3/oiCk2k+bx5mjl5nqvCcTwzx4t2dU89rXR8R+rzHZ1Gyb/lQAfIn3dp0BFmxus X-Received: by 2002:a05:6830:1e64:b0:6b2:93f0:63a0 with SMTP id m4-20020a0568301e6400b006b293f063a0mr3118256otr.19.1688146382440; Fri, 30 Jun 2023 10:33:02 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1688146382; cv=pass; d=google.com; s=arc-20160816; b=UVQeHpAGLCpSYL1sVhrwiEFeu6NEThRzscsq5lHcMtSKMKjh7awq/R+WR1BoFE37g8 Oss+YYKmNjFDD6hFDXC04nl4o1Oq1Hk4+gc7anBu2QAhv4rRytSaMuKKKWHJkVf28f5g 9oFZTyseQ2L+NCodB4AC1zANUDVVokeTgsx2u99NIW20XYqGtoQZ+rg2w+c/iRKFtjN+ 2tHsGis4MAcoSZuu8eHJZdvYMJCjOrGUDlB1xUZNw0brJhfN+vGvNSbWZswAP/lv/D0R H/dVvxnUGieRfV8xWzAZVwqy1BnZ1Ggyj/Pnlbk/ldiFNvZD0id0NaxGfMmX/81QcJft W1Wg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:dkim-signature:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from; bh=R/AApkBYgQrRMxPDdlg61GqM6e0QpZo2H/Km3r71LWo=; fh=peIHtHFjDbOExqtAIMJ/4G9JW3QvjLOZfOj48e1nq60=; b=NgWlRZ17frceWjxykMc/MBxW6xDUtOeq4rXVPoR6nWDunkvUWVtmABkc5fwMBcsu89 fv03kvxHtHpvJ7DdRxvGZsl+nAoDSMdv6GkqK4Leal4qaVtJxqJBK/pxTGHaXCut2iNw ZKjcut6I6A/tZfTnvRKjN5Hsv7IqxCfoy1Mw+Btap5E/t9CCd+8gDeQPvCfNPLlECuVG 9fWkvn4NGwR1pwh8XCX+Ij7RakBkgF8ohdcqPyDivoRT/cURolvwxAX1aZM1JjoLyURw 80IKvsvuihmIN3qUES/EZH1wesponmXkWQ7HyqSFd8hLDCEGjIG0WeS983J9uUj3XsfL yT/w== ARC-Authentication-Results: i=2; mx.google.com; dkim=fail header.i=@opensynergy.com header.s=TM-DKIM-20210503141657 header.b=Cc3w3HSr; arc=pass (i=1 spf=pass spfdomain=opensynergy.com dmarc=pass fromdomain=opensynergy.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=opensynergy.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t69-20020a638148000000b0054fd8d57b1esi13340785pgd.668.2023.06.30.10.32.48; Fri, 30 Jun 2023 10:33:02 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@opensynergy.com header.s=TM-DKIM-20210503141657 header.b=Cc3w3HSr; arc=pass (i=1 spf=pass spfdomain=opensynergy.com dmarc=pass fromdomain=opensynergy.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=opensynergy.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232861AbjF3R1Z (ORCPT + 99 others); Fri, 30 Jun 2023 13:27:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44324 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233071AbjF3R1W (ORCPT ); Fri, 30 Jun 2023 13:27:22 -0400 X-Greylist: delayed 889 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Fri, 30 Jun 2023 10:27:19 PDT Received: from refb02.tmes.trendmicro.eu (unknown [18.185.115.58]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E98791FE8 for ; Fri, 30 Jun 2023 10:27:19 -0700 (PDT) Received: from 104.47.11.168_.trendmicro.com (unknown [172.21.19.113]) by refb02.tmes.trendmicro.eu (Postfix) with ESMTPS id F11AF108FE5B1 for ; Fri, 30 Jun 2023 17:12:31 +0000 (UTC) Received: from 104.47.11.168_.trendmicro.com (unknown [172.21.166.90]) by repost01.tmes.trendmicro.eu (Postfix) with SMTP id 769AF100017A6; Fri, 30 Jun 2023 17:12:30 +0000 (UTC) X-TM-MAIL-RECEIVED-TIME: 1688145150.028000 X-TM-MAIL-UUID: 1a4b49c5-5fbb-4004-86fb-cca94cc54f20 Received: from DEU01-FR2-obe.outbound.protection.outlook.com (unknown [104.47.11.168]) by repre01.tmes.trendmicro.eu (Trend Micro Email Security) with ESMTPS id 0720510045509; Fri, 30 Jun 2023 17:12:30 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fqMlCXf/SSLS2cqfEvSIx+ucPsNwE8XQeRxwq8WeQ4OXLBHowuz6GN97YfWrOLGvw7fSSX0TFIc8pCilHqejonoQjf9YwizwE9IDNDehGE6PKruptbYYiT5EyJJdgE/79JygxqGZp1aG+l1T9LVDd1Opxc+KNM7UcoARRz4QAyB3ojTvx/A0DX7lpQkd/710PGqfFKhG6R4xovN6kNtvAQc4NmUl4ayDPB1XgDyYuht7GMqXJ+asN9Q4Vxf+S4LhNrCiXfrYq1OSVPKN3/nBP4uSfqvTQ3fkNRgbo+kKjMvdhKp4rVah8BGM4/Bqi0jpF8uszhn3C4V4DhQuS2iR4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=R/AApkBYgQrRMxPDdlg61GqM6e0QpZo2H/Km3r71LWo=; b=B+QBQxiMcmgbj9G2f4PAUbiQK/lFD0Aaly4Fz2FWexmpvB1bIdocvGFzqLHT6ggeG9pOZac1T3CqmBsv4U/SUp/KegbU+1K2AMaut+3U5gyFUhTdqRg1s5qAmAXaFufv0GWDKiwJZkLOjTmqlLJoUToi94ALoWRG8KfOkqzWaNx+m+mfe9kbWYQP49Ym8OPmVuhmNn7us6BRBMxOOJoaE54s+xTe0UgMb+werSZ8oD1I5MS7QFuKFUNVX+eXCwYveVyygCFK0EJP71LBRP2mAJLIrt8X8PsRRZXl15qOtfz9JZXs4u6clv2SW/So4WOVFwTOEiDzXv/3VgXxwqDXyw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 217.66.60.4) smtp.rcpttodomain=google.com smtp.mailfrom=opensynergy.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=opensynergy.com; dkim=none (message not signed); arc=none X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 217.66.60.4) smtp.mailfrom=opensynergy.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=opensynergy.com; Received-SPF: Pass (protection.outlook.com: domain of opensynergy.com designates 217.66.60.4 as permitted sender) receiver=protection.outlook.com; client-ip=217.66.60.4; helo=SR-MAIL-03.open-synergy.com; pr=C From: Peter Hilber To: linux-kernel@vger.kernel.org Cc: Peter Hilber , John Stultz , Thomas Gleixner , Stephen Boyd , "Christopher S. Hall" Subject: [RFC PATCH 3/7] timekeeping: Fix cross-timestamp interpolation for non-x86 Date: Fri, 30 Jun 2023 19:10:46 +0200 Message-Id: <20230630171052.985577-4-peter.hilber@opensynergy.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230630171052.985577-1-peter.hilber@opensynergy.com> References: <20230630171052.985577-1-peter.hilber@opensynergy.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6EUR05FT062:EE_|BEZP281MB3382:EE_ X-MS-Office365-Filtering-Correlation-Id: 20f1c5f6-e9fc-4955-00ba-08db798d2eb6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: RCTJzpusdmd5HQLxa0xJBAcRauvsUeO7bAftUC89GRnNXXqpzBW2a5FqFoBTY7zv4qXPBWG21UbBgVD78V2mXQSP2f8yIKnNmoGcaH19WrLdlCx+INUlClvQGGOIb55V0aehG/D92QjfBizunK+i2S3xw2hdXMtZh6/8pvTIoktC6pbcjxUkjHry5DLhxrW2gq1OCJXzrDSu3eFOjlwZK0M3Uq2mmAYjlRwmWaEN7ZBKaurf3JylcMYVvaCyyNBa3AIUURrVPM/VoDimYyCSs0ft672uxSaTng1HBU6d/aO0cX03vgML8AGcJGIjT6seFc2Vo/3W3a64ee0+W0Vvwd6Bh8KDMPI6Kc6CWB4PZmacC8CrF6XyPEvVrnvbGqMQRKjfHlYGmCk6l3GkTcBi2PXTu4p040oo9xa4fMGciFG1MS2kWade74thZfCAIh6heuRC15sUpkk5k9yZMG/y1q2h+lPRkxIhVBV7MI7zzjqD/BmTvki7BDDxHoAz2MPvoS4yBQfS2qoEMu0Q+WY5cAbvdNofLZbwWY/IlXGnu/Qew3MvhZjDC/pJqLTOZy5lK/WwVnbnBCCS1g49zO4cAsZLEX4MsJbTc5CMyS9HOScDQXBg15NawWDnf/A4nk9lwKgQkVU7NXw2PKpZc33CFs+1TE+rwHIDfXBWEQmAUVGsXXlslQQrKddr7itwAABk2M4V1mzdFNc4K+UfFBhTBlB/fS3SakijPw5354sWZk49fOrdMhNV1BtOFq0mLgk2RMHlgXw2KeFx2L/sd8XDdPKZQzhbErEa5imj2bMAiCs= X-Forefront-Antispam-Report: CIP:217.66.60.4;CTRY:DE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SR-MAIL-03.open-synergy.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230028)(346002)(39840400004)(396003)(136003)(376002)(451199021)(46966006)(36840700001)(336012)(47076005)(83380400001)(2616005)(2906002)(81166007)(36860700001)(40480700001)(36756003)(8936002)(8676002)(82310400005)(5660300002)(86362001)(54906003)(41300700001)(70586007)(6916009)(4326008)(70206006)(42186006)(316002)(478600001)(186003)(44832011)(1076003)(26005)(36900700001);DIR:OUT;SFP:1102; X-OriginatorOrg: opensynergy.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jun 2023 17:12:28.3305 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 20f1c5f6-e9fc-4955-00ba-08db798d2eb6 X-MS-Exchange-CrossTenant-Id: 800fae25-9b1b-4edc-993d-c939c4e84a64 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=800fae25-9b1b-4edc-993d-c939c4e84a64;Ip=[217.66.60.4];Helo=[SR-MAIL-03.open-synergy.com] X-MS-Exchange-CrossTenant-AuthSource: AM6EUR05FT062.eop-eur05.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BEZP281MB3382 X-TM-AS-ERS: 104.47.11.168-0.0.0.0 X-TMASE-Version: StarCloud-1.3-9.1.1011-27724.001 X-TMASE-Result: 10--4.514000-4.000000 X-TMASE-MatchedRID: vFGChw3WFt9eKR/wKUhyN50UyaWO1QCnDNB/jaV2d3ufOd3yw6VkrA9M 5f/N3N4Qthzaop7IM7sxRT5xs1+q/JuBYEgl4gCvJw66cQh/R5eB37bQADgKr2kRdpOqv8vywmu Rf7t8+crfNpMtD+fWwOUTedInjF4ziRz4gknBIqDk+QJ4zu017ddP7KM+8gexMHiMmW0ZUNss3n AY9fdM9dh5c4TN8zbZ7PVkFWMnCn8N5Rk4kJccyL/a0nd+hIFCI/NGWt0UYPCPILr6ZIjnGDaWr KX2wgM5ft7/Qwb81tOa8WPi91Yg/EO0p1hE1Fv7 X-TMASE-XGENCLOUD: aef0d7f4-5fc6-4e25-92b3-7d1ca97f1c13-0-0-200-0 X-TM-Deliver-Signature: 5F4C735E15E25C3882DF00FA4548FB32 X-TM-Addin-Auth: h8TSFSCO5W/H03ZEsIu2bxA8yuwiRmvm5BZ6Rbk84YfiEgmlUfHYX1Fzqtr 8Ud1u47b/kkLfJIlS7qqmBHAosFSj852SyGsWfhdfERjxnFTKEt0PdDk1yuBl888/OXrUJAhNL4 3JgzfywTMDpIPBL+gGaR7cSZzCDhRLLQ8QcXOcCFBzjrIkwvylGNz+46G/v9dAvSeA1DwReavkL Rho/mnEDNds0J1/IYjU2EGtDMHAObuc5LD9tOXSH5VVEYBUFrcrbSuxFh8HZe8lrUwDCQrUKQvD JyaW0U3Xl1G4DHw=.o1VdnndHBG0e1esY3dUZhkRihEzRRitHAwHFWvm1wWcK5jzDPV+7P4PmsB n5rFg34jtye6yZB2lT4mHBGtsiwCdlDRQg3gLcrppVeM11MrSXkCHzZid0A7lpqb2tUYj5+aic+ Y48T7uj1F0HScNXdzZfTxwqJvB0Q1BIfwaCLnoRKr1RYB2SccGM2z+QZGIIqqAZgD6uynT4p4yw ZbBPKLnu/sFAMXwZDsQf89oROl54qgwaAjLHc9plurj34HgxwWUHKkwVTE2jg+7p7nsps5xrwuM JlbSBMgRr111Usm5jlVupkxwnVh8YCxtFEbH3ec7f/QhEeKe/y8WCYe8W5g== X-TM-Addin-ProductCode: EMS DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opensynergy.com; s=TM-DKIM-20210503141657; t=1688145150; bh=nYjxLeGfkRg/ocG7JLN7YAACduDGu5P9dwsmki6C2Es=; l=2048; h=From:To:Date; b=Cc3w3HSrCEO657zi+DaF5wwCgJ6t0ucP5aQC01DluiTLnfIHDMDJzEHdeNxxTY/6e qtSjghjtHvwp4D+5SLdTGAvDPnn1oZAk8MZvsyT+Nk/uyGoEoO0Jkp6o0NWVQUbLeI +uUTqWrs+n5CWCvdJnuCaIeLLbVfQ8zQAq2fD/kxEOlfq9/crJnBUzQzSEuUYP2ZGG HV3W5V5Xb9L83YGGk5ehT9TdXxY7Vw9a3kkCIgB4Jm9ApxvGQ4Q5FxmHUNNZqWBVwZ NLRk1Zni+yMGbfAAblEwpG/tBBug9GXVzmJdl7GzLy0Y2BL4Y0A5UffQ168zLBJyhj 4EbZtnTDhF3bA== X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_PASS, SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770149781491205712?= X-GMAIL-MSGID: =?utf-8?q?1770149781491205712?= So far, get_device_system_crosststamp() unconditionally passes system_counterval.cycles to timekeeping_cycles_to_ns(). But when interpolating system time (do_interp == true), system_counterval.cycles is before tkr_mono.cycle_last, contrary to the timekeeping_cycles_to_ns() expectations. On x86, CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE will mitigate on interpolating, setting delta to 0. With delta == 0, xtstamp->sys_monoraw and xtstamp->sys_realtime are then set to the last update time, as implicitly expected by adjust_historical_crosststamp(). On other architectures, the resulting nonsense xtstamp->sys_monoraw and xtstamp->sys_realtime corrupt the xtstamp (ts) adjustment in adjust_historical_crosststamp(). Fix this by always setting the delta to 0 when interpolating. Fixes: 2c756feb18d9 ("time: Add history to cross timestamp interface supporting slower devices") Signed-off-by: Peter Hilber --- kernel/time/timekeeping.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index 7e86d5cd784d..7ccc2377c319 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c @@ -1259,10 +1259,15 @@ int get_device_system_crosststamp(int (*get_time_fn) tk_core.timekeeper.offs_real); base_raw = tk->tkr_raw.base; - nsec_real = timekeeping_cycles_to_ns(&tk->tkr_mono, - system_counterval.cycles); - nsec_raw = timekeeping_cycles_to_ns(&tk->tkr_raw, - system_counterval.cycles); + if (do_interp) { + nsec_real = timekeeping_delta_to_ns(&tk->tkr_mono, 0); + nsec_raw = timekeeping_delta_to_ns(&tk->tkr_raw, 0); + } else { + nsec_real = timekeeping_cycles_to_ns( + &tk->tkr_mono, system_counterval.cycles); + nsec_raw = timekeeping_cycles_to_ns( + &tk->tkr_raw, system_counterval.cycles); + } } while (read_seqcount_retry(&tk_core.seq, seq)); xtstamp->sys_realtime = ktime_add_ns(base_real, nsec_real); From patchwork Fri Jun 30 17:10:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Hilber X-Patchwork-Id: 114840 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10571927vqr; Fri, 30 Jun 2023 11:21:47 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6ziW4kkZNwHuPsceqeySMm5pP2CzHh9R75B5sjGDbaufRyF16NY7hbF5yeRv1hTeKVOvjM X-Received: by 2002:a05:6a20:7495:b0:11f:39e2:d09a with SMTP id p21-20020a056a20749500b0011f39e2d09amr3063638pzd.33.1688149307032; Fri, 30 Jun 2023 11:21:47 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1688149307; cv=pass; d=google.com; s=arc-20160816; b=MkCHnMPZ7/bpnbxfrWJrBkjOdzbhlsDdYMO/215LW8GcNYZJ3RSeqt8PBR7dRrjhQl CLeiWIWhBVfa9cUmslRasdQ49PezVvXbCzGoKSx/yIWxuvkcAw+G9ZewR0O/j63KOxDR G941XUlARCkIzQEMN3usGTpldmP8j99/Sj6wf6uvot1gnc8tWgsUUGv263eZKcvcGBK7 za34n1/YoxJDEzg+jcwHnL8mQHWGCIIx2AWPtJB1z/gOkKes4O1m2HNdLPntcSMb85fk 1GHjF/wtZy1yt6xmT2q8/A+lMC0O0IGyHxhVJ8wYLyT0UsS6jU3XTvwUiFohognGwyyM Ba7A== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:dkim-signature:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from; bh=S9NbgHcVcRIpJ1o8jHBxREqk9X7WWyDwFMlxSLETOxE=; fh=Qi12HTWCJRbru7ovlCYamBTggXqrvgsXALSc87pNGJA=; b=QwzcGWHoIIszsw13XE+dX23euogGVwmp/FMWILOXNGD9a5aPHSpZ8qLNHf81IpZMnv segDq2LcMLfAuZqi4GT5P+nQusd1UQ59U7fCpqRcIHxxXXz5vwvARxDeE8UHtgMcGoYe 1EscW7tIMGaV9rztmkNGu4tiDkk01UHQVXochIyRmORakkWH2GSTT5J+68oD4ZQ5AqsF ttJt0Lfot06qhdglkqb1AH9VMwhsJLL8LxD1NEkcLYhRFNBd52+YzRJAYyY4tRyKGtQb Lq3rTd2XpJjX5oil1uAlVtGogY3rmY+ud5K7QnBIUEMCgUDT+peE/CNekME7Va/rbMXk fpRA== ARC-Authentication-Results: i=2; mx.google.com; dkim=fail header.i=@opensynergy.com header.s=TM-DKIM-20210503141657 header.b=OgmWdB2f; arc=pass (i=1 spf=pass spfdomain=opensynergy.com dmarc=pass fromdomain=opensynergy.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=opensynergy.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ce4-20020a056a002a0400b0068255ea8ed5si2641523pfb.73.2023.06.30.11.21.30; Fri, 30 Jun 2023 11:21:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@opensynergy.com header.s=TM-DKIM-20210503141657 header.b=OgmWdB2f; arc=pass (i=1 spf=pass spfdomain=opensynergy.com dmarc=pass fromdomain=opensynergy.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=opensynergy.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230046AbjF3Rdl (ORCPT + 99 others); Fri, 30 Jun 2023 13:33:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47632 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232675AbjF3Rdd (ORCPT ); Fri, 30 Jun 2023 13:33:33 -0400 Received: from refb01.tmes.trendmicro.eu (refb01.tmes.trendmicro.eu [18.185.115.54]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B037BE6C for ; Fri, 30 Jun 2023 10:33:15 -0700 (PDT) Received: from 104.47.11.176_.trendmicro.com (unknown [172.21.19.56]) by refb01.tmes.trendmicro.eu (Postfix) with ESMTPS id AE58210A28461 for ; Fri, 30 Jun 2023 17:12:36 +0000 (UTC) Received: from 104.47.11.176_.trendmicro.com (unknown [172.21.178.36]) by repost01.tmes.trendmicro.eu (Postfix) with SMTP id 2B48F10000C22; Fri, 30 Jun 2023 17:12:35 +0000 (UTC) X-TM-MAIL-RECEIVED-TIME: 1688145154.290000 X-TM-MAIL-UUID: bc47f6dc-f1e2-4258-8266-33b2b274a254 Received: from DEU01-FR2-obe.outbound.protection.outlook.com (unknown [104.47.11.176]) by repre01.tmes.trendmicro.eu (Trend Micro Email Security) with ESMTPS id 46DBC10000E3B; Fri, 30 Jun 2023 17:12:34 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QKKSIxnG/BwQ2sxs4Uq3vr/ZsR8CCySj2JHMBqImtwPz/WV97jgg0uv7CTiBP38xTutFeesd7AU0sh/M3Nqmjtxh1yoRGDEBRxw1z7W/EB0L3wCEuqD/9Zbu2AWoBjhjhoeGvoAoi+aUorVLRIYUlRjf5Db50Z2SK8Pw/R7VpbQ9zXcWLqQqIgelEXci2x76QJEdyBOYBbbiXAgZ4Us2FwCo9U3krelZcBotuPX99ZmRGuDt/iLChc5chRDVbWKW0mHc6SWKbzBWJbdzxsfugNfRRnRLud4BVaJQ5fkw5qryjzs6YQYoT04yvoXxweB+OJPkUoJjGl29seBNKjJqxQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=S9NbgHcVcRIpJ1o8jHBxREqk9X7WWyDwFMlxSLETOxE=; b=a1OJRxjsLBEnmpD7u+NMgYybn50YynSOCvS6RySAJEKWwx1ePJ8RNQRlf/3r9GTIn3Z4XyAt8ZPja4kCfgVHMtjjrvQwjzcgVngDt0WvVpea/MmrZNYslPjdhPZrAY0LH875yf9Mg7bWKcPQ/Ue6DDuPUbC8hipBMAQaSYwnTmP+oKqwsCWal8e6HSKS6ZiCIvftIH47+s6j2kheoCIwvX57wckQPqA2VFTBy9p8A0K8DpQ+N/iSs7AzzjCB+bWgeRe3z8TMwBX+z08UY90jFcQKrVjGGyKMm1ucZ2ucScsfpa8RrjqMNG40w5P1oOGosccDAZJw8e60N9MmXmpdNw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 217.66.60.4) smtp.rcpttodomain=arm.com smtp.mailfrom=opensynergy.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=opensynergy.com; dkim=none (message not signed); arc=none X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 217.66.60.4) smtp.mailfrom=opensynergy.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=opensynergy.com; Received-SPF: Pass (protection.outlook.com: domain of opensynergy.com designates 217.66.60.4 as permitted sender) receiver=protection.outlook.com; client-ip=217.66.60.4; helo=SR-MAIL-03.open-synergy.com; pr=C From: Peter Hilber To: linux-arm-kernel@lists.infradead.org Cc: Peter Hilber , linux-kernel@vger.kernel.org, Mark Rutland , Marc Zyngier , Daniel Lezcano , Thomas Gleixner Subject: [RFC PATCH 4/7] clocksource: arm_arch_timer: Export counter type, clocksource Date: Fri, 30 Jun 2023 19:10:47 +0200 Message-Id: <20230630171052.985577-5-peter.hilber@opensynergy.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230630171052.985577-1-peter.hilber@opensynergy.com> References: <20230630171052.985577-1-peter.hilber@opensynergy.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6EUR05FT061:EE_|BEZP281MB2005:EE_ X-MS-Office365-Filtering-Correlation-Id: 43f0c4dc-6b26-40af-3761-08db798d2f11 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 217UTAg+BHziMoQ8pM5wo3B1PFMHCsvQVv55bxD3MGYVnrB8sZhtyMydZ0UqcssrEOQK5JyXY4bpRALj61FMH1LOLQiNP9UpMnplB00lJGufsPXUNGfIvpc/orlkPHOGgQSLXl/N32LcODHGgAvAjykq8LMqhIuRJNZKMoztTo2Mp0IlDMk+h1dnpZn9+cnD+wkNgcUXO+jgVCgCieb2bWF9FGsMyeH73iUU1dLnLmdY9zA5eu/ejhbXehNKEJlYN+gElxGEeZUaOhiPf0txSrt8doSBzmvYjfmrH9vPtqaPuIWWvGTEhQnQSOVKApAmiWW61IEgQZd+4jedZpIcAHv7S81XSVXx1GG9z0myubWPM0qCYDDUKQo94iYqxkjqcJppS0hp63499IkSwIOd14/uUjZMmiqPr9H4mbi/a6WDpxJAG6+G98QoRNj01Z907u5IoazJDzN49BI8FAR7Bc/fpAshlVGIsR1DR17bmdusobdGJ8he1NY1gfDO1v99Ggttg+yHgeErGGiHn727blsATBwjvwGAhnLMj8IStHlxoTeR4LRGOc8PPpRATFna6k9bcx1duiPRTw6E03wGaYR2IuEqjlKhSq9Mq/rRapArNenB0ycgeykiWLWV8JK00s2K4iGFOSvMchwjSdjm5FBo2h26KOLUIx6VpLPFChablUFcXLd9UD0993Nxx5hZIp66tR4hjPftsABDIUJn0jGz32HueeAhPXGj2aGCphcLzvXqXDy7L6BLzg0vuqSDoXl3FtZ8QE4TfQd1ZU724g== X-Forefront-Antispam-Report: CIP:217.66.60.4;CTRY:DE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SR-MAIL-03.open-synergy.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230028)(346002)(396003)(39840400004)(376002)(136003)(451199021)(46966006)(36840700001)(966005)(478600001)(36860700001)(47076005)(186003)(26005)(40480700001)(1076003)(336012)(83380400001)(36756003)(2616005)(82310400005)(86362001)(81166007)(6916009)(4326008)(70586007)(70206006)(316002)(2906002)(5660300002)(44832011)(8936002)(8676002)(41300700001)(42186006)(54906003)(36900700001);DIR:OUT;SFP:1102; X-OriginatorOrg: opensynergy.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jun 2023 17:12:28.9126 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 43f0c4dc-6b26-40af-3761-08db798d2f11 X-MS-Exchange-CrossTenant-Id: 800fae25-9b1b-4edc-993d-c939c4e84a64 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=800fae25-9b1b-4edc-993d-c939c4e84a64;Ip=[217.66.60.4];Helo=[SR-MAIL-03.open-synergy.com] X-MS-Exchange-CrossTenant-AuthSource: AM6EUR05FT061.eop-eur05.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BEZP281MB2005 X-TM-AS-ERS: 104.47.11.176-0.0.0.0 X-TMASE-Version: StarCloud-1.3-9.1.1011-27724.001 X-TMASE-Result: 10--2.385400-4.000000 X-TMASE-MatchedRID: W1Gv3YQwcksfq1C9yqtpY3iXIXWXK9Sta3FVQe5d4zs3j/Mq9utADezy hpwh5Kn1QaSYRDMTd7qDdsVaS6GBx8eYpzz6yNBUUlO0zoIcpU6B1fO2o4QGcOEKbxqb5I/nhf7 60Jrkn7K+1+8zb5yWP0dRX+q/OXWrFFzaf2J+d+zW0zrdUW8Q+Ytm4/7hkNAG0kDOV2EVXlmbSR 3JK+cvXno17dTpompJBjNUyX1MCsUTfhpDeOWkVYYtgu3ZTSlqcnxszfxH2Ckmx8kl1Wnd+q+eC SMeOiOkfZ9uentPYeaJcb4M4L3rfi1QF7giu85XOwBXM346/+xtaDgQylf8ASH4cW+2DMrOI91i xqpCYnJ+yCBP6lg3OpZ1wa3cQxeJ X-TMASE-XGENCLOUD: 09e92e8c-4928-4749-896e-f0ec90671b87-0-0-200-0 X-TM-Deliver-Signature: 454AA7F489DE1321776A11B1FC23D40E X-TM-Addin-Auth: J2WEeMMnNi36NAC4plcsdivwdRHsoSn/K1YCkMtas4HCMIRhbuNiXqqRqBw V/jJPRW/heu3DW9M8mjz66E1+y76MsWgeiZYfCE3AwQxb6VsRlYiO5n9wMN17IEHhrt64Ai426u 56iALRoI+qNnXz3a1x4s1i8JJMf99tFCI3OSq/cqtaMFGtV4qbOMX0dHvVMpD6z15cohAOh4n0z UGRMDiIOg0pZmlrlB+zGExkI5MNSKvVY++vEE/+r9NWf2Sjt+KndlB7MrrgffOcJWUSCerY0lYI sLtYJhezoMRkoCw=.PrUJTGDOxGIJ7ANxvKcp0OFgX4bc8nZXWE/5xINoL59tNQq8GAt6FJNwm6 JbR6c8kL6fIdSA4tuKKNn6O7UQ9tMWJCYtvpdGyvgjTSDPkai7bnRshyiJqVb7lOWmh7sAjXUON wIl+z5Qr8TAkYwfppEIejzwbF3kyd6Yztb0TF9QQP6vYmC3150K9xyVglvGJHwEZG9w3miLGI/T eDdWiUEJGYl6LheACjmPv1kty5rmYaFoFBwXi4qWFC1ncDe1jK7KdpDK1h/cU4j5QN8PjRfSvaO GsjtovCBRVDFIEBekW9ClYk+1Ut2/RhrS9oeUeDRwhUHiqDKRJiFDQ9u+Cg== X-TM-Addin-ProductCode: EMS DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opensynergy.com; s=TM-DKIM-20210503141657; t=1688145154; bh=7GJ/6QyfKmdk9vfZ7fTYL619asKPR22BGPfJCTCrlBA=; l=4094; h=From:To:Date; b=OgmWdB2fJ0aEfknPUyIUMIh7XG95cOVap9nxE/ldScaW3KfVEewlqeRQJt47gwZzq NjpGouwZYxwbxYkKc+p9YABfzu828ElP1MWH8tCdpgsOP7W3OmBqJCjR1KiYhqlMMP nkbVd7b+L56kQalvO9M5cx4DQcUSCiX2pe0AilN7Ci+O6Iadqn6hiRP7H2A+3fPtRc lnoUbjgnJV9k3iNxUz9AScVcUhPJJ2F/5YAS3slXZx+7SyM2+OVt5A6bkh1QCFw+wq 9gQVzFpCIOuLr/uqFV5KT2JiAENEY6TY7NcwXDLcojY2nUCA+41WoErLF8gszJ48OT 22/3Qy/o3MLgA== X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_PASS, SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770152848054363539?= X-GMAIL-MSGID: =?utf-8?q?1770152848054363539?= Export helper functions to allow other code to - determine the counter type in use (virtual or physical, CP15 or memory), - get a pointer to the arm_arch_timer clocksource, which can be compared with the current clocksource. The virtio_rtc driver will require the clocksource pointer when using get_device_system_crosststamp(), and should communicate the actual Arm counter type to the Virtio RTC device (cf. spec draft [1]). [1] https://lists.oasis-open.org/archives/virtio-comment/202306/msg00592.html Signed-off-by: Peter Hilber --- drivers/clocksource/arm_arch_timer.c | 16 ++++++++++++++++ include/clocksource/arm_arch_timer.h | 19 +++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c index e733a2a1927a..cebdc1b2db4c 100644 --- a/drivers/clocksource/arm_arch_timer.c +++ b/drivers/clocksource/arm_arch_timer.c @@ -92,6 +92,7 @@ static enum vdso_clock_mode vdso_default = VDSO_CLOCKMODE_ARCHTIMER; #else static enum vdso_clock_mode vdso_default = VDSO_CLOCKMODE_NONE; #endif /* CONFIG_GENERIC_GETTIMEOFDAY */ +static enum arch_timer_counter_type arch_counter_type __ro_after_init = ARCH_COUNTER_CP15_VIRT; static cpumask_t evtstrm_available = CPU_MASK_NONE; static bool evtstrm_enable __ro_after_init = IS_ENABLED(CONFIG_ARM_ARCH_TIMER_EVTSTREAM); @@ -1109,6 +1110,7 @@ static void __init arch_counter_register(unsigned type) rd = arch_counter_get_cntvct; scr = arch_counter_get_cntvct; } + arch_counter_type = ARCH_COUNTER_CP15_VIRT; } else { if (arch_timer_counter_has_wa()) { rd = arch_counter_get_cntpct_stable; @@ -1117,6 +1119,7 @@ static void __init arch_counter_register(unsigned type) rd = arch_counter_get_cntpct; scr = arch_counter_get_cntpct; } + arch_counter_type = ARCH_COUNTER_CP15_PHYS; } arch_timer_read_counter = rd; @@ -1124,6 +1127,7 @@ static void __init arch_counter_register(unsigned type) } else { arch_timer_read_counter = arch_counter_get_cntvct_mem; scr = arch_counter_get_cntvct_mem; + arch_counter_type = ARCH_COUNTER_MEM_VIRT; } width = arch_counter_get_width(); @@ -1777,6 +1781,18 @@ static int __init arch_timer_acpi_init(struct acpi_table_header *table) TIMER_ACPI_DECLARE(arch_timer, ACPI_SIG_GTDT, arch_timer_acpi_init); #endif +enum arch_timer_counter_type arch_timer_counter_get_type(void) +{ + return arch_counter_type; +} +EXPORT_SYMBOL_GPL(arch_timer_counter_get_type); + +struct clocksource *arch_timer_get_cs(void) +{ + return &clocksource_counter; +} +EXPORT_SYMBOL_GPL(arch_timer_get_cs); + int kvm_arch_ptp_get_crosststamp(u64 *cycle, struct timespec64 *ts, struct clocksource **cs) { diff --git a/include/clocksource/arm_arch_timer.h b/include/clocksource/arm_arch_timer.h index cbbc9a6dc571..b442db0b5ca0 100644 --- a/include/clocksource/arm_arch_timer.h +++ b/include/clocksource/arm_arch_timer.h @@ -43,6 +43,13 @@ enum arch_timer_spi_nr { ARCH_TIMER_MAX_TIMER_SPI }; +enum arch_timer_counter_type { + ARCH_COUNTER_CP15_VIRT, + ARCH_COUNTER_CP15_PHYS, + ARCH_COUNTER_MEM_VIRT, + ARCH_COUNTER_MEM_PHYS, +}; + #define ARCH_TIMER_PHYS_ACCESS 0 #define ARCH_TIMER_VIRT_ACCESS 1 #define ARCH_TIMER_MEM_PHYS_ACCESS 2 @@ -89,6 +96,8 @@ extern u32 arch_timer_get_rate(void); extern u64 (*arch_timer_read_counter)(void); extern struct arch_timer_kvm_info *arch_timer_get_kvm_info(void); extern bool arch_timer_evtstrm_available(void); +extern enum arch_timer_counter_type arch_timer_counter_get_type(void); +extern struct clocksource *arch_timer_get_cs(void); #else @@ -107,6 +116,16 @@ static inline bool arch_timer_evtstrm_available(void) return false; } +static inline enum arch_timer_counter_type arch_timer_counter_get_type(void) +{ + return ARCH_COUNTER_CP15_VIRT; +} + +static inline struct clocksource *arch_timer_get_cs(void) +{ + return NULL; +} + #endif #endif From patchwork Fri Jun 30 17:10:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Hilber X-Patchwork-Id: 114838 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp10563733vqr; Fri, 30 Jun 2023 11:08:07 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5Gy3ODYRQNjNPzN5w7jyWdwEYUt8l6t+BBZ6x0wXqAiDtm1hjABqwSbMAuoCt+GSImuni6 X-Received: by 2002:a05:6a20:1b2a:b0:12b:93d4:4967 with SMTP id ch42-20020a056a201b2a00b0012b93d44967mr2927233pzb.26.1688148487224; Fri, 30 Jun 2023 11:08:07 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1688148487; cv=pass; d=google.com; s=arc-20160816; b=GVsZF1pqgP/OSR8Fb/+mYIe0RN5foN1mNYNT90m1qSnvjU6OA+DPPZ0rb21bkGXgkw MlQa2AUrGuU3Y4LXuxVaGKvLvtkQ0wLlidomCNxYEKxYQpXuWKaCYrsIIqhw2vNgJywU OsCY4Wkx7GQmEoCgKL76dee7mcGnNyu7TjNKw/qbJGR6jCIr/65B0xNYMo1kMtogKrDV bOwwRYJil62ez63CtQqg/8n/fQrzHts1S/ulzd7Ku4do1e1ULehEzItKn/3/1q0RdNGe cyJGQI5Uheqq8MnSDRLQ3WjhMPXW1XarmObQHJSvZNdkIp3zC3Wq1OQ6TQXoiYeFq2c6 TfxQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:dkim-signature:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from; bh=FmFoyCaOlkqdJbrsaGL8tIEEXRJei17uNfH7jf8XZN8=; fh=PvB8IoEkTnUa1kC2SiAOlSpKJfkk6vhshABYmkJMf9U=; b=gdpB9IIDCavZ9/L/uNAKGwyJQA1pG4uI+EmNRKaZcIn0EYPgAcCxBiJ4eWms3Rrasu AoR9g4KoB8db8E7E3MQhsVq1tt441qclSn4eKa2RLCjTfalMXIr33jUysemSXjrkK08/ aguvWxXAPNKfDT+KCKIUBOFKhkdIQ8KaoTBMyefx0FRxEfsD0JZvvi2gICpOUvPJAjG4 KkVeLRP8ZpPSYJu3Z6o3V3YN72fT6/2tiNVyaz1BlxwGirA3htwzAz32ScXiPefqAd0x 9tI/VDJhO9ZWXHB6ZC8rV+0K2kGoUxd6h19mQMwuE29HgqXzCJlRli0IHhtU1BfJSnbY FqIA== ARC-Authentication-Results: i=2; mx.google.com; dkim=fail header.i=@opensynergy.com header.s=TM-DKIM-20210503141657 header.b=eoyDQiYg; arc=pass (i=1 spf=pass spfdomain=opensynergy.com dmarc=pass fromdomain=opensynergy.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=opensynergy.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z4-20020aa79584000000b006825e062715si1995465pfj.228.2023.06.30.11.07.53; Fri, 30 Jun 2023 11:08:07 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@opensynergy.com header.s=TM-DKIM-20210503141657 header.b=eoyDQiYg; arc=pass (i=1 spf=pass spfdomain=opensynergy.com dmarc=pass fromdomain=opensynergy.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=opensynergy.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232791AbjF3Rds (ORCPT + 99 others); Fri, 30 Jun 2023 13:33:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47694 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231946AbjF3Rdf (ORCPT ); Fri, 30 Jun 2023 13:33:35 -0400 Received: from refb01.tmes.trendmicro.eu (refb01.tmes.trendmicro.eu [18.185.115.53]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7FE183C07 for ; Fri, 30 Jun 2023 10:33:18 -0700 (PDT) Received: from 104.47.7.177_.trendmicro.com (unknown [172.21.9.104]) by refb01.tmes.trendmicro.eu (Postfix) with ESMTPS id 5B03510A280F6 for ; Fri, 30 Jun 2023 17:12:35 +0000 (UTC) Received: from 104.47.7.177_.trendmicro.com (unknown [172.21.178.217]) by repost01.tmes.trendmicro.eu (Postfix) with SMTP id C48B1100004FE; Fri, 30 Jun 2023 17:12:33 +0000 (UTC) X-TM-MAIL-RECEIVED-TIME: 1688145153.430000 X-TM-MAIL-UUID: ee4b92a0-79ce-403f-ae6a-ff1396bc5399 Received: from DEU01-BE0-obe.outbound.protection.outlook.com (unknown [104.47.7.177]) by repre01.tmes.trendmicro.eu (Trend Micro Email Security) with ESMTPS id 6913B10020CF2; Fri, 30 Jun 2023 17:12:33 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=X3EMykZidH56HeJnGTjqhqtT3uSrRs720E2RWQI91+GnGVablCd6xS1Fvp+5eMkej0wzu3JyYEUKg1Bt4ZsrXR+rNpnGpP6w0ULl7QO0rHS+1FvP27y+tDJnKQgujos6RoGJctBNe9TW66g+fGOmDgEuyuvKTpNowcilTryQnn5XpL9A1OT102Vu/PpYFGao1QyqVYb1tOLXwjm9FaH9qpUO6jjfSweVA4SgFcBsuJnXEoK5qnzGpKRvN4siQ1/r6eRs8iVo/FzitMzPi4y5Y3uZai+u9U7Oun5L1krOq7NnuVR9DCic6rbX2weuYXuAeZlFh9C5D59rcDChY4AuyA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=FmFoyCaOlkqdJbrsaGL8tIEEXRJei17uNfH7jf8XZN8=; b=nRnyfidYKnrhjTuzbIcxjXkR6s9GkF1xLVuyWtqfaeUJe+DwP1QZ4CFJFBHuQXEqZeu29hnzeP5gbZgHRLuPA0pRmaG4r9zeTAG5cHsVn5bRvtW1IaqUmxA1sKmh54PGab9Wk9lBjAiQY2uCiHpnyMlHyIdlW3U2HNn0Xj8B0VWMqsdob348sNzFmnKGmKVmrEf+LD8hVAmutyaRRL2Vab6R+k6UTmAaammp0uTfvdr4bZxdHa1kcta+fC2j0YVuO509HmM1MDxu84ZXgntpwCm7wsrtC6IHXfTKFESI9P2RWuDK02wKelfyKpJOdqTN4ulwjAs+WIOWvbCQg1nHGQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 217.66.60.4) smtp.rcpttodomain=linux.alibaba.com smtp.mailfrom=opensynergy.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=opensynergy.com; dkim=none (message not signed); arc=none X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 217.66.60.4) smtp.mailfrom=opensynergy.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=opensynergy.com; Received-SPF: Pass (protection.outlook.com: domain of opensynergy.com designates 217.66.60.4 as permitted sender) receiver=protection.outlook.com; client-ip=217.66.60.4; helo=SR-MAIL-03.open-synergy.com; pr=C From: Peter Hilber To: virtualization@lists.linux-foundation.org, virtio-dev@lists.oasis-open.org Cc: Peter Hilber , linux-kernel@vger.kernel.org, "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo Subject: [RFC PATCH 7/7] virtio_rtc: Add Arm Generic Timer cross-timestamping Date: Fri, 30 Jun 2023 19:10:50 +0200 Message-Id: <20230630171052.985577-8-peter.hilber@opensynergy.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230630171052.985577-1-peter.hilber@opensynergy.com> References: <20230630171052.985577-1-peter.hilber@opensynergy.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB8EUR05FT036:EE_|FR0P281MB1657:EE_ X-MS-Office365-Filtering-Correlation-Id: c8cd4262-85b8-4365-506f-08db798d30bb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: OiQP6oSlTNBhJTbFjYANv7FzY6Rt9o1VCywT2YLqVd2SLVyi+ilb4+LC189uP54+fJM9d+FonlBALxPnlcmirsZiNa8hvKO0bVrWHpuTQSXIdvgTzsHTP1jEZW9nRj1yuyJaoaARKKGcjs7Vh3IiEtaAJu9qOWPZz6viTJw9g5AZwrukWEzYBdvEwYV4zv2aJyRKgqodamKV+eI33Gmq8z5ebwldOjY4n/U+E7qmuoWsEd902H/nEbV0J7mec5ZNq9Kr7LgkfJOak0+o4U7zIiPIE16anCOXFQgnmcDpjmZuxorODYhVSnXGsHuvId7G+/YR0JSZdkjhxphbrV7VrrlVhDAAeCMRuzcz2KJIZlIEc5uuZytazrI81K8HteFpuipSx7f1EPD3TOYJ1FrwUodHLbjbzFnq1Y9gkodgm2ZKn3WE4fLkXxaZuKl09bRykUHMu+KdnnjsTWF31rh6ek0Z0VVyMXdVC5BgzOFCGdippjMkuP/H9rfQLXevSsiC7ZNdzeB5pWVVHpcohN4LjuO0Ey4DwU/xURjpzyPoMOytqQSfbHBpjgGzhwWsbWBI2UvwAE5gFvdPs0fMW3GqCtGar+RQUka9KIvHUYYUwu0eXWrJkRAGDN9/R4W5BZ306FSeO2IBXDcZsk2nICyuRVQEjGyKqNrWkRQ4Iv2aaF90MVNC3g8CBLANXG6jGsOxo1FvOoGFhFMFL4p7Az0og4qJvdTQnov0mcAVHP0cmhGg1C0Q+/5Lk7m3b6ApbiLiskBInbLtth2FEpwXExzca43S1TFyMyZmx8V1fiZW6K0= X-Forefront-Antispam-Report: CIP:217.66.60.4;CTRY:DE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SR-MAIL-03.open-synergy.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230028)(376002)(396003)(39840400004)(136003)(346002)(451199021)(46966006)(36840700001)(86362001)(54906003)(8936002)(8676002)(5660300002)(82310400005)(26005)(44832011)(1076003)(478600001)(4326008)(70206006)(70586007)(966005)(41300700001)(316002)(42186006)(186003)(2616005)(2906002)(47076005)(83380400001)(336012)(36860700001)(40480700001)(36756003)(81166007)(41533002)(36900700001);DIR:OUT;SFP:1102; X-OriginatorOrg: opensynergy.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jun 2023 17:12:31.6895 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c8cd4262-85b8-4365-506f-08db798d30bb X-MS-Exchange-CrossTenant-Id: 800fae25-9b1b-4edc-993d-c939c4e84a64 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=800fae25-9b1b-4edc-993d-c939c4e84a64;Ip=[217.66.60.4];Helo=[SR-MAIL-03.open-synergy.com] X-MS-Exchange-CrossTenant-AuthSource: DB8EUR05FT036.eop-eur05.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: FR0P281MB1657 X-TM-AS-ERS: 104.47.7.177-0.0.0.0 X-TMASE-Version: StarCloud-1.3-9.1.1011-27724.001 X-TMASE-Result: 10--11.667500-4.000000 X-TMASE-MatchedRID: huMMtcahIlDc1YtpVABxhScOunEIf0eXRyG5SSR7mMFHwPpoS7xiTQ3u hqemVNabwqNosrPrbHMTsTmVJvxcHKjHzroBTUY9L/5nX3iQblcH/MsNCRnylchGESF2QtYSsgk fnaHAFPzm9Tc/GgfFJwFtWueZlMH0Hw0ziwm/5yd81fikUYgyLefShpTpYz7797gvW7V0yoZtyV XNSSC+Bni2yHSIHoZstv5tlY0RB3F1dilwOXZXnZOU1MLNH5QIp9ot5GYsw7Gc2JxbD3wPF24q1 hfzDZy5xyWmjWIJIoJwT/DvNCCX4MddJPEKsqAMES46qCSbf/WHvP6CYoqPSgN/ojyMXH62DEom GUxecKpxg7svMtapLpefsKoW209bgHkGDkIaUnULYpBk5/uhSeQZtxwUYGQZRpMDBdUmwGo= X-TMASE-XGENCLOUD: fbc7fa83-7c2b-44b2-acde-9dcb2ca7bd88-0-0-200-0 X-TM-Deliver-Signature: B3A2AABD22BC6B721119BBE8E963F1C3 X-TM-Addin-Auth: FqTsgZGS/LY7uD/3u5PjxWmSaftmsshxVUNRF/ZAPGFXer8fdMKSkX3/9jh 1KfeIN/AiRbIL2xkjrDrr4wIBEMCuOidwS5xZsXBiosoUZgOzjb4SUgfAEVOCBCatS4pB6LPyHp y0Q1DpGIhs52iMPg2V5CVxhmdo6AHu1v7U4jVLmy6mQnJ158CrOdfhx0JpTCyIY/3WK241rIJ29 t2FN7qUYitRkAeX2zjtckBDhlmkHLjaN7vDVFs76aV6qm1yaJliJVkB0VHbxNyQiCkx8rNv8Rho yFqmNrFf+FKzdDg=.0DHIXYL8xaY4xFvpFTmQhLEmLY1fHWqAjCLWjFCQYEkATto+GZQNH+ZiZo l4Kw242CpfzgwoPk6WkjdjelSLs8Ot4gDSTt+cvMpCwFTFSRv6HsZnWLiWbYt6OC0Fge7Pyxl4Z M1Z96C3/vYnrR4j4TXNxK/894g93mJL1NNbDy/KA7U+IdT2gQiHnK4mwvyVnCtpRcELAkm37nO/ yizyHEnfHzS75JuT88wnbX+q5iOyGfoSlrWaQJeBDcm9plA7ipJ8BGfvNTSx3k37pM/5OUVBeem h05TKU84j8Eq42ZP2ICSvsSVN4fiXtmAI+h7qKXLjFrY2bSRGDlHsJNG5EA== X-TM-Addin-ProductCode: EMS DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opensynergy.com; s=TM-DKIM-20210503141657; t=1688145153; bh=+btlWovU5V7tHS5gyvszgPfHBPOLNvhNFh8IVZ28uwY=; l=3149; h=From:To:Date; b=eoyDQiYgNxkGDkgrT1VFWHYo59u2BLLOEZ3EgFUkzWrCoBUofGCmJG+wZobQP7jVA ZaGIn3q7sJ04faHqQQEWm5OI94uLo3zfLJVDLk4R9qDdv79cq4QexoXXV6n/LZYltL BCfD+aoUTcxzF1e90lxIP5oPgKqNnGQPj83mHbV0Da14n3J3tm9vdYlukh1EkokAnS isw2HN26Bq4zgDh/UrAr2AnKRoTOAmjCIuC8Pv9Da9RE+VmCenoXXcYSl419aNdPBB E6fj0FFSOLFz8IjMedXDvEaVFTrVinvZlTO++qN9S4aec7TPfivlScOfkF+KQE++R1 ftE1DUQ+zqo8g== X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_PASS, SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770151988517358529?= X-GMAIL-MSGID: =?utf-8?q?1770151988517358529?= Add PTP_SYS_OFFSET_PRECISE2 support on platforms using the Arm Generic Timer, by forwarding the clocksource information from arm_arch_timer. Support only the CP15 counter interfaces, since the memory-mapped interfaces are not supported by the Virtio RTC draft spec [1]. [1] https://lists.oasis-open.org/archives/virtio-comment/202306/msg00592.html Signed-off-by: Peter Hilber --- drivers/virtio/Kconfig | 13 ++++++++++ drivers/virtio/Makefile | 1 + drivers/virtio/virtio_rtc_arm.c | 44 +++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 drivers/virtio/virtio_rtc_arm.c diff --git a/drivers/virtio/Kconfig b/drivers/virtio/Kconfig index 7369ecd7dd01..ed3f541032a0 100644 --- a/drivers/virtio/Kconfig +++ b/drivers/virtio/Kconfig @@ -203,4 +203,17 @@ config VIRTIO_RTC_PTP If unsure, say Y. +config VIRTIO_RTC_ARM + bool "Virtio RTC cross-timestamping using Arm Generic Timer" + default y + depends on VIRTIO_RTC_PTP && ARM_ARCH_TIMER + help + This enables Virtio RTC cross-timestamping using the Arm Generic Timer. + It only has an effect if the Virtio RTC device also supports this. The + cross-timestamp is available through the PTP clock driver precise + cross-timestamp ioctl (PTP_SYS_OFFSET_PRECISE2 or + PTP_SYS_OFFSET_PRECISE). + + If unsure, say Y. + endif # VIRTIO_MENU diff --git a/drivers/virtio/Makefile b/drivers/virtio/Makefile index 4d48cbcae6bb..781dff9f8822 100644 --- a/drivers/virtio/Makefile +++ b/drivers/virtio/Makefile @@ -15,3 +15,4 @@ obj-$(CONFIG_VIRTIO_DMA_SHARED_BUFFER) += virtio_dma_buf.o obj-$(CONFIG_VIRTIO_RTC) += virtio_rtc.o virtio_rtc-y := virtio_rtc_driver.o virtio_rtc-$(CONFIG_VIRTIO_RTC_PTP) += virtio_rtc_ptp.o +virtio_rtc-$(CONFIG_VIRTIO_RTC_ARM) += virtio_rtc_arm.o diff --git a/drivers/virtio/virtio_rtc_arm.c b/drivers/virtio/virtio_rtc_arm.c new file mode 100644 index 000000000000..2367f054081c --- /dev/null +++ b/drivers/virtio/virtio_rtc_arm.c @@ -0,0 +1,44 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Provides cross-timestamp params for Arm. + * + * Copyright (C) 2022-2023 OpenSynergy GmbH + */ + +#include +#include + +#include + +#include "virtio_rtc_internal.h" + +static const u16 viortc_hw_counters[] = { VIRTIO_RTC_COUNTER_ARM_VIRT, + VIRTIO_RTC_COUNTER_ARM_PHYS }; + +/* see header for doc */ +int viortc_hw_get_counters(const u16 **hw_counters, int *num_hw_counters) +{ + *hw_counters = viortc_hw_counters; + *num_hw_counters = ARRAY_SIZE(viortc_hw_counters); + + return 0; +} + +/* see header for doc */ +int viortc_hw_xtstamp_params(u16 *hw_counter, struct clocksource **cs) +{ + *cs = arch_timer_get_cs(); + + switch (arch_timer_counter_get_type()) { + case ARCH_COUNTER_CP15_VIRT: + *hw_counter = VIRTIO_RTC_COUNTER_ARM_VIRT; + break; + case ARCH_COUNTER_CP15_PHYS: + *hw_counter = VIRTIO_RTC_COUNTER_ARM_PHYS; + break; + default: + return -EINVAL; + } + + return 0; +}