work queue

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I'm playing around with work_queue in my VMware workstation. but I hit a problem that the work is processed by [kworker/3:1] other than my work queue.

static int __init test_init(void)
{
    pr_info(" (*) test_init start - pid:%d. cpu:%d\n", current->pid, get_cpu());
    int ret = 0;
    test_queue_ptr = create_workqueue("myfoo");
    // test_queue_ptr = create_singlethread_workqueue("test_workqueue");
   
    if(!test_queue_ptr){
        goto test_queue_ptr_error;
    }
    INIT_WORK(&test_work, test_cb);
    // ret = queue_work(test_queue_ptr, &test_work);
    ret = queue_work_on(get_cpu(), test_queue_ptr, &test_work);
    // schedule_work(&test_work);
    pr_info(" (*) test_init - queue_work_on return:%d. \n", ret);
    return 0;
test_queue_ptr_error:
    destroy_workqueue(test_queue_ptr);
    return 0;
}

static void test_cb(struct work_struct *work)
{
    pr_info(" (*) test_cb - pid:%d. cpu:%d\n", current->pid, get_cpu());
}

isnmod the module gives me the output :

Nov 19 23:11:18 test kernel: [ 3031.766137]  (*) test_init start - pid:8594. cpu:3
Nov 19 23:11:18 test kernel: [ 3031.766371]  (*) test_init - queue_work_on return:1.
Nov 19 23:11:18 test kernel: [ 3031.766672]  (*) test_cb - pid:83. cpu:3  <--- this line indicates "test_cb" function is running on process 83 ([kworker/3:1]).

ps aux
....
root        82  0.0  0.0      0     0 ?        S<   22:20   0:00 [charger_manager]
root        83  0.0  0.0      0     0 ?        S    22:20   0:00 [kworker/3:1]
root        85  0.0  0.0      0     0 ?        S    22:20   0:00 [kworker/0:2]
root       217  0.0  0.0      0     0 ?        S<   22:20   0:00 [mpt_poll_0]

Thanks
Jay




_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux