У меня есть двухъядерный Motorola Atrix на базе Android-2.2.1, и я хочу написать загружаемый модуль ядра, который порождает потоки ядра для каждого ядра. Для этого мне нужно установить сродство ядра. Я думаю, что kthread_bind будет работать для этой цели. Я изменяю пример кода, чтобы добавить сродство ядра. Этот код отлично работает для машины x86 (smp_processor_id () в thread_function () возвращает правильный номер процессора). Но в случае телефона Android он просто возвращает значение «0» для любого числа процессора в kthread_bind. У меня вопрос, доступно ли основное сродство для Android? если да, то как мы можем достичь этого
Спасибо
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/kthread.h>
#include <linux/sched.h>
struct task_struct *task;
int data;
int ret;
int thread_function(void *data)
{
int var,cpu;
var = 10;
printk(KERN_INFO"In thread function\n");
cpu = smp_processor_id();
printk(KERN_INFO"CPU_ID IS %d\n",cpu);
return var;
}
static int kernel_init(void)
{
int x;
data = 20;
printk(KERN_INFO"--------------------------------------------");
task = kthread_create(&thread_function,(void *)data,"pradeep");
kthread_bind(task,1);
task = kthread_run(&thread_function,(void *)data,"pradeep");
printk(KERN_INFO"Kernel Thread : %s\n",task->comm);
return 0;
}
static void kernel_exit(void)
{
printk(KERN_INFO"Goodby Kernel\n");
}
module_init(kernel_init);
module_exit(kernel_exit);