Sono po 'confuso b/w workqueues e il processo kthread quando vengono creati come seguenti-differenza b/w processo kthread e workqueues
Crea processo kthread per ogni CPU online e legarsi a 1 CPU unica
for_each_online_cpu(cpu) {
kthread = kthread_create(func, ...);
kthread_bind(kthread, cpu);
}
//Each kthread will process work in serialized manner
Creare WorkQueue vincolato per ogni CPU online con @max_active come 1
for_each_online_cpu() {
wq = alloc_workqueue(name, WQ_MEM_RECLAIM, 1)
}
// queue_work_on(cpu, work) will ensure the works queued on a particular CPU are
processed in a serialized manner.
per favore fatemi sapere se la mia comprensione è corretta e quali sono i vantaggi del processo kthread oltre workqueues e v ice-versa.
Grazie in anticipo.