lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250820203704.731588-1-lyude@redhat.com>
Date: Wed, 20 Aug 2025 16:26:42 -0400
From: Lyude Paul <lyude@...hat.com>
To: rust-for-linux@...r.kernel.org,
	linux-kernel@...r.kernel.org,
	Thomas Gleixner <tglx@...utronix.de>,
	Andreas Hindborg <a.hindborg@...nel.org>,
	FUJITA Tomonori <fujita.tomonori@...il.com>
Cc: Miguel Ojeda <ojeda@...nel.org>,
	Alex Gaynor <alex.gaynor@...il.com>,
	Boqun Feng <boqun.feng@...il.com>,
	Gary Guo <gary@...yguo.net>,
	Björn Roy Baron <bjorn3_gh@...tonmail.com>,
	Benno Lossin <lossin@...nel.org>,
	Alice Ryhl <aliceryhl@...gle.com>,
	Trevor Gross <tmgross@...ch.edu>,
	Danilo Krummrich <dakr@...nel.org>
Subject: [PATCH v3 0/2] Arithmetic ops for Instant/Delta

When rebasing RVKMS against my hrtimer additions, which themselves were
rebased against Fujita's recent work for introducing Instant/Delta, I
needed to reintroduce the ability to perform some of the arithmetic that
rvkms uses for vblank emulation - so, this commit introduces such
arithmetic.

Example usage:
  https://gitlab.freedesktop.org/lyudess/linux/-/blob/rvkms-slim/drivers/gpu/drm/rvkms/crtc.rs?ref_type=heads#L167

Previous versions:
  Version 1: https://lkml.org/lkml/2025/7/24/1400
  Version 2: https://lkml.org/lkml/2025/8/7/950

Lyude Paul (2):
  rust: time: Implement Add<Delta>/Sub<Delta> for Instant
  rust: time: Implement basic arithmetic operations for Delta

 rust/kernel/time.rs | 141 +++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 140 insertions(+), 1 deletion(-)

Changelog:
  rust: time: Implement Add<Delta>/Sub<Delta> for Instant
    V2:
    * Change behavior in ops::{Add,Sub}<Delta> so that we panic on overflows
      under the same conditions that arithmetic operations in rust would panic
      by default.
    V3:
    * Don't forget to update the commit message this time!

  rust: time: Implement basic arithmetic operations for Delta
    V2:
    * Don't forget to make sure that we inline all of these
    * Drop ops::Rem and ops::RemAssign implementations for Delta, replace with
      Delta::rem_nanos() instead. It turns out that there's actually no way to
      perform i64 % i64 on 32 bit platforms in the kernel at the moment, the
      closest that we have is div_s64_rem() which only allows a 32 bit divisor.
    * Actually use the kernel arithmetic helpers for division/remainders so
      that this code works on both 32 and 64 bit platforms.
    V3:
    * Change the output type for Div to i64, drop DivAssign
    * Change Mul/MulAssign to accept i64, not another Delta
    * Fix parameter name in rem_nanos (ns -> dividend)

base-commit: c17b750b3ad9f45f2b6f7e6f7f4679844244f0b9
-- 
2.50.0


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ