/[linux-patches]/genpatches-2.6/trunk/2.6.14/2705_ht-slowdown.patch
Gentoo

Contents of /genpatches-2.6/trunk/2.6.14/2705_ht-slowdown.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 225 - (hide annotations) (download) (as text)
Fri Dec 2 11:37:23 2005 UTC (14 years, 11 months ago) by dsd
File MIME type: text/x-diff
File size: 1842 byte(s)
Fix large P4 HT slowdown regression
1 dsd 225 From: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
2     Date: Thu, 15 Sep 2005 16:20:00 +0000 (-0400)
3     Subject: [ACPI] Add support for FADT P_LVL2_UP flag
4     X-Git-Tag: v2.6.15-rc4
5     X-Git-Url: http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=4c0335526c95d90a1d958e0059f40a5745fc7c5d
6    
7     [ACPI] Add support for FADT P_LVL2_UP flag
8     which tells us if C2 is valid for UP-only, or SMP.
9    
10     As there is no separate bit for C3, use P_LVL2_UP
11     bit to cover both C2 and C3.
12    
13     http://bugzilla.kernel.org/show_bug.cgi?id=5165
14    
15     Signed-off-by: Venkatesh Pallipadi<venkatesh.pallipadi@intel.com>
16     Signed-off-by: Len Brown <len.brown@intel.com>
17     (cherry picked from 28b86b368af3944eb383078fc5797caf2dc8ce44 commit)
18     ---
19    
20     --- a/drivers/acpi/processor_idle.c
21     +++ b/drivers/acpi/processor_idle.c
22     @@ -280,6 +280,16 @@ static void acpi_processor_idle(void)
23    
24     cx->usage++;
25    
26     +#ifdef CONFIG_HOTPLUG_CPU
27     + /*
28     + * Check for P_LVL2_UP flag before entering C2 and above on
29     + * an SMP system. We do it here instead of doing it at _CST/P_LVL
30     + * detection phase, to work cleanly with logical CPU hotplug.
31     + */
32     + if ((cx->type != ACPI_STATE_C1) && (num_online_cpus() > 1) &&
33     + !pr->flags.has_cst && acpi_fadt.plvl2_up)
34     + cx->type = ACPI_STATE_C1;
35     +#endif
36     /*
37     * Sleep:
38     * ------
39     @@ -534,6 +544,15 @@ static int acpi_processor_get_power_info
40     pr->power.states[ACPI_STATE_C0].valid = 1;
41     pr->power.states[ACPI_STATE_C1].valid = 1;
42    
43     +#ifndef CONFIG_HOTPLUG_CPU
44     + /*
45     + * Check for P_LVL2_UP flag before entering C2 and above on
46     + * an SMP system.
47     + */
48     + if ((num_online_cpus() > 1) && acpi_fadt.plvl2_up)
49     + return_VALUE(-ENODEV);
50     +#endif
51     +
52     /* determine C2 and C3 address from pblk */
53     pr->power.states[ACPI_STATE_C2].address = pr->pblk + 4;
54     pr->power.states[ACPI_STATE_C3].address = pr->pblk + 5;

  ViewVC Help
Powered by ViewVC 1.1.20