2
運行內核線程我啓動我的內核在一個偏僻的CPU核心
with isolcpus=3-7
,我想在這些孤立的CPU內核中的一個運行的線程。在此基礎上idea
,我做的:
ctx->workq = create_singlethread_workqueue("my_work");
struct workqueue_attrs *attr = alloc_workqueue_attrs(GFP_KERNEL);
alloc_cpumask_var(&attr->cpumask, GFP_KERNEL);
cpumask_clear(attr->cpumask);
cpumask_set_cpu(5, attr->cpumask);
apply_workqueue_attrs(ctx->workq, attr);
INIT_WORK(&ctx->work, my_work);
但它不工作。以下代碼報告0:
static void my_work(struct work_struct *w) {
printk("CPU is: %d\n", get_cpu());
put_cpu();
我該如何在特定內核上運行此工作隊列線程(如果可能的話是隔離的)?
我使用了queue_work_on但這是相同的想法。 – gregoiregentil