From: Simon Horman <horms@kernel.org>
To: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com,
edumazet@google.com, netdev@vger.kernel.org,
Jacob Keller <jacob.e.keller@intel.com>,
richardcochran@gmail.com, peterz@infradead.org,
linux-kernel@vger.kernel.org,
Arpana Arland <arpanax.arland@intel.com>
Subject: Re: [PATCH net-next] ice: add and use roundup_u64 instead of open coding equivalent
Date: Wed, 8 May 2024 21:22:01 +0100 [thread overview]
Message-ID: <20240508202201.GB2248333@kernel.org> (raw)
In-Reply-To: <20240507205441.1657884-1-anthony.l.nguyen@intel.com>
On Tue, May 07, 2024 at 01:54:39PM -0700, Tony Nguyen wrote:
> From: Jacob Keller <jacob.e.keller@intel.com>
>
> In ice_ptp_cfg_clkout(), the ice driver needs to calculate the nearest next
> second of a current time value specified in nanoseconds. It implements this
> using div64_u64, because the time value is a u64. It could use div_u64
> since NSEC_PER_SEC is smaller than 32-bits.
>
> Ideally this would be implemented directly with roundup(), but that can't
> work on all platforms due to a division which requires using the specific
> macros and functions due to platform restrictions, and to ensure that the
> most appropriate and fast instructions are used.
>
> The kernel doesn't currently provide any 64-bit equivalents for doing
> roundup. Attempting to use roundup() on a 32-bit platform will result in a
> link failure due to not having a direct 64-bit division.
>
> The closest equivalent for this is DIV64_U64_ROUND_UP, which does a
> division always rounding up. However, this only computes the division, and
> forces use of the div64_u64 in cases where the divisor is a 32bit value and
> could make use of div_u64.
>
> Introduce DIV_U64_ROUND_UP based on div_u64, and then use it to implement
> roundup_u64 which takes a u64 input value and a u32 rounding value.
>
> The name roundup_u64 matches the naming scheme of div_u64, and future
> patches could implement roundup64_u64 if they need to round by a multiple
> that is greater than 32-bits.
>
> Replace the logic in ice_ptp.c which does this equivalent with the newly
> added roundup_u64.
>
> Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
> Tested-by: Arpana Arland <arpanax.arland@intel.com> (A Contingent worker at Intel)
> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Reviewed-by: Simon Horman <horms@kernel.org>
...
next prev parent reply other threads:[~2024-05-08 20:22 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-07 20:54 [PATCH net-next] ice: add and use roundup_u64 instead of open coding equivalent Tony Nguyen
2024-05-08 20:22 ` Simon Horman [this message]
2024-05-11 1:13 ` Jakub Kicinski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240508202201.GB2248333@kernel.org \
--to=horms@kernel.org \
--cc=anthony.l.nguyen@intel.com \
--cc=arpanax.arland@intel.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=jacob.e.keller@intel.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=peterz@infradead.org \
--cc=richardcochran@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.