From: Jacob Shin <jacob.w.shin@gmail.com>
To: Dave Jones <davej@redhat.com>
Cc: mark.langsdorf@amd.com, cpufreq@www.linux.org.uk
Subject: Re: cpufreq & dual core CPUs.
Date: Tue, 30 May 2006 23:59:21 -0500 [thread overview]
Message-ID: <447D22A9.5070306@gmail.com> (raw)
In-Reply-To: <20060531042639.GA8609@redhat.com>
Dave Jones wrote:
> 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?
I believe the "affected CPUs" -- cpufreq_policy->cpus -- takes care of
this already. When ->cpus is initialized with both of the cores set,
cpufreq driver will only manage 1 shared data structure and sysfs for
all of the cores.
The powernow-k8 driver will initialize ->cpus with cpu_core_map[],
since on current AMD hardware, Dual-Cores are tied together in freq
and voltage. Carrying out P-State transition on one, will have affect
on the other core as well.
As far as the governors are concerned, they simply need to be aware
that changing freq on one of the affected CPUs will mirror on all
other CPUs in the ->cpus mask.
-Jacob Shin
AMD, Inc.
next prev parent reply other threads:[~2006-05-31 4:59 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-31 4:26 cpufreq & dual core CPUs Dave Jones
2006-05-31 4:59 ` Jacob Shin [this message]
-- 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=447D22A9.5070306@gmail.com \
--to=jacob.w.shin@gmail.com \
--cc=cpufreq@www.linux.org.uk \
--cc=davej@redhat.com \
--cc=mark.langsdorf@amd.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.