1. 17 4月, 2012 1 次提交
  2. 07 4月, 2012 3 次提交
  3. 24 3月, 2012 1 次提交
    • K
      xen/acpi: Fix Kconfig dependency on CPU_FREQ · df7a3ee2
      Konrad Rzeszutek Wilk 提交于
      The functions: "acpi_processor_*" sound like they depend on CONFIG_ACPI_PROCESSOR
      but in reality they are exposed when CONFIG_CPU_FREQ=[y|m]. As such
      update the Kconfig to have this dependency and fix compile issues:
      
      ERROR: "acpi_processor_unregister_performance" [drivers/xen/xen-acpi-processor.ko] undefined!
      ERROR: "acpi_processor_notify_smm" [drivers/xen/xen-acpi-processor.ko] undefined!
      ERROR: "acpi_processor_register_performance" [drivers/xen/xen-acpi-processor.ko] undefined!
      ERROR: "acpi_processor_preregister_performance" [drivers/xen/xen-acpi-processor.ko] undefined!
      
      Note: We still need the CONFIG_ACPI
      Reported-by: NRandy Dunlap <rdunlap@xenotime.net>
      Signed-off-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      df7a3ee2
  4. 22 3月, 2012 2 次提交
    • I
      xen: initialize platform-pci even if xen_emul_unplug=never · b9136d20
      Igor Mammedov 提交于
      When xen_emul_unplug=never is specified on kernel command line
      reading files from /sys/hypervisor is broken (returns -EBUSY).
      It is caused by xen_bus dependency on platform-pci and
      platform-pci isn't initialized when xen_emul_unplug=never is
      specified.
      
      Fix it by allowing platform-pci to ignore xen_emul_unplug=never,
      and do not intialize xen_[blk|net]front instead.
      Signed-off-by: NIgor Mammedov <imammedo@redhat.com>
      Acked-by: NStefano Stabellini <stefano.stabellini@eu.citrix.com>
      Signed-off-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      b9136d20
    • K
      xen/acpi: Remove the WARN's as they just create noise. · 27257fc0
      Konrad Rzeszutek Wilk 提交于
      When booting the kernel under machines that do not have P-states
      we would end up with:
      
      ------------[ cut here ]------------
       WARNING: at drivers/xen/xen-acpi-processor.c:504
       xen_acpi_processor_init+0x286/0
       x2e0()
       Hardware name: ProLiant BL460c G6
       Modules linked in:
       Pid: 1, comm: swapper Not tainted 2.6.39-200.0.3.el5uek #1
       Call Trace:
        [<ffffffff8191d056>] ? xen_acpi_processor_init+0x286/0x2e0
        [<ffffffff81068300>] warn_slowpath_common+0x90/0xc0
        [<ffffffff8191cdd0>] ? check_acpi_ids+0x1e0/0x1e0
        [<ffffffff8106834a>] warn_slowpath_null+0x1a/0x20
        [<ffffffff8191d056>] xen_acpi_processor_init+0x286/0x2e0
        [<ffffffff8191cdd0>] ? check_acpi_ids+0x1e0/0x1e0
        [<ffffffff81002168>] do_one_initcall+0xe8/0x130
      
      .. snip..
      
      Which is OK - the machines do not have P-states, so we fail to register
      to process the _PXX states. But there is no need to WARN the user
      of it.
      
      Oracle BZ# 13871288
      Signed-off-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      27257fc0
  5. 21 3月, 2012 4 次提交
  6. 16 3月, 2012 1 次提交
  7. 15 3月, 2012 2 次提交
    • K
      xen/acpi-processor: C and P-state driver that uploads said data to hypervisor. · 59a56802
      Konrad Rzeszutek Wilk 提交于
      This driver solves three problems:
       1). Parse and upload ACPI0007 (or PROCESSOR_TYPE) information to the
           hypervisor - aka P-states (cpufreq data).
       2). Upload the the Cx state information (cpuidle data).
       3). Inhibit CPU frequency scaling drivers from loading.
      
      The reason for wanting to solve 1) and 2) is such that the Xen hypervisor
      is the only one that knows the CPU usage of different guests and can
      make the proper decision of when to put CPUs and packages in proper states.
      Unfortunately the hypervisor has no support to parse ACPI DSDT tables, hence it
      needs help from the initial domain to provide this information. The reason
      for 3) is that we do not want the initial domain to change P-states while the
      hypervisor is doing it as well - it causes rather some funny cases of P-states
      transitions.
      
      For this to work, the driver parses the Power Management data and uploads said
      information to the Xen hypervisor. It also calls acpi_processor_notify_smm()
      to inhibit the other CPU frequency scaling drivers from being loaded.
      
      Everything revolves around the 'struct acpi_processor' structure which
      gets updated during the bootup cycle in different stages. At the startup, when
      the ACPI parser starts, the C-state information is processed (processor_idle)
      and saved in said structure as 'power' element. Later on, the CPU frequency
      scaling driver (powernow-k8 or acpi_cpufreq), would call the the
      acpi_processor_* (processor_perflib functions) to parse P-states information
      and populate in the said structure the 'performance' element.
      
      Since we do not want the CPU frequency scaling drivers from loading
      we have to call the acpi_processor_* functions to parse the P-states and
      call "acpi_processor_notify_smm" to stop them from loading.
      
      There is also one oddity in this driver which is that under Xen, the
      physical online CPU count can be different from the virtual online CPU count.
      Meaning that the macros 'for_[online|possible]_cpu' would process only
      up to virtual online CPU count. We on the other hand want to process
      the full amount of physical CPUs. For that, the driver checks if the ACPI IDs
      count is different from the APIC ID count - which can happen if the user
      choose to use dom0_max_vcpu argument. In such a case a backup of the PM
      structure is used and uploaded to the hypervisor.
      
      [v1-v2: Initial RFC implementations that were posted]
      [v3: Changed the name to passthru suggested by Pasi Kärkkäinen <pasik@iki.fi>]
      [v4: Added vCPU != pCPU support - aka dom0_max_vcpus support]
      [v5: Cleaned up the driver, fix bug under Athlon XP]
      [v6: Changed the driver to a CPU frequency governor]
      [v7: Jan Beulich <jbeulich@suse.com> suggestion to make it a cpufreq scaling driver
           made me rework it as driver that inhibits cpufreq scaling driver]
      [v8: Per Jan's review comments, fixed up the driver]
      [v9: Allow to continue even if acpi_processor_preregister_perf.. fails]
      Signed-off-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      59a56802
    • J
      xen: constify all instances of "struct attribute_group" · ead1d014
      Jan Beulich 提交于
      The functions these get passed to have been taking pointers to const
      since at least 2.6.16.
      Signed-off-by: NJan Beulich <jbeulich@suse.com>
      Signed-off-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      ead1d014
  8. 14 3月, 2012 5 次提交
  9. 27 2月, 2012 1 次提交
  10. 13 1月, 2012 2 次提交
  11. 12 1月, 2012 2 次提交
  12. 11 1月, 2012 16 次提交