我目前正在使用一个USB设备驱动程序,在其中我使用probe()函数创建了一个Kthread。一般的kthread_create()函数在最不忙的CPU上创建线程。
我想要做的是在特定的CPU(kthread_create_on_cpu())上创建kthread,这样我就可以将单独的内核分配给处理输出设备的设备线程。
如何在加载模块/驱动程序时将CPU编号传递给模块。
我可以使用一个全局变量,该变量将在系统启动时设置一次,并由驱动程序读取或在加载时将CPU编号传递给模块。
请建议使用和实施哪种方法更为可行。
谢谢和问候,
Mitesh G
答案 0 :(得分:2)
您可以传递命令行参数。为此,您必须在模块中添加module_param
或module_param_array
。
根据您的要求,在您的模块中添加这些行
int myintdata = 100;
module_param(myintdata, int, 0);
char mychardata = 'A';
module_param(mychardata, char, 0);
int myarray[2];
module_param_array(myarray, int, NULL, 0);
static char *name;
module_param(name, charp, 0);
//这里你必须提到charp作为数据类型
或module_param_string(name, string, len, perm);
insmod module_name.ko myintdata=5 mychardata = 'X' name= "xyz" myarray =99,100
`