All of lore.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 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.