All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Jones <davej@redhat.com>
To: cpufreq@www.linux.org.uk
Subject: cpufreq & dual core CPUs.
Date: Wed, 31 May 2006 00:26:39 -0400	[thread overview]
Message-ID: <20060531042639.GA8609@redhat.com> (raw)

After being prompted by akpm to look into this (he noted his builds
were taking twice as long when cpuspeed was active on his core duo laptop),
I did some tests on a similar spec laptop myself, and it seems that
we have a number of shortcomings in cpufreq right now when presented
with a multi-core CPU.

This CPU has two cores in a single package, yet cpufreq doesn't
realise this, and presents them as two separately independant scalable
CPUs, as if they were regular SMP.

The problems this causes are twofold.

- We get into situations where strange things happen like
  CPU0 being at 1GHz whilst CPU1 is at 2GHz, and a foodfight
  ensues as both cores continually readjust themselves to
  match what the other is doing.
  (This is actually quite amusing to watch if you configure two
   of the gnome cpufreq applets)
  This seems to affect both userspace daemons like cpuspeed,
  and also (to a lesser extent) the ondemand/conservative governors.

  By adding dual-core awareness to the drivers, we can make sure
  that all cores in a single package stay in sync.

- We allow the possibility for different governors on each core.
  Ie, you can set core0 to ondemand and core1 to userspace.
  I'm not convinced this is a good idea even on SMP, but on
  multi-core it for sure makes no sense.

  One way to fix this would be to ensure that updating the
  governor on one core automatically updates the governor
  on all other cores.  It does mean that the CPU agnostic drivers/cpufreq/
  core will have to start caring about architecture specific things
  like the core maps however.

Before looking any further into why Andrews performance suffered
so much (it aparently never shifted up from 1GHz unless he ran
two intensive tasks, keeping both cores busy), I think getting
the above in order makes sense.

Comments?

		Dave

-- 
http://www.codemonkey.org.uk

             reply	other threads:[~2006-05-31  4:26 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-31  4:26 Dave Jones [this message]
2006-05-31  4:59 ` cpufreq & dual core CPUs Jacob Shin
  -- strict thread matches above, loose matches on Subject: below --
2006-05-31  4:40 Pallipadi, Venkatesh
2006-05-31  4:54 ` Dave Jones
2006-05-31  5:05   ` Jacob Shin
2006-06-03  4:32 ` Carl Thompson
2006-05-31  5:02 Pallipadi, Venkatesh
2006-05-31  5:33 ` Dominik Brodowski
2006-06-23  6:50 ` Dominik Brodowski
2006-05-31 14:10 Pallipadi, Venkatesh

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=20060531042639.GA8609@redhat.com \
    --to=davej@redhat.com \
    --cc=cpufreq@www.linux.org.uk \
    /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.