public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andi Kleen <andi@firstfloor.org>
To: Dave Jones <davej@redhat.com>, Andi Kleen <andi@firstfloor.org>,
	linux-kernel@vger.kernel.org, kay.sievers@vrfy.org,
	trenn@suse.de, Andi Kleen <ak@linux.intel.com>,
	hpa@zytor.com
Subject: Re: [PATCH 07/10] cpufreq: Add support for x86 cpuinfo auto loading
Date: Thu, 8 Dec 2011 02:13:56 +0100	[thread overview]
Message-ID: <20111208011356.GA24062@one.firstfloor.org> (raw)
In-Reply-To: <20111208010730.GB27892@redhat.com>

On Wed, Dec 07, 2011 at 08:07:31PM -0500, Dave Jones wrote:
>  > +MODULE_DEVICE_TABLE(x86cpu, eps_cpu_id);
>  > +
>  >  static int __init eps_init(void)
>  >  {
>  > -	struct cpuinfo_x86 *c = &cpu_data(0);
>  > -
>  > -	/* This driver will work only on Centaur C7 processors with
>  > -	 * Enhanced SpeedStep/PowerSaver registers */
>  > -	if (c->x86_vendor != X86_VENDOR_CENTAUR
>  > -	    || c->x86 != 6 || c->x86_model < 10)
>  > -		return -ENODEV;
> 
> This makes e_powersaver bind to every family 6 VIA cpu.
> But the old logic only bound to certain models.
> Won't this will clash with this other driver if both are built ?

The code does

static int __init eps_init(void)
{
        if (!x86_match_cpu(eps_cpu_id) || boot_cpu_data.x86_model < 10)
                return -ENODEV;

So modprobe will load it, but if the CPU is too old it will just error out
again. I think that's reasonable.  There's no direct way current
to express a >= in the matches because modprobe uses fnmatch()

Also most likely the old CPUs won't have the EST bit anyways, then
it won't even be loaded.

> 
>  > diff --git a/drivers/cpufreq/longhaul.c b/drivers/cpufreq/longhaul.c
>  > index f47d26e..b4263ce 100644
>  > --- a/drivers/cpufreq/longhaul.c
>  > +++ b/drivers/cpufreq/longhaul.c
>  > 
>  > +static struct x86_cpu_id longhaul_id[] = {
>  > +	{ X86_VENDOR_CENTAUR, 6 },
>  > +	{}
>  > +};
>  > +MODULE_DEVICE_TABLE(x86cpu, longhaul_id);
> 
> iirc, the intention here was longhaul on cpus that don't have EST,
> and e_powersaver on those that do. Maybe an additional check for the
> absense of EST in longhaul's init code would do the trick.
> (sidenote: I don't recall why we even have e-powersaver, instead of them
>  just using acpi-cpufreq).

It's not done today, but I could add it. 

But I tried to keep the existing behaviour. AFAIK distros just load them
all right? This matches this. I have no way to test these CPUs so I would 
prefer to be as compatible as possible.
> 
>  > +static struct x86_cpu_id powernow_k8_ids[] = {
>  > +	{ X86_VENDOR_AMD, 0xf, },
>  > +	/* RED-PEN If HW PSTATE was a normal feature bit it could be matched here
>  > +	 * instead of a (limited) model list.
>  > +	 */
> 
> You mean make fake one in the identify code ? Do-able I guess.
> Though that would just be moving this list from this driver to a different place,
> and as this is the only place that cares..

Ok. 

Thanks for the review. I'll remove the comment.

-Andi


  reply	other threads:[~2011-12-08  1:14 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-08  0:41 Updated cpu module autoprobing patchkit Andi Kleen
2011-12-08  0:41 ` [PATCH 01/10] Add driver auto probing for x86 features Andi Kleen
2011-12-08  1:57   ` H. Peter Anvin
2011-12-08  9:35   ` Jean Delvare
2011-12-08 14:45     ` Andi Kleen
2011-12-09 20:16       ` Jean Delvare
2011-12-09 20:24         ` Andi Kleen
2011-12-09 20:28           ` Jean Delvare
2011-12-16  1:25         ` H. Peter Anvin
2011-12-08  0:41 ` [PATCH 02/10] crypto: Add support for x86 cpuid auto loading for x86 crypto drivers Andi Kleen
2011-12-08  0:41 ` [PATCH 03/10] intel-idle: convert to x86_cpu_id auto probing Andi Kleen
2011-12-08  0:41 ` [PATCH 04/10] ACPI: Load acpi-cpufreq from processor driver automatically Andi Kleen
2011-12-08  0:41 ` [PATCH 05/10] HWMON: Convert via-cputemp to x86 cpuid autoprobing Andi Kleen
2011-12-08 10:51   ` Jean Delvare
2011-12-08  0:41 ` [PATCH 06/10] HWMON: Convert coretemp " Andi Kleen
2011-12-08  2:40   ` Guenter Roeck
2011-12-08  7:24     ` Jean Delvare
2011-12-08 16:09       ` Guenter Roeck
2011-12-08 16:13         ` Jean Delvare
2011-12-08 20:58           ` Andi Kleen
2011-12-08 14:35     ` Andi Kleen
2011-12-08  0:41 ` [PATCH 07/10] cpufreq: Add support for x86 cpuinfo auto loading Andi Kleen
2011-12-08  1:07   ` Dave Jones
2011-12-08  1:13     ` Andi Kleen [this message]
2011-12-08  1:24       ` Dave Jones
2011-12-08  4:01         ` Andi Kleen
2011-12-08  8:49   ` Borislav Petkov
2011-12-08 14:37     ` Andi Kleen
2011-12-16  1:19       ` H. Peter Anvin
2011-12-16  2:12         ` Andi Kleen
2011-12-08  0:41 ` [PATCH 08/10] x86: autoload microcode driver on Intel and AMD systems Andi Kleen
2011-12-08  0:41 ` [PATCH 09/10] x86: Add a test module for cpu loading Andi Kleen

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=20111208011356.GA24062@one.firstfloor.org \
    --to=andi@firstfloor.org \
    --cc=ak@linux.intel.com \
    --cc=davej@redhat.com \
    --cc=hpa@zytor.com \
    --cc=kay.sievers@vrfy.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=trenn@suse.de \
    /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