[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    [PATCH] powerdevil-remove-cpuhotplug.patch
From:       Holger Macht <holger () homac ! de>
Date:       2010-03-07 22:57:44
Message-ID: 4B942F68.3090708 () homac ! de
[Download RAW message or body]

Remove all CPU hotplug related code from powerdevil and the kcm
module. The way the current Linux implementation and processors work
results in giving you no power savings at all. This options might lead
to a false impression/correlation between active CPUs and the actual
power consumption.

Regards,
 Holger


["powerdevil-remove-cpuhotplug.patch" (text/x-patch)]

Index: KDE/kdebase/workspace/powerdevil/daemon/PowerDevilDaemon.cpp
===================================================================
--- KDE.orig/kdebase/workspace/powerdevil/daemon/PowerDevilDaemon.cpp
+++ KDE/kdebase/workspace/powerdevil/daemon/PowerDevilDaemon.cpp
@@ -361,26 +361,6 @@ void PowerDevilDaemon::applyProfile()
     Solid::Control::PowerManager::setBrightness(settings->readEntry("brightness").toInt());
  d->brightness = settings->readEntry("brightness").toInt();
 
-    QVariant var = settings->readEntry("disabledCPUs", QVariant());
-    QList<QVariant> list = var.toList();
-
-    foreach(const Solid::Device &device, \
                Solid::Device::listFromType(Solid::DeviceInterface::Processor,
-                                                                     QString())) {
-        Solid::Device d = device;
-        Solid::Processor * processor = qobject_cast<Solid::Processor * > \
                (d.asDeviceInterface(
-                Solid::DeviceInterface::Processor));
-
-        bool enable = true;
-
-        foreach(const QVariant &ent, list) {
-            if (processor->number() == ent.toInt()) {
-                enable = false;
-            }
-        }
-
-        Solid::Control::PowerManager::setCpuEnabled(processor->number(), enable);
-    }
-
     Solid::Control::PowerManager::setScheme(settings->readEntry("scheme"));
 
     // Compositing!!
Index: KDE/kdebase/workspace/powerdevil/default.powerdevilprofiles
===================================================================
--- KDE.orig/kdebase/workspace/powerdevil/default.powerdevilprofiles
+++ KDE/kdebase/workspace/powerdevil/default.powerdevilprofiles
@@ -10,7 +10,6 @@ brightness=38
 dimOnIdle=true
 dimOnIdleTime=5
 disableCompositing=true
-disabledCPUs=
 iconname=security-medium
 idleAction=2
 idleTime=10
@@ -35,7 +34,6 @@ brightness=100
 dimOnIdle=false
 dimOnIdleTime=1
 disableCompositing=false
-disabledCPUs=
 iconname=preferences-system-performance
 idleAction=0
 idleTime=99
@@ -60,7 +58,6 @@ brightness=62
 dimOnIdle=true
 dimOnIdleTime=10
 disableCompositing=false
-disabledCPUs=
 iconname=preferences-system-power-management
 idleAction=2
 idleTime=15
@@ -85,7 +82,6 @@ brightness=100
 dimOnIdle=false
 dimOnIdleTime=1
 disableCompositing=false
-disabledCPUs=
 iconname=view-presentation
 idleAction=0
 idleTime=50
@@ -109,7 +105,6 @@ brightness=13
 dimOnIdle=true
 dimOnIdleTime=1
 disableCompositing=true
-disabledCPUs=
 iconname=battery-missing
 idleAction=2
 idleTime=5
Index: KDE/kdebase/workspace/powerdevil/kcmodule/EditPage.cpp
===================================================================
--- KDE.orig/kdebase/workspace/powerdevil/kcmodule/EditPage.cpp
+++ KDE/kdebase/workspace/powerdevil/kcmodule/EditPage.cpp
@@ -145,26 +145,6 @@ void EditPage::fillUi()
 
     schemeCombo->addItems(Solid::Control::PowerManager::supportedSchemes());
 
-    foreach(const Solid::Device &device, \
                Solid::Device::listFromType(Solid::DeviceInterface::Processor, \
                QString())) {
-        Solid::Device d = device;
-        Solid::Processor *processor = qobject_cast<Solid::Processor*> \
                (d.asDeviceInterface(Solid::DeviceInterface::Processor));
-
-        QString text = i18n("CPU <numid>%1</numid>", processor->number());
-
-        QCheckBox *checkBox = new QCheckBox(this);
-
-        checkBox->setText(text);
-        checkBox->setToolTip(i18n("Disable CPU <numid>%1</numid>", \
                processor->number()));
-        checkBox->setWhatsThis(i18n("If this box is checked, the CPU \
                <numid>%1</numid> "
-                                    "will be disabled", processor->number()));
-
-        checkBox->setEnabled(Solid::Control::PowerManager::canDisableCpu(processor->number()));
                
-
-        connect(checkBox, SIGNAL(stateChanged(int)), SLOT(emitChanged()));
-
-        CPUListLayout->addWidget(checkBox);
-    }
-
     reloadAvailableProfiles();
 
     tabWidget->setTabIcon(0, KIcon("preferences-system-session-services"));
@@ -310,18 +290,6 @@ void EditPage::loadProfile()
     DPMSPowerOffEnabled->setChecked(group->readEntry("DPMSPowerOffEnabled", false));
 #endif
 
-    QVariant var = group->readEntry("disabledCPUs", QVariant());
-    QList<QVariant> list = var.toList();
-
-    foreach(const QVariant &ent, list) {
-        QCheckBox *box = qobject_cast<QCheckBox*> \
                (CPUListLayout->itemAt(ent.toInt())->widget());
-
-        if (!box)
-            continue;
-
-        box->setChecked(true);
-    }
-
     delete group;
 
     m_profileEdited = false;
@@ -371,20 +339,6 @@ void EditPage::saveProfile(const QString
     group->writeEntry("DPMSPowerOffEnabled", DPMSPowerOffEnabled->isChecked());
 #endif
 
-    QList<int> list;
-
-    for (int i = 0; i < CPUListLayout->count(); ++i) {
-        QCheckBox *box = qobject_cast<QCheckBox*> \
                (CPUListLayout->itemAt(i)->widget());
-
-        if (!box)
-            continue;
-
-        if (box->isChecked())
-            list.append(i);
-    }
-
-    group->writeEntry("disabledCPUs", list);
-
     group->sync();
 
     delete group;
Index: KDE/kdebase/workspace/powerdevil/kcmodule/capabilitiesPage.ui
===================================================================
--- KDE.orig/kdebase/workspace/powerdevil/kcmodule/capabilitiesPage.ui
+++ KDE/kdebase/workspace/powerdevil/kcmodule/capabilitiesPage.ui
@@ -6,7 +6,7 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>400</width>
+    <width>466</width>
     <height>380</height>
    </rect>
   </property>
@@ -65,48 +65,34 @@
        </widget>
       </item>
       <item row="3" column="0">
-       <widget class="QLabel" name="label_14">
-        <property name="text">
-         <string>CPU can be turned Off</string>
-        </property>
-       </widget>
-      </item>
-      <item row="3" column="1">
-       <widget class="QLabel" name="isCPUOffSupported">
-        <property name="text">
-         <string/>
-        </property>
-       </widget>
-      </item>
-      <item row="4" column="0">
        <widget class="QLabel" name="label_13">
         <property name="text">
          <string>Scheme support</string>
         </property>
        </widget>
       </item>
-      <item row="4" column="1">
+      <item row="3" column="1">
        <widget class="QLabel" name="isSchemeSupported">
         <property name="text">
          <string/>
         </property>
        </widget>
       </item>
-      <item row="5" column="0">
+      <item row="4" column="0">
        <widget class="Line" name="line_3">
         <property name="orientation">
          <enum>Qt::Horizontal</enum>
         </property>
        </widget>
       </item>
-      <item row="6" column="0">
+      <item row="5" column="0">
        <widget class="QLabel" name="label_17">
         <property name="text">
          <string>Supported suspend methods</string>
         </property>
        </widget>
       </item>
-      <item row="6" column="1">
+      <item row="5" column="1">
        <widget class="QLabel" name="supportedMethods">
         <property name="text">
          <string/>
@@ -119,28 +105,28 @@
         </property>
        </widget>
       </item>
-      <item row="7" column="0">
+      <item row="6" column="0">
        <widget class="QLabel" name="label_18">
         <property name="text">
          <string>Supported schemes</string>
         </property>
        </widget>
       </item>
-      <item row="7" column="1">
+      <item row="6" column="1">
        <widget class="QLabel" name="supportedSchemes">
         <property name="text">
          <string/>
         </property>
        </widget>
       </item>
-      <item row="8" column="0">
+      <item row="7" column="0">
        <widget class="Line" name="line">
         <property name="orientation">
          <enum>Qt::Horizontal</enum>
         </property>
        </widget>
       </item>
-      <item row="9" column="0">
+      <item row="8" column="0">
        <widget class="QLabel" name="label_4">
         <property name="toolTip">
          <string>Support for DPMS</string>
@@ -153,14 +139,14 @@
         </property>
        </widget>
       </item>
-      <item row="9" column="1">
+      <item row="8" column="1">
        <widget class="QLabel" name="dpmsSupport">
         <property name="text">
          <string/>
         </property>
        </widget>
       </item>
-      <item row="10" column="0">
+      <item row="9" column="0">
        <widget class="QLabel" name="label_6">
         <property name="toolTip">
          <string>Checks if ConsoleKit is active on your system</string>
@@ -173,28 +159,28 @@
         </property>
        </widget>
       </item>
-      <item row="10" column="1">
+      <item row="9" column="1">
        <widget class="QLabel" name="ckSupport">
         <property name="text">
          <string/>
         </property>
        </widget>
       </item>
-      <item row="11" column="0">
+      <item row="10" column="0">
        <widget class="Line" name="line_4">
         <property name="orientation">
          <enum>Qt::Horizontal</enum>
         </property>
        </widget>
       </item>
-      <item row="12" column="0">
+      <item row="11" column="0">
        <widget class="QLabel" name="label_3">
         <property name="text">
          <string>Status</string>
         </property>
        </widget>
       </item>
-      <item row="12" column="1">
+      <item row="11" column="1">
        <layout class="QVBoxLayout" name="statusLayout"/>
       </item>
      </layout>
Index: KDE/kdebase/workspace/powerdevil/kcmodule/profileEditPage.ui
===================================================================
--- KDE.orig/kdebase/workspace/powerdevil/kcmodule/profileEditPage.ui
+++ KDE/kdebase/workspace/powerdevil/kcmodule/profileEditPage.ui
@@ -471,24 +471,7 @@
            <property name="fieldGrowthPolicy">
             <enum>QFormLayout::ExpandingFieldsGrow</enum>
            </property>
-           <item row="0" column="0">
-            <widget class="QLabel" name="label_12">
-             <property name="text">
-              <string>Turn off the following CPU(s)</string>
-             </property>
-            </widget>
-           </item>
-           <item row="0" column="1">
-            <layout class="QHBoxLayout" name="CPUListLayout"/>
-           </item>
-           <item row="2" column="0" colspan="2">
-            <widget class="Line" name="line_5">
-             <property name="orientation">
-              <enum>Qt::Horizontal</enum>
-             </property>
-            </widget>
-           </item>
-           <item row="3" column="0">
+           <item row="1" column="0">
             <widget class="QLabel" name="label_19">
              <property name="text">
               <string>System powersaving scheme:</string>
@@ -498,7 +481,7 @@
              </property>
             </widget>
            </item>
-           <item row="3" column="1">
+           <item row="1" column="1">
             <widget class="KComboBox" name="schemeCombo">
              <property name="sizePolicy">
               <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
@@ -514,7 +497,7 @@
              </property>
             </widget>
            </item>
-           <item row="4" column="0">
+           <item row="2" column="0">
             <widget class="QLabel" name="label_20">
              <property name="text">
               <string>When loading profile execute:</string>
@@ -524,7 +507,7 @@
              </property>
             </widget>
            </item>
-           <item row="4" column="1">
+           <item row="2" column="1">
             <widget class="KUrlRequester" name="scriptRequester">
              <property name="sizePolicy">
               <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
@@ -541,13 +524,10 @@
             </widget>
            </item>
           </layout>
-          <zorder>line_5</zorder>
           <zorder>schemeCombo</zorder>
-          <zorder>label_12</zorder>
           <zorder>label_20</zorder>
           <zorder>label_19</zorder>
           <zorder>scriptRequester</zorder>
-          <zorder></zorder>
          </widget>
         </widget>
        </item>
Index: KDE/kdebase/workspace/powerdevil/kcmodule/CapabilitiesPage.cpp
===================================================================
--- KDE.orig/kdebase/workspace/powerdevil/kcmodule/CapabilitiesPage.cpp
+++ KDE/kdebase/workspace/powerdevil/kcmodule/CapabilitiesPage.cpp
@@ -108,18 +108,6 @@ void CapabilitiesPage::fillCapabilities(
     cpuNumber->setText(QString::number(cpuCount));
     batteriesNumber->setText(QString::number(batteryCount));
 
-    bool turnOff = false;
-
-    for (int i = 0; i < cpuCount; ++i) {
-        if (Solid::Control::PowerManager::canDisableCpu(i))
-            turnOff = true;
-    }
-
-    if (turnOff)
-        isCPUOffSupported->setPixmap(KIcon("dialog-ok-apply").pixmap(16, 16));
-    else
-        isCPUOffSupported->setPixmap(KIcon("dialog-cancel").pixmap(16, 16));
-
     QString sMethods;
 
     Solid::Control::PowerManager::SuspendMethods methods = \
Solid::Control::PowerManager::supportedSuspendMethods();



>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic