linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: tomasz.figa@gmail.com (Tomasz Figa)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 3/3] clocksource: exynos_mct: Optimize register reads with ldmia
Date: Thu, 05 Jun 2014 13:18:17 +0200	[thread overview]
Message-ID: <539051F9.4030100@gmail.com> (raw)
In-Reply-To: <CAD=FV=UDAcBeXewVinSG0WeoHkkw2zHe2ORp7BLW=NKxmKUiew@mail.gmail.com>

On 04.06.2014 20:49, Doug Anderson wrote:
> Thomas,
> 
> On Wed, Jun 4, 2014 at 11:05 AM, Thomas Gleixner <tglx@linutronix.de> wrote:
>> On Wed, 4 Jun 2014, Doug Anderson wrote:
>>
>>> As we saw in (clocksource: exynos_mct: cache mct upper count), the
>>> time spent reading the MCT shows up fairly high in real-world
>>> profiles.  That means that it's worth some optimization.
>>>
>>> We get a roughly 10% speedup in userspace gettimeofday() by using an
>>> ldmia to read the two halfs of the MCT.  That seems like a worthwhile
>>> thing to do.
>>>
>>> Before: 1173084 us for 1000000 gettimeofday in userspace
>>> After:  1045674 us for 1000000 gettimeofday in userspace
>>>
>>> NOTE: we could actually do better than this if we really wanted to.
>>> Technically we could register the clocksource as a 32-bit timer and
>>> only use the "lower" half.  Doing so brings us down to 1014429 us for
>>> 1000000 gettimeofday in userspace (and doesn't even require assembly
>>> code).  That would be an alternative to this change.
>>
>> I was about to ask exactly that question: What's the advantage of the
>> 64 bit dance there? AFAICT nothing.
> 
> I debated whether to send out the 32-bit version, since I'd
> implemented both.  I'm happy to send out the 32-bit version too and
> people can pick which they like better.  Let me know.
> 
> The final thing that pushed me over the edge to send the 64-bit
> version was that I didn't know enough about how MCT was used with
> respect to low power modes (we don't use AFTR / LPA modes on our
> system).  I could actually believe that we might want to set a timer
> for more than 178 seconds into the future for these low power modes.
> If that's the case, we still need to keep around the 64-bit read code
> for that case.  ...and once we have the 64-bit code then we might as
> well use it for the rest of the timers.
> 
> Perhaps Tomasz will comment on this.

I can't say definitely that we won't need those extra 32-bits, but the
low power modes you mentioned are (and probably will always be)
implemented as CPU idle modes. This means that most likely having a
wake-up every 178 second wouldn't hurt that much, especially considering
the fact that in normal use cases, when the system is not fully
suspended it usually has things to do and will need to be woken up more
frequently than that.

Adding Bart and Krzysztof to the discussion as they are currently
working on power management.

Best regards,
Tomasz

  reply	other threads:[~2014-06-05 11:18 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-04 17:30 [PATCH 1/3] clocksource: exynos_mct: Fix ftrace Doug Anderson
2014-06-04 17:30 ` [PATCH 2/3] clocksource: exynos_mct: cache mct upper count Doug Anderson
2014-06-05  7:55   ` Vincent Guittot
2014-06-05 17:14     ` Doug Anderson
2014-06-04 17:30 ` [PATCH 3/3] clocksource: exynos_mct: Optimize register reads with ldmia Doug Anderson
2014-06-04 18:05   ` Thomas Gleixner
2014-06-04 18:49     ` Doug Anderson
2014-06-05 11:18       ` Tomasz Figa [this message]
2014-06-05 18:21         ` Doug Anderson
2014-06-12 16:53     ` Doug Anderson
2014-06-15 21:18 ` [PATCH 1/3] clocksource: exynos_mct: Fix ftrace Daniel Lezcano
2014-06-16  4:40   ` Doug Anderson
2014-06-16  8:52     ` Daniel Lezcano
2014-06-16 16:35       ` Doug Anderson
2014-06-17 12:13 ` Daniel Lezcano
2014-06-19 17:07   ` Doug Anderson

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=539051F9.4030100@gmail.com \
    --to=tomasz.figa@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).