|   xen-users
RE: [Xen-users] Setting CPU (core) frequency from dom0 
| No, at least for all Intel platforms I've tried by far. 
Maybe AMD people can better answer your question. One suggestion to you is to 
try native linux first (both latest version and 2.6.18 as dom0 is based on 
2.6.18). It's possible that dom0 fails to catch up some newer linux fix or your 
BIOS setting is incorrect. Or if possible you can also try Intel 
platform to see whether same thing also happens.   Thanks, Kevin 
 
  
  I did some additional poking around and figure out that the failure 
  I am experiencing (no sysfs interface for cpufreq) is because the call to 
  powernow_k8_cpu_init_acpi() in powernowk8_cpu_init() is failing (returning a 
  value != 0) and I have more than 1 CPU. When I enabled debugging, the system 
  printed the following error:
 
 powernow-k8: Found 32 Quad-Core AMD 
  Opteron(tm) Processor 8356 processors (version 
  2.20.00)cpufreq-core: trying to register driver 
  powernow-k8
 cpufreq-core: adding CPU 0
 powernow-k8: Your 
  BIOS does not provide _PSS objects.  PowerNow! does not work on SMP 
  systems without _PSS objects.  Complain to your BIOS 
  vendor.
 cpufreq-core: initialization failed
 cpufreq-core: 
  adding CPU 1
 powernow-k8: Your BIOS does not provide _PSS 
  objects.  PowerNow! does not work on SMP systems without _PSS 
  objects.  Complain to your BIOS vendor.
 cpufreq-core: 
  initialization 
  failed
 .
 .
 .
 
 And continues to print this for all 32 cores. After 
  this it prints the following message:
 
 
 cpufreq-core: initialization 
  failedcpufreq-core: no CPU initialized for driver 
  powernow-k8
 cpufreq-core: unregistering CPU 
  0
 cpufreq-core: unregistering CPU 
  1
 .
 .
 .
 cpufreq-core: unregistering CPU 31
 
 The code gets 
  a bit cryptic, but it seems to me that the failure may be due to the code not 
  properly recognizing my Barcelona processors.check_supported_cpu() is probably 
  failing to set cpu_family to CPU_HW_PSTATE, although I have not yet confirmed 
  that this is the case.
 
 Have you seen this type of problem 
  recently?
 
 Thank you,
 
 Alberto
 
 On Fri, Nov 21, 2008 at 8:47 AM, Alberto Munoz <ajmunoz@xxxxxxxxxx>  wrote:
   Hi 
    Kevin,
 
 
    On Thu, Nov 20, 2008 at 7:02 PM, Tian, Kevin <kevin.tian@xxxxxxxxx>  wrote:
     
      
      ETA 
      can be in one or two weeks, and now coding is close to end (by 
      Jinsong). This patch sets will cover many control bits besides 
      allowing user to change freq as I said 
      earlier. 
Excellent! How do I find out when the patch has been made 
    available? 
      
      
      
   For the code you mentioned, it's one bug since as you cited 
      that return-0 means success. However it looks that this warning doesn't 
      hurt the behavior: if 
      (!cpufreq_register_notifier(&time_cpufreq_notifier_block,CPUFREQ_TRANSITION_NOTIFIER)) 
      {
 printk(KERN_ERR "failed to set up cpufreq 
      notifier\n");
 return -ENODEV;
 }
 return 0;   Notifier is 
      registered successfully and there's no code to reverse the effect even 
      when -ENODEV is returned. :-) 
     
 Yes, I figured that out yesterday. Other than printing the error, the 
    system does nothing with the -ENODEV return. Still, I am not getting a sysfs 
    interface for cpufreq and I haven't been able to figure out why. 
      
      
      BTW in 
      xen3.2, there's no 
      PROCESSOR_EXTERNAL_CONTROL. 
 In case this was not clear, I am trying to use method A 
    (cpufreq=dom0-kernel) with Xen 3.3 (not 3.2). Does that not work in Xen 
    3.3? 
 Also, do you happen to know of a place where I can get a list of what 
    needs to be set up in order to get this frequency scaling to work. I am 
    pretty sure that my problem with not getting the sysfs interface for cpufreq 
    (it is available for other things) is related to something I am missing in 
    the configuration. So far, what I have done (for method A) is: 
 - Set the option cpufreq=dom0-kernel as an option to the Xen hypervisor 
    (in grub) 
 - Disable PROCESSOR_EXTERNAL_CONTROL in drivers/acpi/Kconfig (for 
    dom0) 
 - Enable CONFIG_CPU_FREQ for dom0 (I did this from 
    arch/x86_64/Kconfig) 
 Perhaps there is a BIOS setting for the CPU that I am unaware of (my 
    machine is using Barcelona CPUs)? 
 Thank you, 
    
    
    
 Alberto 
      
      
   Thanks, Kevin 
 
        
        
        
        
        Hi Kevin, Thank you very much for the 
        reply. PLease see comments below. Alberto
         On Wed, Nov 19, 2008 at 7:05 PM, Tian, Kevin 
        <kevin.tian@xxxxxxxxx>  wrote:
         
          
          Your description is basically correct. Do you want to control 
          cpu frequency from dom0 user level, or just try cpufreq governor in 
          dom0?  I would like to control frequency from dom0. I want to 
        arbitrarily set the  CPU frequency to a value and have it stay 
        there (regardless of  the load on that CPU) until I change 
        it.
 
 
 
          
          For the former, we're currently adding more flexibility to xen 
          cpufreq (such as user space governor) and control options to xenpm 
          (such as manually changing freq), which is expected to reach xen 
          upstream soon.  Yes, I thik this is what I need (ability to manually change 
        frequency). Do you have an ETA (estimated time of arrival) for that 
        functionality?
 
 
          
          For the latter, it's suboptimal with limitations which is why 
          xen cpufreq is develeoped. You may manually disable 
          PROCESSOR_EXTERNAL_CONTROL in drivers/acpi/Kconfig to rebuild dom0 
          kernel for mode A. OK.  I will do that.
 
 By the way, I have been 
        running onto an error  when booting (in mode A). The function  
        cpufreq_time_setup() in linux-2.6.18-xen.hg/arch/i386/kernel/time-xen.c 
        is printing the following message during boot (and returning -ENODEV to 
        its caller):
 
 failed to set up cpufreq notifier
 
 Further examination of the code 
        shows that this happens when  notifier_chain_register() in 
        linux-2.6.18-xen.hg/kernel/sys.c returns 0. The problem is that in the 
        code I have, that function ALWAYS returns 0. The code for that function 
        is as follows:
 
 static int notifier_chain_register(struct 
        notifier_block **nl,
 struct 
        notifier_block *n)
 {
 while ((*nl) != NULL) 
        {
 if (n->priority > 
        (*nl)->priority)
 break;
 nl = 
        &((*nl)->next);
 }
 n->next = *nl;
 rcu_assign_pointer(*nl, 
        n);
 return 0;
 }
 
 think (but are not 100% 
        sure yet) that as a result of this error, dom0 is not creating a cpufreq 
        /sys interface (i.e
 
 Do you 
        happen to know what may be going on? perhaps I am just misreading the 
        code? or perhaps not disabling PROCESSOR_EXTERNAL_CONTROL is what is causing this 
        behavior? I will run some experiments on this last thing 
        today.
 
 Thanks again,
 
 Alberto
 
 
 
          
          
   Thanks, Kevin 
            
            
            
            
            Hello everyone, I am running some experiments that 
            require changing the frequency of a CPU in a SunFire machine 
            (32-core quad socket AMD Barcelona). For what I have found 
            (bits and pieces but not a comprehensive description), there are two 
            meachisms for controlling core (most probably socket) frequency in 
            Xen: A- The older (xen-3.2.1) mechnism through dom0 (option 
            cpufreq=dom0-kernel), which for what I gather uses a module in dom0 
            (cpufreqd?) that allows one to set cpu frequency. B- The 
            newer (xen-3.3), which has moved the governor to the hypervisor 
            (option cpufreq=xen), which other than a utility to read processor P 
            and C states (xenpm) does not (yet) allow user (dom0) control of CPU 
            frequency. My first question is whetherot what I have written 
            above is accurate. My second question is where can I find detailed 
            information on how to set up my system to make use of A above and be 
            able to set cpu frequency "manually" from Dom0 (assuming that is 
            still possible in Xen 3.3). I am running the latest testing 
            version of Xen 3.3 (about a week old). Any information would 
            be greatly appreciated. Thank 
            you, Alberto _______________________________________________
 Xen-users 
          mailing list
 Xen-users@xxxxxxxxxxxxxxxxxxx
 http://lists.xensource.com/xen-users
 
 
 _______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users | 
 |  |