On Friday, September 28, 2007 2:58 PM, tesla-dev-bounces at opensolaris.org
wrote:
> Hi,
> I am doing academic research on Process Variations in
> Multi-Core systems. As part of my project I want to
> schedule all my threads to a single core to get a feel
> of developing opensolaris. I am using a Dual Core
> Sytem and have installed opensolaris on a Virtual
> Machine. I tried dispatching all threads to a single
> core but am not getting the desired results.
> The changes I have made to the source code is as
> follows:
>
> 1)In the usr/src/uts/common/disp/disp.c , I have
> replaced the function disp_lowpri_cpu with my own
> function shown below
>
> /*
> * disp_lowpower_cpu - schedule all threads to CPU0
> */
> cpu_t *disp_lowpower_cpu(cpu_t *hint)
> {
> cpu_t *bestcpu;
> cpu_t *cp;
>
>
> ASSERT(hint != NULL);
>
> /*
> * Select CPU0
> */
> bestcpu = hint;
>
> cp = hint;
> do {
> if (cp->cpu_seqid == 0){
> ASSERT((cp->cpu_flags & CPU_QUIESCED) == 0);
> return(cp);
> }
> cp = cp->cpu_next;
> } while (cp != hint);
>
>
> /*
> * Return the best CPU .
> */
> ASSERT((bestcpu->cpu_flags & CPU_QUIESCED) == 0);
> return (bestcpu);
> }
>
> 2) In lines 1307, 1460, 1613 and in the function
> cpu_choose (of disp.c) I have replaced the call from
> disp_lowpri_cpu to my function namely
> disp_lowpower_cpu.
>
> 3) In the file usr/src/uts/common/sys/disp.h I have
> added my function as
> extern struct cpu *disp_lowpower_cpu(struct cpu *);
>
> Now after these changes I ran the command
> nightly -i ./opensolaris.sh
> and finally did a BFU.
>
> I am expecting to see all the threads dispatched to
> cpu0 but i can see a few of them are still running in
> cpu1. I think I have missed out something very simple
> but am not able to figure it out. Can anyone help me
> in disptaching all the threads to a single core so
> that I get some confidence in building my own
> opensolaris.
>
Isn't pbind what you need? Maybe you can describe your intention.
Dispatch all the LWP to one processor and make others processor to enter
power saving mode to save the power?
-Aubrman