我编写了这段代码来将2个内核线程绑定到不同的CPU:
#include<linux/kthread.h>
#include<linux/sched.h>
#include<linux/delay.h>
#include<linux/slab.h>
struct task_struct *task1;
struct task_struct *task2;
int cpu, data;
int thread_function_one(void *data)
{
int ret = 10;
printk(KERN_INFO "IN THREAD FUNCTION 1 \n");
while(!kthread_should_stop()){
cpu = get_cpu();
put_cpu();
printk("t1 cpu = %d\n",cpu);
msleep(5000);
}
printk(KERN_INFO "EXIT from thread function 1\n");
return ret;
}
int thread_function_two(void *data)
{
int ret = 10;
printk(KERN_INFO "IN THREAD FUNCTION 2 \n");
while(!kthread_should_stop()){
cpu = get_cpu();
put_cpu();
printk("t2 cpu = %d\n",cpu);
msleep(6000);
}
printk(KERN_INFO "EXIT from thread function 2\n");
return …
Run Code Online (Sandbox Code Playgroud) 为什么在Linux中很多结构使用____cacheline_aligned_in_smp宏?在访问结构时是否有助于提高性能.如果是,那怎么样?