Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp3225332iog; Mon, 20 Jun 2022 14:33:33 -0700 (PDT) X-Google-Smtp-Source: AGRyM1sK+YOp5GMMc2ls6Q1LHcO9lQyAD5d8QT+QabXAtHi+AJnCde17fRVsjFecgVVIcqVlrFfp X-Received: by 2002:a17:90a:e384:b0:1ec:9ef5:8704 with SMTP id b4-20020a17090ae38400b001ec9ef58704mr10149901pjz.125.1655760813477; Mon, 20 Jun 2022 14:33:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1655760813; cv=none; d=google.com; s=arc-20160816; b=vyFZSqya/CGTA4L5FpiNkNdW6NWBxcT/NSP2F8DPcCA/1KGCqqOLpp2WbvjhaGV7hz lBLw85ttFBU6ebA95gdzrmRYmrU5SBlC9Nq59pVC7iQrwENbebih5Qq8mPzN6GcaM9aG yXIMPYB8ohLAPPSN2v3BRFEPZ7NbTVp6/nNAjUSkHEcZo4MPpbeXMjO5uUs9GOFakG+8 Y6xNRcHArHlEhQ55v4v2wCx1wWEyVAWBrjdMxcQ5p4Ce5S+XirQejHzkJiMrKj5IEmtC mqkNhAfajvGhJFJuAVXAqfKk6dlVeIbcNjj9y3mbScAPpuAvt/jO7HmGlcjknrFKhDkV EA+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:mime-version :dkim-signature; bh=9ifI65Hcjk0ar/WNQwl170y/WKbWs7okCtxxCy/qE2s=; b=h/C9KWXG6On4pQf+19O1kA/kGfrZeA5mwGm3iFflJP82f+VcDhvqZfKDY9OsqQ9GfI qR0o9HKh54bCb7DVGB+iNaDg0oYrArlJLTvXyg/IYzmzqCd5udMzDYx/oiQxrCLlA4gj BkheRb9qP00fTWWC4pg3DYsDdsDeWSv/O6QM5WnOsYdEIoA5TTfoNr/OtVuTI/L3cKQQ eAKerVAxMvgAxUKRiOD0dYWuqTy1PEPaWyzFPVEI4ZtrBQwBzCwtl192gA4Pkvba3Dib SofC9hnJidKnrqn5P/nB4sBSoGyBF/IAwo1NQixtRkfc4o0lco1Ku/zhUqhQ3OsUu2xN 0RQA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=kxQ9KYel; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 207-20020a6215d8000000b005251c6262c5si6385396pfv.274.2022.06.20.14.33.21; Mon, 20 Jun 2022 14:33:33 -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=pass header.i=@gmail.com header.s=20210112 header.b=kxQ9KYel; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238954AbiFTVZC (ORCPT + 99 others); Mon, 20 Jun 2022 17:25:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36504 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229608AbiFTVY7 (ORCPT ); Mon, 20 Jun 2022 17:24:59 -0400 Received: from mail-oa1-x30.google.com (mail-oa1-x30.google.com [IPv6:2001:4860:4864:20::30]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E35051EC50 for ; Mon, 20 Jun 2022 14:24:58 -0700 (PDT) Received: by mail-oa1-x30.google.com with SMTP id 586e51a60fabf-101cdfddfacso7885996fac.7 for ; Mon, 20 Jun 2022 14:24:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:from:date:message-id:subject:to:cc; bh=9ifI65Hcjk0ar/WNQwl170y/WKbWs7okCtxxCy/qE2s=; b=kxQ9KYelCDOHLCxIXY4Ec9e+lo+qssx3BsNInwJUYnN3NeOHGQMEaw3aSTFIGBoMXw U0Udipi7DIYoCFYarfNbBADf1ksM4ESekmyKjLwZzXfcvjQafUCmyOKVzJsaiZgEwCEN ub39XMRq252e5PPns+fLndm120r20G9eZ1LgECBeWG8RHrJr42dbX8bOZuOaZ4maqO6t t7wsoy5i1XluLTn++5a9BgwOgZNfciZt4qCQMOt2PiKPF2Ryq22nQPQEpQ4H8lhNybKO C69lhbR0YT6Dv1u1odtNpXtjArt8bY5Mxt8nW7AHNNiZ6CSzhOtZskZJMwW4aiLOg4qI kKaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=9ifI65Hcjk0ar/WNQwl170y/WKbWs7okCtxxCy/qE2s=; b=WYLCHijI+CMaOTu6LmLD5d/nMKlmEQqB7leEWUgHnZusPw7P8DtPqol0d/KUSOnCEa +dBsT/sDTatqcKDAeMjZMsCdxJxrjJ0J2qJR7+yNKbnVLJidbOt+D07O97YAPf9DW/rx fxbztZN6AmWzE39f38eVWFKgR38ANrAskass/njcoXDOl92nloVms/+Y3SF2g/FXezgW jc/YdlFqyleSHEnu3jIUu0OIow7xJNyoQ64CtU++41kHE7mgZS4YYxMdIs2Q1fJgEZqw FNZSd5wLSy4wFG9m85yCOJ7BQt2d6UUvm3VqPVkzK2YC6s7aXQztSqC0mp3fVk1Z1/eT R28g== X-Gm-Message-State: AJIora/gvEMwsl1fkEUw79+JW+xA/A20i3uZGEndw0RbvFG5FOzIBLUd w4ajTiOBJulk3kX4+GwZ4aRb3KfACdiDbfskfsMH1VyVWw0= X-Received: by 2002:a05:6870:5247:b0:101:ec40:6a3a with SMTP id o7-20020a056870524700b00101ec406a3amr4274753oai.276.1655760298309; Mon, 20 Jun 2022 14:24:58 -0700 (PDT) MIME-Version: 1.0 From: Jaccon Bastiaansen Date: Mon, 20 Jun 2022 23:24:47 +0200 Message-ID: Subject: Clocksource: should the read() function of a clocksource be NMI safe? To: daniel.lezcano@linaro.org, Thomas Gleixner Cc: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE 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 Hello all, The ktime_get_*_fast_ns() functions in kernel/time/timekeeping.c are listed as NMI safe. If I am correct, the implementation of these functions uses the read() function of the currently selected clocksource. But a potential lockup can occur if this read() function uses a raw spinlock. A running read() function can be interrupted by an NMI which also calls the read() function. The NMI handler will then spin forever in an attempt to lock an already locked raw spinlock. Is my reasoning correct? Should the read() function of a clocksource always be NMI safe? This requirement is not documented and I see that several clocksource drivers (such as drivers/clocksource/i8253.c) are not NMI safe (they lock a raw spinlock in their read() function). Regards, Jaccon Bastiaansen