From: Shreyas B Prabhu <shreyas@linux.vnet.ibm.com>
To: Nicolas Pitre <nicolas.pitre@linaro.org>,
Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Arnd Bergmann <arnd@arndb.de>,
linux-pm@vger.kernel.org, rjw@rjwysocki.net,
David.Laight@ACULAB.COM, anton@samba.org,
linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH v3] cpuidle: Fix last_residency division
Date: Thu, 30 Jun 2016 19:50:03 +0530 [thread overview]
Message-ID: <57752A93.6000502@linux.vnet.ibm.com> (raw)
In-Reply-To: <alpine.LFD.2.20.1606290944400.24439@knanqh.ubzr>
On 06/29/2016 08:31 PM, Nicolas Pitre wrote:
> On Wed, 29 Jun 2016, Daniel Lezcano wrote:
>
>> On 06/29/2016 09:06 AM, Shreyas B. Prabhu wrote:
>>> diff --git a/drivers/cpuidle/cpuidle.h b/drivers/cpuidle/cpuidle.h
>>> index f87f399..c8ea5ad 100644
>>> --- a/drivers/cpuidle/cpuidle.h
>>> +++ b/drivers/cpuidle/cpuidle.h
>>> @@ -68,4 +68,27 @@ static inline void
>>> cpuidle_coupled_unregister_device(struct cpuidle_device *dev)
>>> }
>>> #endif
>>>
>>> +/*
>>> + * Used for calculating last_residency in usec. Optimized for case
>>> + * where last_residency in nsecs is < INT_MAX/2 by using faster
>>> + * approximation. Approximated value has less than 1% error.
>>> + */
>>> +static inline int convert_nsec_to_usec(u64 nsec)
>>> +{
>>> + if (likely(nsec < INT_MAX / 2)) {
>>
>> UINT_MAX ?
>
> Actually this can be better than that.
>
>>> + int usec = (int)nsec;
>
> First, you'll want an unsigned type. Given the provided argument is u64,
> we can assume there won't be any negative values here.
>
> Then it would be wise to use a type with an explicit width, like U32.
Cool. I wanted to avoid multiple casts. i.e u64 -> u32 -> int. But I
guess there is no real need to avoid it.
Sending v4 with your suggestions.
Thanks,
Shreyas
prev parent reply other threads:[~2016-06-30 14:20 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-29 7:06 [PATCH v3] cpuidle: Fix last_residency division Shreyas B. Prabhu
2016-06-29 7:06 ` Shreyas B. Prabhu
2016-06-29 7:37 ` Daniel Lezcano
2016-06-29 8:59 ` Shreyas B Prabhu
2016-06-29 15:01 ` Nicolas Pitre
2016-06-29 15:01 ` Nicolas Pitre
2016-06-29 15:52 ` Nicolas Pitre
2016-06-29 15:52 ` Nicolas Pitre
2016-06-30 14:20 ` Shreyas B Prabhu [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=57752A93.6000502@linux.vnet.ibm.com \
--to=shreyas@linux.vnet.ibm.com \
--cc=David.Laight@ACULAB.COM \
--cc=anton@samba.org \
--cc=arnd@arndb.de \
--cc=daniel.lezcano@linaro.org \
--cc=linux-pm@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=nicolas.pitre@linaro.org \
--cc=rjw@rjwysocki.net \
/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.