From nobody Sun Dec 14 13:45:40 2025 Received: from mail-pj1-f49.google.com (mail-pj1-f49.google.com [209.85.216.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 32F56293B44; Wed, 23 Apr 2025 19:41:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745437299; cv=none; b=gEMf1QFK6LOCBXKhKnjlFxeJa4YS2qdzIQv3sI8jb9gSiVv+m7YFhGvrrUXZ1WxxByLgNn686u9YGshTT/44nXtjMH2jFmbWk03dQzthhKIh04agMQK7Fr74xLiaYaR22Vep7yB7Egiapa5FABzQVw9+iYyINE8c1vNslyTjuvQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745437299; c=relaxed/simple; bh=lsK9WY7qkVnVZvFqrYESaXYKtbs3R7/Z7aQPheIK3ro=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=T7lSKNd/RO4mF+n02OQFcQ/BM0go+nBDWpHMHPMfalFd3+uKQZTxVq/ckWVwZECLcBhcBrnHJ5qAiX/5nLTwMeFnLDlo3jmdIUs/Wk1zwlcp1p13ooFDR0nAuTuGXRR3NLdid3DoSi22cKNIUgPF0HZbxVrLWf3wXCneMFPRKBw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=FfjMd/Nj; arc=none smtp.client-ip=209.85.216.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="FfjMd/Nj" Received: by mail-pj1-f49.google.com with SMTP id 98e67ed59e1d1-30384072398so249887a91.0; Wed, 23 Apr 2025 12:41:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745437297; x=1746042097; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=er2NU0OhzZP3HZxJDqjfMaT/lG2NQ2R6fBjd0zqMycE=; b=FfjMd/NjH/2WeYRRGttPEhUP/YSqh8N5TLBEBUgYaCjAZmsv5EQHWwNNZ6gdop3soN Az744fAv0Z35ViaEIQIWncUNgxOMOyAg7XcEh4gmyMnuPuK3OWzhuzHpfVyjUTLlA/pK 18mIw1XrvFy9K/AUEtmZXt7CMAnab5TAfOVLq36A1Fux3jLDX9d0pKe8AQnGSG4c5iTT OA2+wB2qMGSYE9rKUKp5fhp6cA8VGwIzXSCCk0tUAIhBf2FKMXHzFs19Bl3z7v6NM0Xb B2gPAj2lQrQKZBpwXJe8YHKvz4o2PGbq6TXY597zQw82xlRRTpdHFxMlWVspst/HR6Fh EscA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745437297; x=1746042097; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=er2NU0OhzZP3HZxJDqjfMaT/lG2NQ2R6fBjd0zqMycE=; b=SO3dASTGXbdxqoPoMn1/8KZ2WHtwfpmNTPvCwVR2nDeP00Q1mmQHn68cNV6394INxg JNlM5wQqJa+OEsLsS8WbviE+x7RCasx1fFbmvzTioigtnS2UYKlC5f8dj8/NQixZPzPF PCcRaLCZRb6WKJ/CX6X2+KMgEM0VJ/jBe67Nq+bAaA0vTVfAByRzTEfB51mV1Q8HgdtO RG+TeXAqs0d2unssPG+tNAn9lvtGpii4rYreDyU5aF8pfy/mWyTjfQkALUmjhRjbmAp0 Zx2UBRYdZvsI7RNBN7E/hdtpnGAFSv/nwGtCJxYm/bXETf+faSmIIFGaevPO0AXU7OJF ZXyQ== X-Forwarded-Encrypted: i=1; AJvYcCVOuFORl72kWGmqgyRvOUIJ2BNfpB/Ao6yK4zvWQQf6uiZsQqx5Mcu8qzq8HaAZCoSGTb3zc1gA@vger.kernel.org, AJvYcCWSaT9q1H9I9cSFgRhtofaZjT+KREuJEWbfto3zZOgYgR72sjX9GOsTpn1lad9cFeQKEZ7zxBE4RfEJW3g=@vger.kernel.org X-Gm-Message-State: AOJu0YzODxERvbudLEpBSDkPWudAAr/1oM6QIrrnSbG3OGxsENIy1kXn w4HOx0Q+jbMn/N5jCCHbvMXoxegP0S7NZRWVD11KQ77cvtkkeDhMJfyiSHAI X-Gm-Gg: ASbGncvKyCtjHVK1sqB/NDBFba0nH4R9XjMEnnIkvb4aheTzQK399ntxC5obGCUNelq oL7RYsuNoAeC+DCjy/ceKgWQ4wk00bEyEu3zC7buhg6JnoxHD0T2kizeSQumlIzG7aQYE2x5qnp iXNdanXJpuY6djU5iPsiF+GgVuNTS6Pt8hC/r0u69708J/JVWcsJ+h3Eo1YVBIEPxqaWhn6QdSv rTQHBIWUhHMyM9PVaYGzj4GM9agZUnOnKPmKI9BmBmbITLjJ0Hg8ur/wJLveEPuywkvfsqqL+Mr 5NigDlPneM23XXMJfnwCOpykZzcroN4wgm1+HrhbcLnfwI7hZbhghilQVm4T8bjOq1SWtvSNDsG l0fSq0Kh8ihdqaVOEaQ== X-Google-Smtp-Source: AGHT+IGFF+c2HJ6NFSwzqXKFZ9feRBu/4V6hZkJ+MtZjV4Sjk+P5s5vjghYnxxNq3UvdLw0xZgHjmQ== X-Received: by 2002:a17:90b:3944:b0:2fa:157e:c790 with SMTP id 98e67ed59e1d1-309ed26d30dmr78888a91.5.1745437297036; Wed, 23 Apr 2025 12:41:37 -0700 (PDT) Received: from mew.. (p4138183-ipxg22701hodogaya.kanagawa.ocn.ne.jp. [153.129.206.183]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-309df9ef918sm2056475a91.7.2025.04.23.12.41.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Apr 2025 12:41:36 -0700 (PDT) From: FUJITA Tomonori To: rust-for-linux@vger.kernel.org Cc: Andreas Hindborg , Boqun Feng , linux-kernel@vger.kernel.org, netdev@vger.kernel.org, andrew@lunn.ch, hkallweit1@gmail.com, tmgross@umich.edu, ojeda@kernel.org, alex.gaynor@gmail.com, gary@garyguo.net, bjorn3_gh@protonmail.com, benno.lossin@proton.me, a.hindborg@samsung.com, aliceryhl@google.com, anna-maria@linutronix.de, frederic@kernel.org, tglx@linutronix.de, arnd@arndb.de, jstultz@google.com, sboyd@kernel.org, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com, tgunders@redhat.com, me@kloenk.dev, david.laight.linux@gmail.com Subject: [PATCH v15 1/6] rust: hrtimer: Add Ktime temporarily Date: Thu, 24 Apr 2025 04:28:51 +0900 Message-ID: <20250423192857.199712-2-fujita.tomonori@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250423192857.199712-1-fujita.tomonori@gmail.com> References: <20250423192857.199712-1-fujita.tomonori@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add Ktime temporarily until hrtimer is refactored to use Instant and Delta types. Reviewed-by: Andreas Hindborg Reviewed-by: Boqun Feng Signed-off-by: FUJITA Tomonori --- rust/kernel/time/hrtimer.rs | 18 +++++++++++++++++- rust/kernel/time/hrtimer/arc.rs | 2 +- rust/kernel/time/hrtimer/pin.rs | 2 +- rust/kernel/time/hrtimer/pin_mut.rs | 4 ++-- rust/kernel/time/hrtimer/tbox.rs | 2 +- 5 files changed, 22 insertions(+), 6 deletions(-) diff --git a/rust/kernel/time/hrtimer.rs b/rust/kernel/time/hrtimer.rs index ce53f8579d18..17824aa0c0f3 100644 --- a/rust/kernel/time/hrtimer.rs +++ b/rust/kernel/time/hrtimer.rs @@ -68,10 +68,26 @@ //! `start` operation. =20 use super::ClockId; -use crate::{prelude::*, time::Ktime, types::Opaque}; +use crate::{prelude::*, types::Opaque}; use core::marker::PhantomData; use pin_init::PinInit; =20 +/// A Rust wrapper around a `ktime_t`. +// NOTE: Ktime is going to be removed when hrtimer is converted to Instant= /Delta. +#[repr(transparent)] +#[derive(Copy, Clone, PartialEq, PartialOrd, Eq, Ord)] +pub struct Ktime { + inner: bindings::ktime_t, +} + +impl Ktime { + /// Returns the number of nanoseconds. + #[inline] + pub fn to_ns(self) -> i64 { + self.inner + } +} + /// A timer backed by a C `struct hrtimer`. /// /// # Invariants diff --git a/rust/kernel/time/hrtimer/arc.rs b/rust/kernel/time/hrtimer/arc= .rs index 4a984d85b4a1..ccf1e66e5b2d 100644 --- a/rust/kernel/time/hrtimer/arc.rs +++ b/rust/kernel/time/hrtimer/arc.rs @@ -5,10 +5,10 @@ use super::HrTimerCallback; use super::HrTimerHandle; use super::HrTimerPointer; +use super::Ktime; use super::RawHrTimerCallback; use crate::sync::Arc; use crate::sync::ArcBorrow; -use crate::time::Ktime; =20 /// A handle for an `Arc>` returned by a call to /// [`HrTimerPointer::start`]. diff --git a/rust/kernel/time/hrtimer/pin.rs b/rust/kernel/time/hrtimer/pin= .rs index f760db265c7b..293ca9cf058c 100644 --- a/rust/kernel/time/hrtimer/pin.rs +++ b/rust/kernel/time/hrtimer/pin.rs @@ -4,9 +4,9 @@ use super::HrTimer; use super::HrTimerCallback; use super::HrTimerHandle; +use super::Ktime; use super::RawHrTimerCallback; use super::UnsafeHrTimerPointer; -use crate::time::Ktime; use core::pin::Pin; =20 /// A handle for a `Pin<&HasHrTimer>`. When the handle exists, the timer m= ight be diff --git a/rust/kernel/time/hrtimer/pin_mut.rs b/rust/kernel/time/hrtimer= /pin_mut.rs index 90c0351d62e4..6033572d35ad 100644 --- a/rust/kernel/time/hrtimer/pin_mut.rs +++ b/rust/kernel/time/hrtimer/pin_mut.rs @@ -1,9 +1,9 @@ // SPDX-License-Identifier: GPL-2.0 =20 use super::{ - HasHrTimer, HrTimer, HrTimerCallback, HrTimerHandle, RawHrTimerCallbac= k, UnsafeHrTimerPointer, + HasHrTimer, HrTimer, HrTimerCallback, HrTimerHandle, Ktime, RawHrTimer= Callback, + UnsafeHrTimerPointer, }; -use crate::time::Ktime; use core::{marker::PhantomData, pin::Pin, ptr::NonNull}; =20 /// A handle for a `Pin<&mut HasHrTimer>`. When the handle exists, the tim= er might diff --git a/rust/kernel/time/hrtimer/tbox.rs b/rust/kernel/time/hrtimer/tb= ox.rs index 2071cae07234..29526a5da203 100644 --- a/rust/kernel/time/hrtimer/tbox.rs +++ b/rust/kernel/time/hrtimer/tbox.rs @@ -5,9 +5,9 @@ use super::HrTimerCallback; use super::HrTimerHandle; use super::HrTimerPointer; +use super::Ktime; use super::RawHrTimerCallback; use crate::prelude::*; -use crate::time::Ktime; use core::ptr::NonNull; =20 /// A handle for a [`Box>`] returned by a call to --=20 2.43.0 From nobody Sun Dec 14 13:45:40 2025 Received: from mail-pf1-f171.google.com (mail-pf1-f171.google.com [209.85.210.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ADD0E293B44; Wed, 23 Apr 2025 19:41:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745437306; cv=none; b=J0qaU/ptAAI4R/MKSEIErzwqN4pvmG5LHUQ+B6HJCpakwA91uFc4/Uq9BiavCdZmGuJ2Qz6bJD6PMcietxOhvHKO+8Ccdte+mF+zoOoP3Bfs7t+OYWRK5g/qIRApE1O1OcoFbme5dDXgxZFKB+wvZ90dl9EQepXEeCHEEfAU4Ws= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745437306; c=relaxed/simple; bh=kd3vW/wW1gabeQG7Fy0PVk4IKsLzJY/aNs7T6WdurXM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IuuzH/smUaY4GEIwMdZERTcQ2W398iFLHC6xm9MCwNSi/qe9MdVDmUoYiYxHh+lQYpgLzQuS+KoAyNECSNgejIXnbuHTnlbPh/RXflvk3AoI4U4G4EqJbPlAHA2Xz0bo8NF5aAzsf1H3iJNxMYBeSzCFfxzdp9hnJkngoCoeJX0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=DcbDT5XT; arc=none smtp.client-ip=209.85.210.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="DcbDT5XT" Received: by mail-pf1-f171.google.com with SMTP id d2e1a72fcca58-736b350a22cso131617b3a.1; Wed, 23 Apr 2025 12:41:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745437304; x=1746042104; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=OA/MmqYliLwWhi3o92n3t+JslJEn4NlsVVnjQQ5ihp8=; b=DcbDT5XTeCRNDNQhJtXDgq/SPN0RvlC2LaLszxQFCfWgLvLIx2pRKvEgf1UyjKvByM +xKYYSEjHmOqkEKl2FT9n3SEz4GLsWh7WgEElp9vRvM4StUDcBWWuPtv00sj0e+W5yMP MBenClWpyQKo6vh566uF17oR7EtYbv506n6asrNmjcbK3FL+2SwOOPa8aFv3N3kSeTvH SEcEx74qL9HH+nP+/6Qygi6fMFaRTZCz09fR5hx8kUI7mNLCNr8VuU9r8W0goygIYRN9 QRbDHArhAoHtcg2EvJTQi6C9wswVUlo1xLnSg8d5wdSyQWn0c4Gz1Taihs2mYTlHN8WY e1kg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745437304; x=1746042104; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=OA/MmqYliLwWhi3o92n3t+JslJEn4NlsVVnjQQ5ihp8=; b=KvIDWPYNJgF6LCYlJBsGMsu6bushDNOwNAOJG0Llxs2+tO+6/bgnpEfI2VOa2VDUM1 OFhOThXU2mD+VFVVjLRcNhEBEXPC8aOhjOrZqrEaduqMRwsWI5aUqy3NGoLFMioMFt/2 5fYpjpqKsGxAKei7lt9Vm+khKyXBzVsgB7f+MJ2gGZafekwYwsvWt4fQNKgxagj+X3j/ 6Xo+Phzvl98RplDg61IKbMZKbiLVe+IzFKKKg2PaBOM85mdQe9KusXllgC881CxWc0U6 4TRW2pY7nibpIbRtSFK/ia+BKl8PM+AKHqcz/Bh3cy35UOYASGR7OsE3+RBjiJ+wD3og /vpA== X-Forwarded-Encrypted: i=1; AJvYcCVk7ViRIsaxvDGoo94oVMVMvYJilxrgxK/0Ple6dDJCFSv8taSmlfdIU/som4h0iOVNEbvntZOr@vger.kernel.org, AJvYcCVmK7b/jDDp6YMsoO+WWovFd3+zY5AfwkRc5OeixV99uRevNwMCKQN/6Q1JS56o8cmnozZyV+tM70q/jsw=@vger.kernel.org X-Gm-Message-State: AOJu0YzQUiCx7NmKTLwLgbUZb1uHbNSEJ8IkuFZTe23TGxF1p5sp404Y oarJq/dbg79Lm0NWYgTsfSuyV2iN8PZIKhpE6fEP24f3J6c6A3hlOoLll9KZ X-Gm-Gg: ASbGncuUs8QLArXU0dcmD6/bFylJfa0oF5gIpD0zGAkU0pQ5NpLkzTsgASk873CEqWd sQlzoTsbSX26BBoit/nBSQ+5620pyuamffCh1wQDXEjE5lVpjUiZu4KGw139ZAIf6jZLVzmve70 o/xDIArwl9DCiSX0hXspF3lI7ma6FV1B8cQPixdsM1EoRm5I2s52FFWzNzDV7Ah420kWCGADqs8 jt13VSLQ083EV2wwhlZdD2NkLCJWcXA7cnMAgsSqejx+rybNVzWrKOaC4KKcZIy4h8E9kET5h6B z6on6wL3yI++nMYGT+R0jRF4OzkzR46vEOVJ9mUAVEeyFArqMbgNLOyv9f4yZKMcgQomzNP9ACa V83IBgAfgptEZ2HEM9g== X-Google-Smtp-Source: AGHT+IGe651eQjpQv7GYiZJqK+wZMAvZfN0N529BpieIeKE8v5bPuQGA4huF3ee5i6pNHtAXddDmRw== X-Received: by 2002:a17:90a:d60f:b0:308:5273:4df8 with SMTP id 98e67ed59e1d1-309ed27c10bmr94092a91.10.1745437303713; Wed, 23 Apr 2025 12:41:43 -0700 (PDT) Received: from mew.. (p4138183-ipxg22701hodogaya.kanagawa.ocn.ne.jp. [153.129.206.183]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-309df9ef918sm2056475a91.7.2025.04.23.12.41.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Apr 2025 12:41:43 -0700 (PDT) From: FUJITA Tomonori To: rust-for-linux@vger.kernel.org Cc: Trevor Gross , Alice Ryhl , Gary Guo , Fiona Behrens , Daniel Almeida , Andreas Hindborg , linux-kernel@vger.kernel.org, netdev@vger.kernel.org, andrew@lunn.ch, hkallweit1@gmail.com, ojeda@kernel.org, alex.gaynor@gmail.com, bjorn3_gh@protonmail.com, benno.lossin@proton.me, a.hindborg@samsung.com, anna-maria@linutronix.de, frederic@kernel.org, tglx@linutronix.de, arnd@arndb.de, jstultz@google.com, sboyd@kernel.org, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com, tgunders@redhat.com, david.laight.linux@gmail.com, boqun.feng@gmail.com Subject: [PATCH v15 2/6] rust: time: Add PartialEq/Eq/PartialOrd/Ord trait to Ktime Date: Thu, 24 Apr 2025 04:28:52 +0900 Message-ID: <20250423192857.199712-3-fujita.tomonori@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250423192857.199712-1-fujita.tomonori@gmail.com> References: <20250423192857.199712-1-fujita.tomonori@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add PartialEq/Eq/PartialOrd/Ord trait to Ktime so two Ktime instances can be compared to determine whether a timeout is met or not. Use the derive implements; we directly touch C's ktime_t rather than using the C's accessors because it is more efficient and we already do in the existing code (Ktime::sub). Reviewed-by: Trevor Gross Reviewed-by: Alice Ryhl Reviewed-by: Gary Guo Reviewed-by: Fiona Behrens Tested-by: Daniel Almeida Reviewed-by: Andreas Hindborg Signed-off-by: FUJITA Tomonori --- rust/kernel/time.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/kernel/time.rs b/rust/kernel/time.rs index f509cb0eb71e..9d57e8a5552a 100644 --- a/rust/kernel/time.rs +++ b/rust/kernel/time.rs @@ -29,7 +29,7 @@ pub fn msecs_to_jiffies(msecs: Msecs) -> Jiffies { =20 /// A Rust wrapper around a `ktime_t`. #[repr(transparent)] -#[derive(Copy, Clone)] +#[derive(Copy, Clone, PartialEq, PartialOrd, Eq, Ord)] pub struct Ktime { inner: bindings::ktime_t, } --=20 2.43.0 From nobody Sun Dec 14 13:45:40 2025 Received: from mail-pj1-f51.google.com (mail-pj1-f51.google.com [209.85.216.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AF6B1293461; Wed, 23 Apr 2025 19:41:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745437313; cv=none; b=aaRzRIDazx0XPAV2MBmep7WGFMFPZ9LFxeruhyS1y8f9iyfmNkv9uh7L0NnRu2YFPNzZoSbbFUTFV/87nQvTzyip0IUZHKT0PJS930CqPfkfZMjdUtuqMK71ObrqQ2rF7yTiJAbX1iMtZSYwcSzksjN8Lj1l7iSva7wFkmlKVTk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745437313; c=relaxed/simple; bh=12o8EpFplw5vxKVaPZGoT3TplIy82zwNzBv2WcTOE8Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nZ6U7VXz4Jfh6UqtCAQQ2thmKxlZCUuPlxJN+Uk8eJYp9r6nAFSN3R/9Z5XGuE7a7EbNtUG0tWISwwzkmkUtsimPQ26si8Iy/k9TrNQAw37gCZ1+Sw0fPEsfifBew/jnRx7z+D2JiMM2k1Gpomfnv743NhTQdcN1I3P26Z1Kmb0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=YpJht6GI; arc=none smtp.client-ip=209.85.216.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="YpJht6GI" Received: by mail-pj1-f51.google.com with SMTP id 98e67ed59e1d1-308702998fbso261226a91.1; Wed, 23 Apr 2025 12:41:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745437311; x=1746042111; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=sB3yUUfhGJKZTpW8owaV/xnUEivaCxVXrQXi/bn6tLQ=; b=YpJht6GIttdAu2jMXZXQBSIHCq8CSMXsq+D+lAcjNwQn7Q5A34JpKqHwEGK9Fut79r 6WAroo0uMeM6V8aWspRLzRpjBngjWLRfEu8PdUnTE7OubChkOlszPkKjmE3s4xwLQ6cs A8Mb1Y6c/GgHRJFZfRHUHVU4/IFni14wQrl4pOgjzM2SQ/tqj5n1N3auVmI/9Ot3/BL9 RdI29SnkCkaGtovzRFIX1iXM635vi4syW5oXgYGQyv3uwMUT692bikg0Hu9xcSnngy/Y J/AZtADS3jKFQcuvABIJzc4nLUyPBlY4LVT9fsd0gCiONAcFLijNr4FjEpTP14VV0kiX cvdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745437311; x=1746042111; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sB3yUUfhGJKZTpW8owaV/xnUEivaCxVXrQXi/bn6tLQ=; b=foSc5LC7AG0IeY6Ycv+eiXc7GJTaxBgRCJGkOO0vFzYw1jswE2lEtDx6J3tmUhJ4KA 7W7jXZT02fG9WZcMypkuUTh7d/F/LKMr43K6K55KRU4HOVVzHdykdpHomBmIPIS5r242 pL4A1by1iwrBp5+Or11siilbVX5zvs+9vAG+/pmg4CJxBe8eBlHBsSbnlg2ZWtv96O8x fVsi7Gu/aWfsemzgGuhhGbsMEyE08G7U3bG0DzB9u12jKajvwxXZRlFNtzAQB5/eHQr3 VOTCBiA5cKEXsXGFrgGNyZjdJ7miKnwm8jJKZkjGv5vU92zlUCmSBHVQvCGUquUKiKlo oT9Q== X-Forwarded-Encrypted: i=1; AJvYcCUozV9l2LhAb8379P9jVQvpigSk+yxm3zdoggW26U1pdlktZ4/YusXjRvxh7ZGo2iStt2KtAWd9@vger.kernel.org, AJvYcCXaq9YYj6yBzrkPhC+B22yqkdoAxLexEByD6XxYGARJ1k1U9PRGTVLDQ/QM+rfsHLy35/qS7rJL1MD45ww=@vger.kernel.org X-Gm-Message-State: AOJu0Yzq4hzPgb96JXSwjm6frQA5X8/+LRMTCM+5pjTDoXvC7H9c8hzf u18DBpH9++M5faDLmfdT46rJ18bSue98TmdJzLsn6mIqokTNJ7sGHR9Wkkog X-Gm-Gg: ASbGncsv3PpzBi+1kPpcV/qv1+ngJWR7jc+nGyEc5twn0P5KDTaadLicy1ogUOQveIt Sl/ODuakt/UtZU0cVTa4AjcibvZitZHw5sGGjfT5lJv0FQV0zgkbl8D0YhyNJri8eHpQJopFtFK R+b5MrL9bIyvrSbz6igQx0zwI9sGy8oWHWamAYY+YybS1QGAmaoQXALLGa9RH2hd3hlIWyqUrXY faHazN/cvTyB66m32Mon2/5St4OXRTJFcW0pl+HxG498zC5Z/iIr3e5UdB/48XrDx7eQNKn2SK3 s2TpkytxTEW5cuG09FUhb2l55JC3uP+74HSRjEIGtKSOIpjqDeuamOqYxDkhWZxACpVKYGduDyW f6XZOKKg5CZcVjaGI9w== X-Google-Smtp-Source: AGHT+IGcS3ZtMDXlm0p2dxnRXQ6Gh4zJOqlR2ipqQYAoCngciLC/1Zki0gl5uXqBifGp9if2TnS62A== X-Received: by 2002:a17:90a:da8f:b0:2ff:6fc3:79c4 with SMTP id 98e67ed59e1d1-309ed33b49bmr58989a91.27.1745437310562; Wed, 23 Apr 2025 12:41:50 -0700 (PDT) Received: from mew.. (p4138183-ipxg22701hodogaya.kanagawa.ocn.ne.jp. [153.129.206.183]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-309df9ef918sm2056475a91.7.2025.04.23.12.41.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Apr 2025 12:41:50 -0700 (PDT) From: FUJITA Tomonori To: rust-for-linux@vger.kernel.org Cc: Andrew Lunn , Alice Ryhl , Gary Guo , Fiona Behrens , Daniel Almeida , Andreas Hindborg , linux-kernel@vger.kernel.org, netdev@vger.kernel.org, hkallweit1@gmail.com, tmgross@umich.edu, ojeda@kernel.org, alex.gaynor@gmail.com, bjorn3_gh@protonmail.com, benno.lossin@proton.me, a.hindborg@samsung.com, anna-maria@linutronix.de, frederic@kernel.org, tglx@linutronix.de, arnd@arndb.de, jstultz@google.com, sboyd@kernel.org, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com, tgunders@redhat.com, david.laight.linux@gmail.com, boqun.feng@gmail.com Subject: [PATCH v15 3/6] rust: time: Introduce Delta type Date: Thu, 24 Apr 2025 04:28:53 +0900 Message-ID: <20250423192857.199712-4-fujita.tomonori@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250423192857.199712-1-fujita.tomonori@gmail.com> References: <20250423192857.199712-1-fujita.tomonori@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Introduce a type representing a span of time. Define our own type because `core::time::Duration` is large and could panic during creation. time::Ktime could be also used for time duration but timestamp and timedelta are different so better to use a new type. i64 is used instead of u64 to represent a span of time; some C drivers uses negative Deltas and i64 is more compatible with Ktime using i64 too (e.g., ktime_[us|ms]_delta() APIs return i64 so we create Delta object without type conversion. i64 is used instead of bindings::ktime_t because when the ktime_t type is used as timestamp, it represents values from 0 to KTIME_MAX, which is different from Delta. as_millis() method isn't used in this patchset. It's planned to be used in Binder driver. Reviewed-by: Andrew Lunn Reviewed-by: Alice Ryhl Reviewed-by: Gary Guo Reviewed-by: Fiona Behrens Tested-by: Daniel Almeida Reviewed-by: Andreas Hindborg Signed-off-by: FUJITA Tomonori --- rust/kernel/time.rs | 88 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/rust/kernel/time.rs b/rust/kernel/time.rs index 9d57e8a5552a..e00b9a853e6a 100644 --- a/rust/kernel/time.rs +++ b/rust/kernel/time.rs @@ -10,9 +10,15 @@ =20 pub mod hrtimer; =20 +/// The number of nanoseconds per microsecond. +pub const NSEC_PER_USEC: i64 =3D bindings::NSEC_PER_USEC as i64; + /// The number of nanoseconds per millisecond. pub const NSEC_PER_MSEC: i64 =3D bindings::NSEC_PER_MSEC as i64; =20 +/// The number of nanoseconds per second. +pub const NSEC_PER_SEC: i64 =3D bindings::NSEC_PER_SEC as i64; + /// The time unit of Linux kernel. One jiffy equals (1/HZ) second. pub type Jiffies =3D crate::ffi::c_ulong; =20 @@ -149,3 +155,85 @@ fn into_c(self) -> bindings::clockid_t { self as bindings::clockid_t } } + +/// A span of time. +/// +/// This struct represents a span of time, with its value stored as nanose= conds. +/// The value can represent any valid i64 value, including negative, zero,= and +/// positive numbers. +#[derive(Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Debug)] +pub struct Delta { + nanos: i64, +} + +impl Delta { + /// A span of time equal to zero. + pub const ZERO: Self =3D Self { nanos: 0 }; + + /// Create a new [`Delta`] from a number of microseconds. + /// + /// The `micros` can range from -9_223_372_036_854_775 to 9_223_372_03= 6_854_775. + /// If `micros` is outside this range, `i64::MIN` is used for negative= values, + /// and `i64::MAX` is used for positive values due to saturation. + #[inline] + pub const fn from_micros(micros: i64) -> Self { + Self { + nanos: micros.saturating_mul(NSEC_PER_USEC), + } + } + + /// Create a new [`Delta`] from a number of milliseconds. + /// + /// The `millis` can range from -9_223_372_036_854 to 9_223_372_036_85= 4. + /// If `millis` is outside this range, `i64::MIN` is used for negative= values, + /// and `i64::MAX` is used for positive values due to saturation. + #[inline] + pub const fn from_millis(millis: i64) -> Self { + Self { + nanos: millis.saturating_mul(NSEC_PER_MSEC), + } + } + + /// Create a new [`Delta`] from a number of seconds. + /// + /// The `secs` can range from -9_223_372_036 to 9_223_372_036. + /// If `secs` is outside this range, `i64::MIN` is used for negative v= alues, + /// and `i64::MAX` is used for positive values due to saturation. + #[inline] + pub const fn from_secs(secs: i64) -> Self { + Self { + nanos: secs.saturating_mul(NSEC_PER_SEC), + } + } + + /// Return `true` if the [`Delta`] spans no time. + #[inline] + pub fn is_zero(self) -> bool { + self.as_nanos() =3D=3D 0 + } + + /// Return `true` if the [`Delta`] spans a negative amount of time. + #[inline] + pub fn is_negative(self) -> bool { + self.as_nanos() < 0 + } + + /// Return the number of nanoseconds in the [`Delta`]. + #[inline] + pub const fn as_nanos(self) -> i64 { + self.nanos + } + + /// Return the smallest number of microseconds greater than or equal + /// to the value in the [`Delta`]. + #[inline] + pub const fn as_micros_ceil(self) -> i64 { + self.as_nanos().saturating_add(NSEC_PER_USEC - 1) / NSEC_PER_USEC + } + + /// Return the number of milliseconds in the [`Delta`]. + #[inline] + pub const fn as_millis(self) -> i64 { + self.as_nanos() / NSEC_PER_MSEC + } +} --=20 2.43.0 From nobody Sun Dec 14 13:45:40 2025 Received: from mail-pg1-f169.google.com (mail-pg1-f169.google.com [209.85.215.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A8714293461; Wed, 23 Apr 2025 19:41:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745437321; cv=none; b=Q2dZgcFli1UEW1cOhP0lbieZ3F53vdbzjaThIAGWm/qew/Yd82YqwQX+E5VdoP01VwchZdK2ZZgOgc69dBxEs9y7O/wgsA+oQAMlZ4Q2DoFqOH8pYK9F9pF0vgcesrmmv86zu+AzU39xDcwYYqDlNNJuTHW3xyHQn60qkx3IyB8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745437321; c=relaxed/simple; bh=ufCQ1PUh5NBQ4ErmIQQDYf2yyQHKBhO14BEcQd3RtKs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VxzXDzteOMRLToPDKhnOzfDZrQXxvPQmZaSX3mI/FrofsYGAfbP3rn9LB9X8X37QZ9dgf6w5buxj75/XHhaB6AG6YTB7ztmKteggDVRaPO2PY4zEnyF6HqMe/eXO4If7+mYSNCPjRHuOn8STXqOLRsa++nlv8Ux/4Kc0Ibzn2lk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=WBUVkdYp; arc=none smtp.client-ip=209.85.215.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="WBUVkdYp" Received: by mail-pg1-f169.google.com with SMTP id 41be03b00d2f7-af91fc1fa90so149843a12.0; Wed, 23 Apr 2025 12:41:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745437319; x=1746042119; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=H0KG2q5mUlg+on9BJSeJogXT+LWqT840e3pHxK7j4lE=; b=WBUVkdYpE8kZZKz1ndbzNVucd/8aY3VomdeSv34+N7SLZ4gUQR79+1aNIFPKTi9XeF aWsw3KCCQEXsCXpnFOgUyDfsILKpBIOmA5tIM5IHyHMcATjxpRj/EqP3d2XsEQyR6I4R cfI0Pm+AHvwtHu4Y9e40Oo23miB3cTyOUGIpPQwPMlv08rPMLMLgXQG1Gq8aW9qi6vVo X+IQbBPmmklzGUkWeuVy0gR8Xa5LsTSwrBUmUdpqSNC4WZlNquUb8kxZK1MFWkHy3mZP ujFqAngMnsXByfe/aem9854kqCwvVmjUPhYraQKHRwFIl5hsOkUpDcDs7yHc+iC4r49A pjDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745437319; x=1746042119; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=H0KG2q5mUlg+on9BJSeJogXT+LWqT840e3pHxK7j4lE=; b=GkoSF6sJpf9SYIHF4nsteueL65ZHxyp5Zqtl1mBZ9bZrmdMreveOV4xp252Yg/XjOD GvVq/tlUv/kLSVBk5arEY07MmMhKViksyWpMvywbw3klb0hrRfBnhKabCR0xQOPw6szc sPMx9CitppquDlBswauVCy0lSaOBh2fbRZBRhredADw8Zg19Y5Kk792ZGB9dAStD7X+Q uy3sBZ7otC9uHmuQzoDM/JserqZ1StVOPfLkL6lT2HeLQIK04LlPOo1nJVQUQvGJVJCU P+HDB+uDYn18ZrevJM4/YGZ4XEcHxw1AUejCUqBLUQAVrVqtp1GXZtg5ilzzzVgYfuPN F/tA== X-Forwarded-Encrypted: i=1; AJvYcCUUafgw4BEut8hSsGep6V1m69kEUVC/r89tQcJKLTbKot9sNWVx7qtOhwPmqBGpGwF1BjvbA1bxAB4JT3Y=@vger.kernel.org, AJvYcCWLK1/UCAvLwTe8tDscfhLFN3/VNk3NKZKre4y7qbWxTk0w3bz6GRTIGW3h+T/QpirJiKtpRDDN@vger.kernel.org X-Gm-Message-State: AOJu0Ywla/zmlpWmlCW+RuhZCIEAxpjqs5PnjKw9p7zweQ40hXIFL2P3 UiMVSsshpHcIuROMosyxqFy/vEtcfDcSmRT/RZ/KyUZAxkxp2rZzU82WMzdj X-Gm-Gg: ASbGnctwsUrdr+63katjx1+jyIedhwrygkVsrhoR8rF5XICxSBcyF6rOqbq37v+h1C1 JWATpzdCPz735MohHp25f9mYpBN+fl3YUHG84F5jlXzpBZAtmt4+9o5Bs3vJraGhpLoaimA0WGL 0T1kgFHr/dm3JWwAmYoHtmlUbUW/e8WPd7oTjQWH2Qr5eo/sJDobaPCCLdHOOBeeOoJAy+PfGoO Osc6zPh5SkagSa0Fs01KkOgT/lal+YmJTiHTW1GgD7r1kmRDzGwHp8w2ubTrUfxGQzpcqywTUsw GpS2EseDMdYbSLbe1JnfzuWx5NO0ee+cI95YSkUf57OKmKpwOd7jwRdYCgXtiOSGU5xsup24qsk RDTnIO3TaFH+6/eY4Ha9qn+cB9xxx X-Google-Smtp-Source: AGHT+IGc04nUGzIrSEBI2qVLeNYjmY0J6y6WGmruN5Q5GVF7JxZEot0hHFzEye0UTPAVmOmBS2b8Ag== X-Received: by 2002:a17:90b:280b:b0:2fe:a79e:f56f with SMTP id 98e67ed59e1d1-309ed270a56mr85519a91.13.1745437318359; Wed, 23 Apr 2025 12:41:58 -0700 (PDT) Received: from mew.. (p4138183-ipxg22701hodogaya.kanagawa.ocn.ne.jp. [153.129.206.183]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-309df9ef918sm2056475a91.7.2025.04.23.12.41.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Apr 2025 12:41:58 -0700 (PDT) From: FUJITA Tomonori To: rust-for-linux@vger.kernel.org Cc: Boqun Feng , Gary Guo , Fiona Behrens , Daniel Almeida , Andreas Hindborg , linux-kernel@vger.kernel.org, netdev@vger.kernel.org, andrew@lunn.ch, hkallweit1@gmail.com, tmgross@umich.edu, ojeda@kernel.org, alex.gaynor@gmail.com, bjorn3_gh@protonmail.com, benno.lossin@proton.me, a.hindborg@samsung.com, aliceryhl@google.com, anna-maria@linutronix.de, frederic@kernel.org, tglx@linutronix.de, arnd@arndb.de, jstultz@google.com, sboyd@kernel.org, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com, tgunders@redhat.com, david.laight.linux@gmail.com Subject: [PATCH v15 4/6] rust: time: Introduce Instant type Date: Thu, 24 Apr 2025 04:28:54 +0900 Message-ID: <20250423192857.199712-5-fujita.tomonori@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250423192857.199712-1-fujita.tomonori@gmail.com> References: <20250423192857.199712-1-fujita.tomonori@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Introduce a type representing a specific point in time. We could use the Ktime type but C's ktime_t is used for both timestamp and timedelta. To avoid confusion, introduce a new Instant type for timestamp. Rename Ktime to Instant and modify their methods for timestamp. Implement the subtraction operator for Instant: Delta =3D Instant A - Instant B Reviewed-by: Boqun Feng Reviewed-by: Gary Guo Reviewed-by: Fiona Behrens Tested-by: Daniel Almeida Reviewed-by: Andreas Hindborg Signed-off-by: FUJITA Tomonori --- rust/kernel/time.rs | 77 +++++++++++++++++++++++---------------------- 1 file changed, 39 insertions(+), 38 deletions(-) diff --git a/rust/kernel/time.rs b/rust/kernel/time.rs index e00b9a853e6a..a8089a98da9e 100644 --- a/rust/kernel/time.rs +++ b/rust/kernel/time.rs @@ -5,6 +5,22 @@ //! This module contains the kernel APIs related to time and timers that //! have been ported or wrapped for usage by Rust code in the kernel. //! +//! There are two types in this module: +//! +//! - The [`Instant`] type represents a specific point in time. +//! - The [`Delta`] type represents a span of time. +//! +//! Note that the C side uses `ktime_t` type to represent both. However, t= imestamp +//! and timedelta are different. To avoid confusion, we use two different = types. +//! +//! A [`Instant`] object can be created by calling the [`Instant::now()`] = function. +//! It represents a point in time at which the object was created. +//! By calling the [`Instant::elapsed()`] method, a [`Delta`] object repre= senting +//! the elapsed time can be created. The [`Delta`] object can also be crea= ted +//! by subtracting two [`Instant`] objects. +//! +//! A [`Delta`] type supports methods to retrieve the duration in various = units. +//! //! C header: [`include/linux/jiffies.h`](srctree/include/linux/jiffies.h). //! C header: [`include/linux/ktime.h`](srctree/include/linux/ktime.h). =20 @@ -33,59 +49,44 @@ pub fn msecs_to_jiffies(msecs: Msecs) -> Jiffies { unsafe { bindings::__msecs_to_jiffies(msecs) } } =20 -/// A Rust wrapper around a `ktime_t`. +/// A specific point in time. +/// +/// # Invariants +/// +/// The `inner` value is in the range from 0 to `KTIME_MAX`. #[repr(transparent)] #[derive(Copy, Clone, PartialEq, PartialOrd, Eq, Ord)] -pub struct Ktime { +pub struct Instant { inner: bindings::ktime_t, } =20 -impl Ktime { - /// Create a `Ktime` from a raw `ktime_t`. - #[inline] - pub fn from_raw(inner: bindings::ktime_t) -> Self { - Self { inner } - } - +impl Instant { /// Get the current time using `CLOCK_MONOTONIC`. #[inline] - pub fn ktime_get() -> Self { - // SAFETY: It is always safe to call `ktime_get` outside of NMI co= ntext. - Self::from_raw(unsafe { bindings::ktime_get() }) - } - - /// Divide the number of nanoseconds by a compile-time constant. - #[inline] - fn divns_constant(self) -> i64 { - self.to_ns() / DIV - } - - /// Returns the number of nanoseconds. - #[inline] - pub fn to_ns(self) -> i64 { - self.inner + pub fn now() -> Self { + // INVARIANT: The `ktime_get()` function returns a value in the ra= nge + // from 0 to `KTIME_MAX`. + Self { + // SAFETY: It is always safe to call `ktime_get()` outside of = NMI context. + inner: unsafe { bindings::ktime_get() }, + } } =20 - /// Returns the number of milliseconds. + /// Return the amount of time elapsed since the [`Instant`]. #[inline] - pub fn to_ms(self) -> i64 { - self.divns_constant::() + pub fn elapsed(&self) -> Delta { + Self::now() - *self } } =20 -/// Returns the number of milliseconds between two ktimes. -#[inline] -pub fn ktime_ms_delta(later: Ktime, earlier: Ktime) -> i64 { - (later - earlier).to_ms() -} - -impl core::ops::Sub for Ktime { - type Output =3D Ktime; +impl core::ops::Sub for Instant { + type Output =3D Delta; =20 + // By the type invariant, it never overflows. #[inline] - fn sub(self, other: Ktime) -> Ktime { - Self { - inner: self.inner - other.inner, + fn sub(self, other: Instant) -> Delta { + Delta { + nanos: self.inner - other.inner, } } } --=20 2.43.0 From nobody Sun Dec 14 13:45:40 2025 Received: from mail-pg1-f176.google.com (mail-pg1-f176.google.com [209.85.215.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3E3C62951D1; Wed, 23 Apr 2025 19:42:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745437327; cv=none; b=WlcfIWuD5KuaXSjMprAzxMuIsb+glakRBpal5YCd86+HYSAEzqJ1lyJ75LutmzLk455SUzRboiEjIzJg1Z9EJovnipiS7pck+DYvFbL2uFXatZbV6BcP0MKN8DyMNacdqddx1Tw/9v7Ai+WYbQSTQ1Tlgp7DEbxu1K+JfzQaOnI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745437327; c=relaxed/simple; bh=62953lUYcscfyKpi4wPHSBLgcF5DMXPINCP9WoEw6jY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XmwgJObtYr0vxEElc1z3gytANntyvDE6YskARVk00shjyPs5hL5j945vZuZb4rngj664NqVdJNKRZJaNYLvlVrwmQwwlYq0itK1ZD4jqBtyEolw+nl3qr8n7JLEnigysSynjMubAfVzqW5pVcdjtL2c43ajxiCRmP9tUwzwTNHU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=UnBp6MBp; arc=none smtp.client-ip=209.85.215.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="UnBp6MBp" Received: by mail-pg1-f176.google.com with SMTP id 41be03b00d2f7-7fd35b301bdso184504a12.2; Wed, 23 Apr 2025 12:42:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745437325; x=1746042125; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=SxUSMecqDIlfO6VWAeWQR2Ldtj/17E7F317+qGMycb8=; b=UnBp6MBpF+7OAwEDD91rekrBJ+sn/3XgdgVbjdxBtht/G9/ae2TKW9CeTTB9LQtDgE a4yU4IrQCsw63/Vxh0mdkPz7OGG23Ynt+xczAKoYfrRNrZ8GTxTBBVMbwN4WgE4pkDC2 AgPV8KXR/NZzSQCPCVrV5i1xkio2vQl+CL3YJIB1Ruirgg8UeT9GU0RbfiHn9qLWbFVx 5aJfl8LMpH6e4NY0Xf2qmLVKn3KixMCa2J8VXQiP+Y3KviI9f2Vh+YaEac91a1BTkWJS fAq12cK1IA1jPpl4evsoWA/zxeblSH0yBIYAzZM80fdsHmasiLJv9nIHeB0fKEueDZ1M oiAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745437325; x=1746042125; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=SxUSMecqDIlfO6VWAeWQR2Ldtj/17E7F317+qGMycb8=; b=C5+oe1CmxFAmZtWdLU3KJsjfIceafkFubSC5aPjJYbyCPaLB3rlH3EtmhoAFlXPsEM RpHWigBFaTl/PcQ/Q3AqSxFFdhX5bJSsOQIsuqaklgEuuWq384zpKpFPIc7YNCfQCEQY S1xL/G0otzu8fhiYPY+lIR9b5tQUfgUHLe+SWuV+3hCFQilYpAUTZNbpyES2GclXm84e qmmqaTqX/9rqic2WI49pTvDUghVeeSNIR6mhzqUrQjoEWuHqG+8gld3psAPrcRG5uvBb 27YSxmNfRUsZrE0CXkiwOXyRU25dlhG2b2y9JRR2GyEKaCIrH9N8/LwFKuWBZjg5falN DTwQ== X-Forwarded-Encrypted: i=1; AJvYcCUQcqXl6+qpMdqd/cl9w+eyywIapZXCDiup9Xh2ODJ5qM7pFG3DXDtK30AqiVgr4PZpMjaxAEpBTwxg56c=@vger.kernel.org, AJvYcCXe9ki124EhvNeaeNAGS2Rt9HIK7AXzHWaigt507vgyt0Km65nOqJuq88qfI4f1Gndl6t5r+Ktk@vger.kernel.org X-Gm-Message-State: AOJu0YzWnn+JkH/Ve8wNS8AKaPl2S7jymdKMcxvYTq0fX4+7prHei05d zoOF46KgEoxQ+3Yl/Yd6KmDimQ3efQq810Plr7KXOH+vw0JRz531WN/OElbg X-Gm-Gg: ASbGncs7TPH4M1kWXcUsuBmjdi0VFMHZoisRtIoybmcZjLihAGF56JfaDaqpDUUlpHn E2NehhgGXotkN9qEEeMrKDCXhdVI2pqUZ5bxzn+7WNvwv3PcGWp0aGX5PkRKBkuJ7ARkxtPaU72 JJx7hOzuInw1E9Viod1/Dw59hz+VtTWg6Ylv5QkvXYBVW0bqZpQrPgeya2Oq7m3MJH86X67ydEg 0ZYjm56JRD16JAZ1qwyiFqIFI8hoCzKm5oj8+9H0hyCwMegf3KCH+pRQiHajMDL8mirB9FKpqzn DklR5X5KhkRpaHlaAidDAC5vFcOBQ4E32IsspbA4LzstWjCP9IPgki8zt11dhzSy0s8KfDB6JSh zWQBvAR87vYkoAPygPA== X-Google-Smtp-Source: AGHT+IHTEvY9l8Uobq5zmPuTQKQt3tM0kqdxOkWm7RnrCRSPC0sPKAtkt3F/M3fIZ33NGxGb4i75Rg== X-Received: by 2002:a17:90a:d648:b0:2ff:58b8:5c46 with SMTP id 98e67ed59e1d1-309ed271080mr82543a91.8.1745437325262; Wed, 23 Apr 2025 12:42:05 -0700 (PDT) Received: from mew.. (p4138183-ipxg22701hodogaya.kanagawa.ocn.ne.jp. [153.129.206.183]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-309df9ef918sm2056475a91.7.2025.04.23.12.41.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Apr 2025 12:42:04 -0700 (PDT) From: FUJITA Tomonori To: rust-for-linux@vger.kernel.org Cc: Gary Guo , Alice Ryhl , Fiona Behrens , Daniel Almeida , Andreas Hindborg , linux-kernel@vger.kernel.org, netdev@vger.kernel.org, andrew@lunn.ch, hkallweit1@gmail.com, tmgross@umich.edu, ojeda@kernel.org, alex.gaynor@gmail.com, bjorn3_gh@protonmail.com, benno.lossin@proton.me, a.hindborg@samsung.com, anna-maria@linutronix.de, frederic@kernel.org, tglx@linutronix.de, arnd@arndb.de, jstultz@google.com, sboyd@kernel.org, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com, tgunders@redhat.com, david.laight.linux@gmail.com, boqun.feng@gmail.com Subject: [PATCH v15 5/6] rust: time: Add wrapper for fsleep() function Date: Thu, 24 Apr 2025 04:28:55 +0900 Message-ID: <20250423192857.199712-6-fujita.tomonori@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250423192857.199712-1-fujita.tomonori@gmail.com> References: <20250423192857.199712-1-fujita.tomonori@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add a wrapper for fsleep(), flexible sleep functions in include/linux/delay.h which typically deals with hardware delays. The kernel supports several sleep functions to handle various lengths of delay. This adds fsleep(), automatically chooses the best sleep method based on a duration. sleep functions including fsleep() belongs to TIMERS, not TIMEKEEPING. They are maintained separately. rust/kernel/time.rs is an abstraction for TIMEKEEPING. To make Rust abstractions match the C side, add rust/kernel/time/delay.rs for this wrapper. fsleep() can only be used in a nonatomic context. This requirement is not checked by these abstractions, but it is intended that klint [1] or a similar tool will be used to check it in the future. Link: https://rust-for-linux.com/klint [1] Reviewed-by: Gary Guo Reviewed-by: Alice Ryhl Reviewed-by: Fiona Behrens Tested-by: Daniel Almeida Reviewed-by: Andreas Hindborg Signed-off-by: FUJITA Tomonori --- rust/helpers/helpers.c | 1 + rust/helpers/time.c | 8 +++++++ rust/kernel/time.rs | 1 + rust/kernel/time/delay.rs | 49 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 59 insertions(+) create mode 100644 rust/helpers/time.c create mode 100644 rust/kernel/time/delay.rs diff --git a/rust/helpers/helpers.c b/rust/helpers/helpers.c index e1c21eba9b15..48143cdd26b3 100644 --- a/rust/helpers/helpers.c +++ b/rust/helpers/helpers.c @@ -33,6 +33,7 @@ #include "spinlock.c" #include "sync.c" #include "task.c" +#include "time.c" #include "uaccess.c" #include "vmalloc.c" #include "wait.c" diff --git a/rust/helpers/time.c b/rust/helpers/time.c new file mode 100644 index 000000000000..7ae64ad8141d --- /dev/null +++ b/rust/helpers/time.c @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include + +void rust_helper_fsleep(unsigned long usecs) +{ + fsleep(usecs); +} diff --git a/rust/kernel/time.rs b/rust/kernel/time.rs index a8089a98da9e..863385905029 100644 --- a/rust/kernel/time.rs +++ b/rust/kernel/time.rs @@ -24,6 +24,7 @@ //! C header: [`include/linux/jiffies.h`](srctree/include/linux/jiffies.h). //! C header: [`include/linux/ktime.h`](srctree/include/linux/ktime.h). =20 +pub mod delay; pub mod hrtimer; =20 /// The number of nanoseconds per microsecond. diff --git a/rust/kernel/time/delay.rs b/rust/kernel/time/delay.rs new file mode 100644 index 000000000000..02b8731433c7 --- /dev/null +++ b/rust/kernel/time/delay.rs @@ -0,0 +1,49 @@ +// SPDX-License-Identifier: GPL-2.0 + +//! Delay and sleep primitives. +//! +//! This module contains the kernel APIs related to delay and sleep that +//! have been ported or wrapped for usage by Rust code in the kernel. +//! +//! C header: [`include/linux/delay.h`](srctree/include/linux/delay.h). + +use super::Delta; +use crate::ffi::c_ulong; + +/// Sleeps for a given duration at least. +/// +/// Equivalent to the C side [`fsleep()`], flexible sleep function, +/// which automatically chooses the best sleep method based on a duration. +/// +/// `delta` must be within `[0, i32::MAX]` microseconds; +/// otherwise, it is erroneous behavior. That is, it is considered a bug +/// to call this function with an out-of-range value, in which case the fu= nction +/// will sleep for at least the maximum value in the range and may warn +/// in the future. +/// +/// The behavior above differs from the C side [`fsleep()`] for which out-= of-range +/// values mean "infinite timeout" instead. +/// +/// This function can only be used in a nonatomic context. +/// +/// [`fsleep`]: https://docs.kernel.org/timers/delay_sleep_functions.html#= c.fsleep +pub fn fsleep(delta: Delta) { + // The maximum value is set to `i32::MAX` microseconds to prevent inte= ger + // overflow inside fsleep, which could lead to unintentional infinite = sleep. + const MAX_DELTA: Delta =3D Delta::from_micros(i32::MAX as i64); + + let delta =3D if (Delta::ZERO..=3DMAX_DELTA).contains(&delta) { + delta + } else { + // TODO: Add WARN_ONCE() when it's supported. + MAX_DELTA + }; + + // SAFETY: It is always safe to call `fsleep()` with any duration. + unsafe { + // Convert the duration to microseconds and round up to preserve + // the guarantee; `fsleep()` sleeps for at least the provided dura= tion, + // but that it may sleep for longer under some circumstances. + bindings::fsleep(delta.as_micros_ceil() as c_ulong) + } +} --=20 2.43.0 From nobody Sun Dec 14 13:45:40 2025 Received: from mail-pj1-f54.google.com (mail-pj1-f54.google.com [209.85.216.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DDFF6293B5A; Wed, 23 Apr 2025 19:42:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745437334; cv=none; b=BagKx8wqFch+nGd3gC3cvl4mQvtqBwk5VohDcRGsV6h781e21HcOmcOGl64dhhxpkaPf6K7ZLke4FQjSElomO+qml5jGkv8i15eN+RZyw87UPqP3uoJEEtem4M6T8JSqIDT64TguuxiGMXyRmp7wBeHjonazEXIXo51yGNm9gPA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745437334; c=relaxed/simple; bh=4ZdUq2tzBznByojYCi0WA8cKaEHmxfVFiiY35QjqGeM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MvHGRcksUfKam3JuqqjTtScliBa0ofO8oYjam3yRe/oziVKW2UfXdIBM5/Px9HL7/tWia1HSc6/PFjiS9DqU7B8ykcy3KAryuaLX9whDsA3HSbFgoEEG28lkzEl8u1GhTcwMV/ivrvs4ITqOw8VSL8J5SLz6BFnHpVhpHT1AzUw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=hmXX85RI; arc=none smtp.client-ip=209.85.216.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="hmXX85RI" Received: by mail-pj1-f54.google.com with SMTP id 98e67ed59e1d1-2ff6cf448b8so334930a91.3; Wed, 23 Apr 2025 12:42:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745437332; x=1746042132; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=iBIIB+/ZmIi8Tc2LcqXAgRSWZd60kP7sw7lnOaM4f9M=; b=hmXX85RIAtMQuPggXYQd1hxa7W4Df1yKq4A2zSl+0aUoqsmuEnJHh70hlHVQ8qi501 os+pjuLzcg0lCZturKWWVu5kLToFYyF4dqj/yFW8OK6wY//8WbD3zOTPU+Zuqui5QagB BEhMDEYcsur9lh1uIJrI+blqgoYkC4kpCh1GS8koGa//zdTNTdIuh/GQAQEwfzV2rGnD y9uaOfj5W7wz6YKpaWeO+6rPP6qt48bur4dpCEpNXli+48BChkee0p5qXQBIzc9+33rz xE2LpUeOvA5F51+/1E5QgRyJ7O8S0xCEOzhPsDQh8Z6EyUtNzNX9DwOGSjEObpRtpC9C 3cow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745437332; x=1746042132; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=iBIIB+/ZmIi8Tc2LcqXAgRSWZd60kP7sw7lnOaM4f9M=; b=XCKO8bGgdpe97p/GlI0kCOtIqq8fzPlA2V2hbJw9//i05XffktlXj0bVWPZZDfQk39 5cO43RdPHQJpg6AsYhcbttCvf+KvrYLG/zOycbb+Gszm2BuEwhy/HpqWl1T9Bp7e6bC+ 09PCUzqgysTIOYs1SECAxQd1ZfufDXiRr8ogwBrqjPT9POpF/hxTvozmIQCp3UAjqeev M5PlfwUwj5zLpaZaoxP2qf6te2gZo/rUVFgHHEWz1SisqZfhXxDnO0obykFSxjG6d99U AfMJeSGpcxsSQ62grmhoOSW3F9Nol0nQi4LtWOnAb5eHGRQhBojwQ1Dt+l9jBe3cYM30 CSsQ== X-Forwarded-Encrypted: i=1; AJvYcCVshvQ7dBWi9MPjNjPEF0I0NjZGxzdyUMIuRgnmnqt5qX0i3wPUgFrmUqtskidGaM0PUAy7UvkL@vger.kernel.org, AJvYcCWImE7UveCMWk5FlSiJCfIgXmcZWwCAd2jEzxqmiZG3Cc4+8h+b7uDxo8nEhS6og3Acw2nTKAjkDRHyYgg=@vger.kernel.org X-Gm-Message-State: AOJu0YxvrgCwk8DiiDO98XscyH+ruJfXKdbyKcz8IQmeQ9d2LRLzd3lX BLhjrj7BHtgJNqkjX86Ws/yaLxW9rs2Fl496yqHbvSjetYiIhgEM0wCcDp88 X-Gm-Gg: ASbGncs0hCk80o+l6YNCvVImAl6SSurpGZvVtrOsaC7Cdz7YhqCkL1XAMts1aO7rH2J VDuv8JwqfbjnOyHyAW3yGlCq50bK77BUsywBsjbarhdBtUs5DuYQE8VnjEX2KPiJIfskFw9n7Kc KRWYl+dLY+/BLAqgFxQtF1a5iNTKbWWU9ku+NhKpiFJl4cVmlwDf2rEUm7DzrqXp/7IeKNKB81/ LNI7A2hUQ+y5NBFiBFO2wCKw8O/ExJKV+dHjOlbUdEmzu08kPoX8xNKXOqs2EvrRqknoK54H72H vPGhhWt81Caf0VsXlXwV/bT9SSczBb2jnp5OWk4QTmkP248QKs1TCmrdAKyvCCjLDjZd376ppzE xUKauhoUmkkEuI1fInw== X-Google-Smtp-Source: AGHT+IHVHb8f5emrtviZLG/qufveIt8tZsd+Ml9sZN+0I3m7amvYcQpN6eX7VVzpqWUE/VNgi2h9Nw== X-Received: by 2002:a17:90b:5488:b0:2ee:ee77:2263 with SMTP id 98e67ed59e1d1-309ed24bc3bmr93692a91.7.1745437331875; Wed, 23 Apr 2025 12:42:11 -0700 (PDT) Received: from mew.. (p4138183-ipxg22701hodogaya.kanagawa.ocn.ne.jp. [153.129.206.183]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-309df9ef918sm2056475a91.7.2025.04.23.12.42.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Apr 2025 12:42:11 -0700 (PDT) From: FUJITA Tomonori To: rust-for-linux@vger.kernel.org Cc: John Stultz , Boqun Feng , Andreas Hindborg , linux-kernel@vger.kernel.org, netdev@vger.kernel.org, andrew@lunn.ch, hkallweit1@gmail.com, tmgross@umich.edu, ojeda@kernel.org, alex.gaynor@gmail.com, gary@garyguo.net, bjorn3_gh@protonmail.com, benno.lossin@proton.me, a.hindborg@samsung.com, aliceryhl@google.com, anna-maria@linutronix.de, frederic@kernel.org, tglx@linutronix.de, arnd@arndb.de, sboyd@kernel.org, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com, tgunders@redhat.com, me@kloenk.dev, david.laight.linux@gmail.com Subject: [PATCH v15 6/6] MAINTAINERS: rust: Add a new section for all of the time stuff Date: Thu, 24 Apr 2025 04:28:56 +0900 Message-ID: <20250423192857.199712-7-fujita.tomonori@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250423192857.199712-1-fujita.tomonori@gmail.com> References: <20250423192857.199712-1-fujita.tomonori@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add a new section for all of the time stuff to MAINTAINERS file, with the existing hrtimer entry fold. Acked-by: John Stultz Reviewed-by: Boqun Feng Reviewed-by: Andreas Hindborg Signed-off-by: FUJITA Tomonori --- MAINTAINERS | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index c59316109e3f..3072c0f8ec0e 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -10585,20 +10585,23 @@ F: kernel/time/timer_list.c F: kernel/time/timer_migration.* F: tools/testing/selftests/timers/ =20 -HIGH-RESOLUTION TIMERS [RUST] +DELAY, SLEEP, TIMEKEEPING, TIMERS [RUST] M: Andreas Hindborg R: Boqun Feng +R: FUJITA Tomonori R: Frederic Weisbecker R: Lyude Paul R: Thomas Gleixner R: Anna-Maria Behnsen +R: John Stultz +R: Stephen Boyd L: rust-for-linux@vger.kernel.org S: Supported W: https://rust-for-linux.com B: https://github.com/Rust-for-Linux/linux/issues -T: git https://github.com/Rust-for-Linux/linux.git hrtimer-next -F: rust/kernel/time/hrtimer.rs -F: rust/kernel/time/hrtimer/ +T: git https://github.com/Rust-for-Linux/linux.git rust-timekeeping-next +F: rust/kernel/time.rs +F: rust/kernel/time/ =20 HIGH-SPEED SCC DRIVER FOR AX.25 L: linux-hams@vger.kernel.org --=20 2.43.0