[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20080626205650.9ifra13zswgoo0ow@webmail1.sjtu.edu.cn>
Date: Thu, 26 Jun 2008 20:56:50 +0800
From: 夏亮 <xiaiaxaxi@...u.edu.cn>
To: linux-kernel@...r.kernel.org
Subject: Can I use yield in this way
Hello,
I'd like to ask a question about the use of a kernel function,
yield(); I am working on Intel Core Duo, running Linux 2.6.21 I want
to let current process be off the cpu when the temperature of cpu is
too high. I add a function called thermal_balance in the timer
interrupt. My program is as following,
scheduler_tick()
{
static int count = 0;
count++;
if(count % 100 == 0)
thermal_balance();
}
static int thermal_balance(void)
{
int cpu = smp_processor_id();
struct task_struct* task;
Get CPU temperature.
if (temperature is too high){
task = cpu_rq(cpu)->curr;
yield();
Move task to other cpu.
}
}
Can yield() be used as above. After I compile the kernel and
run again. Kernel is not working just as it meets deadlock. And if I
comment yield(), it runs ok. Could anyone help me?Thanks!
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists