From: Stefan Richter <stefanr@s5r6.in-berlin.de>
To: Arnd Bergmann <arnd@arndb.de>
Cc: y2038@lists.linaro.org, Clemens Ladisch <clemens@ladisch.de>,
Ingo Molnar <mingo@kernel.org>,
"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
Mark Rutland <mark.rutland@arm.com>,
Hector Martin <marcan@marcan.st>,
linux1394-devel@lists.sourceforge.net,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] [RESEND] firewire: ohci: stop using get_seconds() for BUS_TIME
Date: Mon, 23 Jul 2018 14:38:58 +0200 [thread overview]
Message-ID: <20180723143858.27558e27@kant> (raw)
In-Reply-To: <20180711124923.1205200-1-arnd@arndb.de>
On Jul 11 Arnd Bergmann wrote:
> The ohci driver uses the get_seconds() function to implement the 32-bit
> CSR_BUS_TIME register. This was added in 2010 commit a48777e03ad5
> ("firewire: add CSR BUS_TIME support").
>
> As get_seconds() returns a 32-bit value (on 32-bit architectures), it
> seems like a good fit for that register, but it is also deprecated because
> of the y2038/y2106 overflow problem, and should be replaced throughout
> the kernel with either ktime_get_real_seconds() or ktime_get_seconds().
>
> I'm using the latter here, which uses monotonic time. This has the
> advantage of behaving better during concurrent settimeofday() updates
> or leap second adjustments and won't overflow a 32-bit integer, but
> the downside of using CLOCK_MONOTONIC instead of CLOCK_REALTIME is
> that the observed values are not related to external clocks.
>
> If we instead need UTC but can live with clock jumps or overflows,
> then we should use ktime_get_real_seconds() instead, retaining the
> existing behavior.
>
> Reviewed-by: Clemens Ladisch <clemens@ladisch.de>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> I notice that Stefan Richter has not been active on the mailing lists
> since February 2018.
Thanks Arnd and Clemens.
I resurrected and updated one of my FireWire enabled PCs, and try to get
pack to reasonable response times to firewire driver patches.
The switch from CLOCK_REALTIME to CLOCK_MONOTONIC looks good to me, but
I'll have another look at the context.
> Andrew, could you pick it up in the meantime?
> ---
> drivers/firewire/ohci.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c
> index 45c048751f3b..5125841ea338 100644
> --- a/drivers/firewire/ohci.c
> +++ b/drivers/firewire/ohci.c
> @@ -1765,7 +1765,7 @@ static u32 update_bus_time(struct fw_ohci *ohci)
>
> if (unlikely(!ohci->bus_time_running)) {
> reg_write(ohci, OHCI1394_IntMaskSet, OHCI1394_cycle64Seconds);
> - ohci->bus_time = (lower_32_bits(get_seconds()) & ~0x7f) |
> + ohci->bus_time = (lower_32_bits(ktime_get_seconds()) & ~0x7f) |
> (cycle_time_seconds & 0x40);
> ohci->bus_time_running = true;
> }
--
Stefan Richter
-======---=- -=== =-===
http://arcgraph.de/sr/
prev parent reply other threads:[~2018-07-23 12:40 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-11 12:49 [PATCH] [RESEND] firewire: ohci: stop using get_seconds() for BUS_TIME Arnd Bergmann
2018-07-23 12:38 ` Stefan Richter [this message]
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=20180723143858.27558e27@kant \
--to=stefanr@s5r6.in-berlin.de \
--cc=arnd@arndb.de \
--cc=clemens@ladisch.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux1394-devel@lists.sourceforge.net \
--cc=marcan@marcan.st \
--cc=mark.rutland@arm.com \
--cc=mingo@kernel.org \
--cc=paulmck@linux.vnet.ibm.com \
--cc=y2038@lists.linaro.org \
/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.