сродство ядра для загружаемого модуля ядра Android - PullRequest
0 голосов
/ 09 июля 2011

У меня есть двухъядерный 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);
...