From patchwork Fri Aug 18 01:20:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Hilber X-Patchwork-Id: 136150 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b82d:0:b0:3f2:4152:657d with SMTP id z13csp2065046vqi; Sat, 19 Aug 2023 08:02:32 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEum9RSXEhetdJnMzF0TrPrcUj4zdiO4dhYH0Uf4YxoFogXxOaz8bihR1bt2N8ad+68ZYAH X-Received: by 2002:a05:6808:210c:b0:3a7:4a89:752c with SMTP id r12-20020a056808210c00b003a74a89752cmr3689731oiw.31.1692457352493; Sat, 19 Aug 2023 08:02:32 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1692457352; cv=pass; d=google.com; s=arc-20160816; b=QB5PKnpVLh5Fywq7m8IgVezxoIsBi9q11mnWNEqcKq15PLV8AhtDZa+7csjJC+A+rb JTe6Gv8ND/OYOM/uprmBuFcbwbvogXgqx5F6l6CZDzKvPSMr90zucsiCW7Cm5d6N+cDE iIja16JTFpohw6raR6ETyNreHe17yWjVezph7tdPkBh6iPgNwORGnu85TOXB7MlGyTZQ BW5UmaBSDT6cbYuLpbxTMd+lYFhFnUY96kAMv3NUHH2UzhJVca0o+KXvwgbAc9mVlaNC bLzs4ugvS+Pah/098CELXpaY5wbzMkgSppkx1W35nQ9a0nuNAROp8653ebeYrizKDnS+ +oGw== 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=1jMpDW3EhM/DPZc/6Ftfol/s8Po8YoQrXZd9PFLo2ww=; fh=H/1qKcdFFUewFWZTgD6l55mLRfSJZJU9wTmXKjc0fz8=; b=RlpiTWB2OLESb5hzV18x8p7HOkdNBGfTnDvwJ4ipyDr5z3r9tj+xt7HNvMBEWrp/dS ZdERgANouWs9exZJcyjQEOlVrDAzrICOD/eFSf+2/H3jqJCSE+dLhOujDfTcvfx9wwep M6eRVuNsVGEZhwMDdKItN97YszNZ4LHbYR1MX8pMXRkF0S4bTwDwYKwqOxxZ+jna4ZR0 BouZhGV6pqQGww3YT4amPokBupatnk5BX3lkiL4fvydTWtMFOLUMv+KZ9Tetg0Q80kxx zbpzZFj3e/2R5shgwL1tVy0kAIR/VeayUoiqIqxsRMjUpDCuX4m+JcziWio+rmHjXUP3 rvFw== ARC-Authentication-Results: i=2; mx.google.com; dkim=fail header.i=@opensynergy.com header.s=TM-DKIM-20210503141657 header.b=Vjk2tjn+; 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:18 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 lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id l62-20020a638841000000b005533cf1fdbfsi3611088pgd.629.2023.08.19.08.02.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 19 Aug 2023 08:02:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=fail header.i=@opensynergy.com header.s=TM-DKIM-20210503141657 header.b=Vjk2tjn+; 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:18 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 3DF52D8D47; Sat, 19 Aug 2023 01:45:45 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1356903AbjHRBUr (ORCPT + 99 others); Thu, 17 Aug 2023 21:20:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60936 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1356882AbjHRBU3 (ORCPT ); Thu, 17 Aug 2023 21:20:29 -0400 Received: from repost01.tmes.trendmicro.eu (repost01.tmes.trendmicro.eu [18.185.115.30]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B9E6A3A9C for ; Thu, 17 Aug 2023 18:20:27 -0700 (PDT) Received: from 104.47.7.176_.trendmicro.com (unknown [172.21.196.113]) by repost01.tmes.trendmicro.eu (Postfix) with SMTP id 830881000007D; Fri, 18 Aug 2023 01:20:26 +0000 (UTC) X-TM-MAIL-RECEIVED-TIME: 1692321626.183000 X-TM-MAIL-UUID: 3fab948a-8b7a-40be-ac8c-11e5537d2e33 Received: from DEU01-BE0-obe.outbound.protection.outlook.com (unknown [104.47.7.176]) by repre01.tmes.trendmicro.eu (Trend Micro Email Security) with ESMTPS id 2CDE0100003DA; Fri, 18 Aug 2023 01:20:26 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DIZMBMb0/onzjpoksuB4f3Kh63MtjCjCf7G1BB91VXiIb8JiHfUb4D8pY5apJ1WqiU3GunFs6KfWNL/zNIkjdXABK5RGep1L75H/BZz1xoxS7thuxTFYrWJI5jfiACaNVrOi0d85xc8q8GbPJh2FMg4T9qBtu7bKpuNyATJtoyyVFgZYCUy94E4q+GMceLzK6u3VHm93XeLis6pEbhE6GqpUbpFYhjh9iOb4Ny+UPZivlK8lieASevSjLcuN/Hv7dO1GOc3Q7jWI14JCc+eFv6ZmqZAzjSK32N+WZidYPlj/usct0VGVncZL9ufujopvHjLEDkuOSrT/hImcFsO42w== 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=1jMpDW3EhM/DPZc/6Ftfol/s8Po8YoQrXZd9PFLo2ww=; b=k2TyGdqIICJFXBnIJdDNNleS2vRzHVGTujbQupGzyaLp4xg3mi1hJp3TSyuM4SzPnTiZoEzS6vQ+/WIHSOpYcq8HWg3YrTW4MWdNrFfiV1lES1nwYpHSDObCnbNbvnH6o6/e07C8Yxhmht78WQ72QwfcuEwkufVEKieJti5DXq1TUJy41RMLK+BoHZhtacTRO7QS+F+2Muuf7N9/sBm79l9U6Q90W2jcat6Mu95FJH85YvaAkr7UBQMvRvu8S2lQTDPvkhFwXDwEF5KSsf5v+5v+hyApLuWgmgsChIJDWIIAu8nUJC+O3dllDBRMXQtZGx5gtRdCOvcJRobre4SVmw== 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 v2 1/6] timekeeping: Fix cross-timestamp interpolation on counter wrap Date: Fri, 18 Aug 2023 03:20:07 +0200 Message-Id: <20230818012014.212155-2-peter.hilber@opensynergy.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230818012014.212155-1-peter.hilber@opensynergy.com> References: <20230818012014.212155-1-peter.hilber@opensynergy.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI1EUR05FT018:EE_|BEZP281MB3029:EE_ X-MS-Office365-Filtering-Correlation-Id: 4c7e8aee-aad3-43c5-525d-08db9f894c75 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lkM0T3nHOnmAcNPq8FOBynIAXSF4tfSOkbX+QE1azUHtNqv7q4U92Mro/DNkLFadHGqXQY8PUJi2Qj+ZYyj5U3QkRBVxUPdiiJNyJQ0oNal4nj8oR629dOqRRqUWsWmA6eH38W6WcXgyY+Ku6piZwebk/OieqxIq9POWsBGPcswKOQEv6lb4PavjVFosuMf9Bchx0OoObftKa8/8vZnzJ/sYNApV6ENaH1qAqq6QjXBDFqh0T+OiIGENgC2cSiOiOF7fe+Cgbm0s6iPyEJAOZ9E9x4df5IsWS+rkCmjZEGGZM3AfIuz0ePBgDGJDXzu7w2KspPF0hY3uVcLC6XT4xdz3hRvbVZes/qoMXsoDiVz61nKlLvB2JnFmJ+qbGf2Pj1jtoISGpF/ZDBqvuCTeMeel+xE7KSc8z3z1LbMZpZNlkySwweg7X58zu+qdzalGc+KJeMW/IuGgPNfkOjsC0XG17CXDLDjM4EfFF5EcVXuF0e7b4rVQypZxreeEEkhHE7qIDZ/XVUNFJbL2Wq0exFl+gdHMwshLCxlJauMmGps4LIoh5PZYNdAsWudlsuY3GAar5Eo7Sd0wV5FpHsAcY11TnPRy2qpDtZSIfsqIhZdchVzWxZPw5eKxUcErVd28oFuaKP0h+oXXf625e/W1Z1QaCuIg/HmVIHPCd5oVB/37rsfm5dTNL7otOemprJDGlrS+pw1qGqYMxWKwpy3gkZls2raTk008KHONOCGajlXBxPOfBBioPDHrRFvZ+8rvJBTELyeKA1HtOUIwbWXQSF0Qniu4wWqUmrXM3DO/I+M6+cbTKTnPvXV9sKLCHLTh 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:(13230031)(136003)(39840400004)(396003)(376002)(346002)(186009)(82310400011)(1800799009)(451199024)(46966006)(36840700001)(83380400001)(336012)(81166007)(86362001)(36756003)(47076005)(36860700001)(1076003)(40480700001)(26005)(2616005)(8936002)(8676002)(4326008)(4744005)(41300700001)(54906003)(70206006)(70586007)(42186006)(6916009)(2906002)(316002)(5660300002)(478600001)(12101799020)(44832011)(36900700001);DIR:OUT;SFP:1102; X-OriginatorOrg: opensynergy.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Aug 2023 01:20:24.4212 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4c7e8aee-aad3-43c5-525d-08db9f894c75 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: VI1EUR05FT018.eop-eur05.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BEZP281MB3029 X-TM-AS-ERS: 104.47.7.176-0.0.0.0 X-TMASE-Version: StarCloud-1.3-9.1.1011-27820.003 X-TMASE-Result: 10--3.038700-4.000000 X-TMASE-MatchedRID: vveLpsopuKu6TyUO/xKZhTakEkBtr136rutCeVh17xk7dRmDCUrvToyD IPOAt5xjKy3tE1HfkQHDxsdOfchH340cVCEiK1Pf0pUa1RtpyoMqq8hD1DGRIIloy91GB/ZEZSL 4AKI4WH7m9Tc/GgfFJwFtWueZlMH03IFzQVLcaPdCPQBD3xA/3aODSWu0oxbK6gfKtA7Yhlrtmy EvxwC5ZFJxK/8gkcZzWa6vTkKxwrI7AFczfjr/7FNYczJS4TbyEZmZTL07e5zsGsMHPmPu+4Pka zp5pG9Ly2RhSSvTaLc= X-TMASE-XGENCLOUD: 3c362cb4-d461-4c7f-a4df-3dc55808fe4c-0-0-200-0 X-TM-Deliver-Signature: 31C04E106467642A94659F29739D9854 X-TM-Addin-Auth: /ypS+Gi8TQfdEhWjPcDU3XqNVRbGbZZ4PiKT3vmEz0zDBu2G4PpcCmlvfVX XZfv/Vzgh8wbDvgKmHnv+FdgHViHKuRunmDi+r01eAtqoD/Gth4Q8yV8obfoNM8qBn8OBK/xMdN cIfZTkLXAt0hhWCqpLlYc8IsVrjNldBprutwgecXMttqPBQl6ITDazoYcD9WF5EzxOFBUXU/4Jy 8TfYWM9abRYdLrVdK/kjiqZHQTUkl1c+TRhnOLJiv8dpDR5AHEj5zuR6DUeuPaa9lOV3jTPpL3v 8rfUJ0AScAyN8Ng=.s5AGlrpyNmFcF4ROBFkHtInc9YX7yij46V5OmbgeHvZKAntD54kpLNh3LT /IgbxJbbgi9z+hPOENavZFKibpEVdA54m1RIMhg4q0sXyYqNYvhH8Pxq2tljZWy6QgZ4gZXPnyr RlBr4hKd4bvQuQRgxRyEy4ZhpjQJbnnNEFd56i9BDbbCyExsvKs5AOgX01R8ALBcOmQwdVIv23b Z8UuW5GhutnImS3mOP6qqTNevBTpJGd7i+lXOxESAP5WsWGFxDcpFKtY4ftP7eH1OjrnkXnH0zU 5LggoUQSVYg6IMF7Qf2HBmfp7bgx565cZy5HRAGZgjse7ECq7NFtcHjVDRg== X-TM-Addin-ProductCode: EMS DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opensynergy.com; s=TM-DKIM-20210503141657; t=1692321626; bh=wfDRhMsYwY4h6R3+IqAH47PsOI2FJDn9J7CtyBigWeQ=; l=1035; h=From:To:Date; b=Vjk2tjn+FIZ26gu9yWRB7sX5h5VtnqvI2yeQmbG8xKQkdQhh7gejjSC85jYhEOofk 8wt+n30h34AnaCLYL2okL0zzeufhUYXOAegdVGwrSd4SCVRSDuHvb1JDD0u3ca/5ni x4tZ45WbjKnSF6aJwiP7Ua9qiVos3zdkApA5IfrGAzm0vGUtJb/w701Zpbk4F+29Id cH59Il9dRzmnOY79k2Wu8OsgCKqKRWnW859lsEuG6LsVwX1efJ6c5bgCtGQGYAxWPY B/+fyVaujqTB5HIwu2gBeg18W/ol7zcx5TZjjg945l5gJ5Omjt97i5LIyFp5O1/hW0 IlJwJQjcR14Dg== 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, RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS, 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: INBOX X-GMAIL-THRID: 1774670160806114968 X-GMAIL-MSGID: 1774670160806114968 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 56428eadf4c1..cd5c83473bab 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 Aug 18 01:20:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Hilber X-Patchwork-Id: 135991 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b82d:0:b0:3f2:4152:657d with SMTP id z13csp1243034vqi; Fri, 18 Aug 2023 01:26:51 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEEPtdZnDbrVBWXqZL9bYtDGFTKUpzENzMIj9HD6L0rYzhNiv/mv3GeaqKorvDmQlDgnDvg X-Received: by 2002:a17:907:1dde:b0:992:872:76d4 with SMTP id og30-20020a1709071dde00b00992087276d4mr1303205ejc.17.1692347210842; Fri, 18 Aug 2023 01:26:50 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1692347210; cv=pass; d=google.com; s=arc-20160816; b=dtPIx0Oe2/iO4jX1pTNKPD+mSMAnrgRLOdheb+B07/XL0qmmgRc/J7uagQ6ydXvaBp kXqz1recGUv+HirNPS0ugMmWZ0F1upmLJVCZx4d9gBdZWmQSd8+GjlsHr+p6VCzqOFj/ yXtP7qy7hbYmbdXPu8YeHDQN0WBjkISNZecBtYVO1NAdGx+bI1swO7y/MWkpCGwoYDOb n9F1hDcqOLRe3LYtK0YtSbsT/bD575UXrktfWd5MbOezlHzoAh1N5UcZNoPE4IXGa/tC hMTX1ANA7BLpg//wb7yzq5rJO9eF64mGPikA6b0jFr+DW18kUDxLq9f0CBRfjQhHLJmy LhmA== 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=/6eWItVq2HvctmVHpWJpp6CPXsfXR9umUF6UCun7E1o=; fh=H/1qKcdFFUewFWZTgD6l55mLRfSJZJU9wTmXKjc0fz8=; b=zsEuC9DfJoN/2HwjN6Q8f2cQK/tbB0D+/6rUfw7lWkG2RAR3OXtaseOhbjRnRvv7zM Udju9XjZ3n3eluVtV5XSNKQerFZ4vqVkuuQ3ic4hVjiBakYjBaATxWfYf92NOvBfafEf tnVlNaSrVA4vVgibN1M66imBM3KNu81RKsuo0KVkqy9tXIcDU6KtrjoDRPOqBA6Ax8dV wGy7Fib4YG9BlIOZptNkhvBFZk5uwSPt6EITSkSyzO/AVjvZEtGNMiYcKj56/GUzIjc6 tUFlXgwb6imJu10SXfUYJP9XqmYOr3kLGeZgnf/igpD1sprwj1OlB9l8GFvfhpquDmjT WeMw== ARC-Authentication-Results: i=2; mx.google.com; dkim=fail header.i=@opensynergy.com header.s=TM-DKIM-20210503141657 header.b=XXhBMz7q; 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 s19-20020a1709062ed300b0099b49483261si992643eji.311.2023.08.18.01.26.27; Fri, 18 Aug 2023 01:26:50 -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=XXhBMz7q; 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 S1356897AbjHRBUq (ORCPT + 99 others); Thu, 17 Aug 2023 21:20:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40938 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1356883AbjHRBUa (ORCPT ); Thu, 17 Aug 2023 21:20:30 -0400 Received: from repost01.tmes.trendmicro.eu (repost01.tmes.trendmicro.eu [18.185.115.26]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5A4CE3A9F for ; Thu, 17 Aug 2023 18:20:28 -0700 (PDT) Received: from 104.47.7.171_.trendmicro.com (unknown [172.21.184.89]) by repost01.tmes.trendmicro.eu (Postfix) with SMTP id 16952100004FC; Fri, 18 Aug 2023 01:20:27 +0000 (UTC) X-TM-MAIL-RECEIVED-TIME: 1692321626.821000 X-TM-MAIL-UUID: 0198130c-4a3d-4cdf-bd3c-d3e3f48fa5bb Received: from DEU01-BE0-obe.outbound.protection.outlook.com (unknown [104.47.7.171]) by repre01.tmes.trendmicro.eu (Trend Micro Email Security) with ESMTPS id C8B4A1000030B; Fri, 18 Aug 2023 01:20:26 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dVjHigM//dR+PPHcF/wCaBtWGX1wcpvzUDpby4/QBBhx5AgehxjJ1VsECxxc4vk6LIxOMuLK6gfWGe9VRTWgY81dQvQzTzZ6KLjvCOpIn0TRwzGtykh9Aq1E058BV/12CjiKcFh+iEwX0xA7vOCRhMKQMSz4tz0BD6m3xscfqqpIkHbsgXU1TxxDK6TWtA3HxYNo2E9Y0oeGfpEsPweaJ3TiXxCUOgyjhEMF6/cJcVYmLUNeP7vFzCUTIdN1LjO+roiYBKxkLvxeWShDO/CfNyMsU3alif5w5s6u5NwGOLo6osEhjN4AuR/Y47IUMOfGXZZu9Xtm3+7LgAQB5PG9Vg== 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=/6eWItVq2HvctmVHpWJpp6CPXsfXR9umUF6UCun7E1o=; b=cy59ilSArkeL/sEzcHEiKBlAEjyKaOrYsdEVPesA/QF7sPbsmnhn4e/66jyQflnx/oPXDSwsNoKwk6qV+qvjDGTdfg7Wpacry9wbmd0T3+mYaxW68+jvikCELf00Xf1uWKCpSEUPa9yJpJDGfdqw6qerB1/DLmG9XneTWMTtz9F+wLazT7Zlrk+RVxhzJbnamAM/0HiTguiNglEveWNwpbh9o/450Dg1HdoTJEpUltiD4G7n58BnZ9S9nmwxl4L3NyHCenSXADseV9RxX5pm9ociaIXoLQTQnUXz9CQwrs+AZoiJ4Lf6Z8JN/9GBWQVLYwQDXDc3b4i0H9bRYQptMA== 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 v2 2/6] timekeeping: Fix cross-timestamp interpolation corner case decision Date: Fri, 18 Aug 2023 03:20:08 +0200 Message-Id: <20230818012014.212155-3-peter.hilber@opensynergy.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230818012014.212155-1-peter.hilber@opensynergy.com> References: <20230818012014.212155-1-peter.hilber@opensynergy.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB8EUR05FT012:EE_|BEZP281MB2659:EE_ X-MS-Office365-Filtering-Correlation-Id: 08e07181-ed47-405c-597d-08db9f894cc7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fntg2dHADLFh0ewBoVl0KSmtMEZ/6KuhbpDLzYDRPJbNN7oEIHhkaOOdAD5iX4WJad20iYQnaLJAL/qJs+/9o8Oe55lqGIaXacoWcpSeaoTL+WFnv06Zt+3Vybyj3KUS9cihgYtjIJPluGsKyMdReG9Jrpl24HjvRybST2+w3C2/EwotcgSZbKkFWrDMTd6fzTFV3AFGclj198rdUNIfSVv+CpARz2oPXNu91DT4GoN9Iq7kOKcETJ3AG4YLbua9QRWocRUtpy1UxZCMS/tJXSU7wH1BR/wFbhef84taW/16oVBb3m+mNU53JHGpDLGxWvxZHtWhTM7wZuOjO2gqC/p38FADCmBmFbChJXq/JyDxWn9yra+qglTGiA0BfMSgrejAkRh0YhDutnV9iclNsJXdJlN554554ceWbiNUnsaRR1VNo1xX5y1Zl2Tprdv2LtFZ/uHrcZvqnVocfVXgXmWhBi9dgfxYu51tyhzcu6Z2qS7rWg/fWkHd0dtKROtuhBEdPzLEBstgq5Si7lRdRqpoQWNsMZDuxqtbAuZjMztQC+ne16B4tQ1JTEA2aW8ta/JWBOYORb13Aa3V83WvfNCV9FN8h24bAzuWnQPDeH85tsINtrg30J2RAvBhVfMAbK+qHMALW6ey9EvEvv68gyWiJv36ENiLqbSTHCipIsNkx1w4cd4CnycwlEOYif5PWXWcRRcpHU/CurQ81w39cnBMT4V5tdN//UwSSQL1KfqBSwR5xtvgCtih43tutXrdSSFXAyBRzfNaeJebJA21P4BEY1aWf8U19WWy4HLHYEhW+Qf/lDwLbty4MR0JKCnQ 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:(13230031)(39840400004)(346002)(396003)(376002)(136003)(1800799009)(82310400011)(451199024)(186009)(46966006)(36840700001)(83380400001)(2906002)(86362001)(336012)(478600001)(40480700001)(1076003)(36756003)(2616005)(26005)(36860700001)(5660300002)(41300700001)(44832011)(42186006)(70206006)(70586007)(6916009)(54906003)(316002)(81166007)(12101799020)(8936002)(8676002)(4326008)(47076005)(36900700001);DIR:OUT;SFP:1102; X-OriginatorOrg: opensynergy.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Aug 2023 01:20:24.9432 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 08e07181-ed47-405c-597d-08db9f894cc7 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: DB8EUR05FT012.eop-eur05.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BEZP281MB2659 X-TM-AS-ERS: 104.47.7.171-0.0.0.0 X-TMASE-Version: StarCloud-1.3-9.1.1011-27820.003 X-TMASE-Result: 10--6.058700-4.000000 X-TMASE-MatchedRID: LE26z0m6wxyHXEtxeZW06KF4nhfuztKa59KGlOljPvtYf8LrTKM9HLMr 1BCU9VEa9MR66Vl9gxh3ctDbGLJrCd7BQ4zNEspZnRTJpY7VAKebyUSNdkyqzsKcbytqP33n5/2 vLspc7WPSwYxu9Jr2alV9J15hwj6kM8VWyP3FqfNGDXkz8A7dj16UsWSgw8xYayFQNyBnwgugxA 0GvroilH8aPsMAwRmakGbxVBbOQr/HXSTxCrKgDBEuOqgkm3/1h7z+gmKKj0oDf6I8jFx+tgxKJ hlMXnCqcYO7LzLWqS4HJk9mfVhpP+eUQOGpG0S0gh5KjTbSHR4iRoMHgyRZyQjyWUk0Cg3s X-TMASE-XGENCLOUD: 87e3e62d-a886-4ebf-b870-dedd68afcc28-0-0-200-0 X-TM-Deliver-Signature: 6DB098AD9FBA7D23F2B12E17C4C15517 X-TM-Addin-Auth: 9O9gNTs+UpLZp3vuAHb914v3n5J6IGjVdK423LGXh/KgDQ6+vUO/7pi60Ai 7rDtL0tgV7Uc5CNy6jTVtio7XxbVgRiZoHioxMlnZpvRAKy3iB1rMqziHP38fYB01Hln6HpAhLS M2XmtMDZ+6Zhmf73LubbyR2ow0eUoSj44dY0i5636ATk1I41mHusPKXV11MCBUNI/UyxplAMBp/ YPVJ4/8bDxeHR32zd90lGxMitvr72X9ybj2cWPsPeQ4uCagtG5194ap2J1lhQ+dboQOmhtWWq06 e6ItL+K72QnE4zk=.Ot8HYSOhRhAVllFVdO+Jvx7VDZ+Xiv7NImBFJs71X8utw5t6bq6LCISUcg gMd8Bvt9LQC5uhrt6AqrUQq3rQ8ReDNDGbBuqSWrRY3yRG1XshHRGdXRpKOLtEWHnejwXjarX2J X3y/f2DgaJ3DlwiugtS+DJ5cbP+vj+QPGnve7CYhxk/Wm9cQXspdgK7c/3XklSSbSFNdWkGjWaT o3/SXjtLjwSfqrt/+eCwIcyUODPudP9rGZpDUf3uN8ZCOL4JJa517fh6G7X5vQYhUp3LNfPl4dh O1iBwdn93Mc6CGc+BggM4hlgiX78Ga4x5sy7vRYWgcdzkeZaImnEk947a+g== X-TM-Addin-ProductCode: EMS DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opensynergy.com; s=TM-DKIM-20210503141657; t=1692321627; bh=hskQ4dmA2LHnRA6J95hHwMfy7AZjXt9U+gBNX32hFM0=; l=2568; h=From:To:Date; b=XXhBMz7qvRirodo0PgLpAzinTNQ5LJAldMB7Gvr+lLZ1P7bETDeSuL4kMgv+tVDsz tyqg4K5CBnCqlcg15jvvxe7NG1uM23tzQmuD9khG+sPtHK/TaYUrivXcOvQtGze2hc kZq5EiRRLxbvuqV475qofXL15AgaJ2ugP1YND89G2jbwV9CJ2Fj2GH9bf/+AQU0uUt Xwl4jU0d7eZcmUc9c0nIl8sASgJm9j83kzdqNx/Mi2v6l84tbVKfxJQt8fE9UXBroQ 1XkzTsVxTVlhjDw2nHg4sRWRp1BAQSSc7cDLlCHBRoNNqdzPl7yrCcIEjLkvwwAmiY IqBj7vTDSZSDA== X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS, 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: INBOX X-GMAIL-THRID: 1774554669354977415 X-GMAIL-MSGID: 1774554669354977415 The cycle_between() helper checks if parameter test is in the open interval (before, after). Colloquially speaking, this also applies to the counter wrap-around special case before > after. get_device_system_crosststamp() currently uses cycle_between() at the first call site to decide whether to interpolate for older counter readings. get_device_system_crosststamp() has the following problem with cycle_between() testing against an open interval: Assume that, by chance, cycles == tk->tkr_mono.cycle_last (in the following, "cycle_last" for brevity). Then, cycle_between() at the first call site, with effective argument values cycle_between(cycle_last, cycles, now), returns false, enabling interpolation. During interpolation, get_device_system_crosststamp() will then call cycle_between() at the second call site (if a history_begin was supplied). The effective argument values are cycle_between(history_begin->cycles, cycles, cycles), since system_counterval.cycles == interval_start == cycles, per the assumption. Due to the test against the open interval, cycle_between() returns false again. This causes get_device_system_crosststamp() to return -EINVAL. This failure should be avoided, since get_device_system_crosststamp() works both when cycles follows cycle_last (no interpolation), and when cycles precedes cycle_last (interpolation). For the case cycles == cycle_last, interpolation is actually unneeded. Fix this by disabling interpolation if cycles == cycle_last. Thereby, avoid the above described corner case interpolation failure. Fixes: 2c756feb18d9 ("time: Add history to cross timestamp interface supporting slower devices") Signed-off-by: Peter Hilber --- Notes: v2: - try to clarify problem description (John Stultz) - simplify fix kernel/time/timekeeping.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index cd5c83473bab..70ecd44fdd9e 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c @@ -1247,7 +1247,8 @@ int get_device_system_crosststamp(int (*get_time_fn) */ now = tk_clock_read(&tk->tkr_mono); interval_start = tk->tkr_mono.cycle_last; - if (!cycle_between(interval_start, cycles, now)) { + if (!cycle_between(interval_start, cycles, now) && + cycles != interval_start) { clock_was_set_seq = tk->clock_was_set_seq; cs_was_changed_seq = tk->cs_was_changed_seq; cycles = interval_start;