Hi, I will be following up this project. So to recapitulate, the aim is to take down a processor based on a policy implemented in the kernel, and to afterwards re-enable it.
I believe that psradm is solely a user-space tool, so that would mean we cannot use it from kernel code. p_online looks more suitable for this. By putting the cpu in the P_OFFLINE state, no processor nor interrupts will be executed/handled by this cpu, right? To take the processor down, gavinm suggested that we need to use the dynamic reconfiguration facility. I have the OpenSolaris Internals book, but it doesn't really explain how to use it. Is there some other documentation for this, or could you point me to a place in the source code where I should look? As a side thought: we are looking to implement this in the kernel, since I suppose this is the only feasible way to have a performant execution. The policy to turn on and off cpu's would require interaction with the dispatcher: when a processor is idle we could take it down in order to save power (of course a more intelligent policy is more useful). Do you agree that the kernel is the only possible or practically feasible way of handling this? An alternative would be for the dispatcher to export some information to user-space, where the policy would react upon it and then use the psradm user-space tool to take a processor down. However, I think that at the time the user-space program has realized that a processor is idle and wants to take it down, the dispatcher has already dispatched a new task to the processor. So I believe that the latencies involved with such a strategy are too big. An advantage of this strategy, however, is that the policy can more easily be changed, since it doesn't involve recompiling the kernel. To what extent are such power management facilities actually already present in the opensolaris kernel? Thanks, Thomas This message posted from opensolaris.org _______________________________________________ opensolaris-code mailing list [email protected] http://mail.opensolaris.org/mailman/listinfo/opensolaris-code
