Function report |
Source Code:kernel\padata.c |
Create Date:2022-07-28 13:48:05 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:padata_alloc - allocate and initialize a padata instance and specify* cpumasks for serial and parallel workers
Proto:static struct padata_instance *padata_alloc(const char *name, const struct cpumask *pcpumask, const struct cpumask *cbcpumask)
Type:struct padata_instance
Parameter:
| Type | Parameter | Name |
|---|---|---|
| const char * | name | |
| const struct cpumask * | pcpumask | |
| const struct cpumask * | cbcpumask |
| 973 | pinst = kzalloc - allocate memory. The memory is set to zero.*@size: how many bytes of memory are required.*@flags: the type of memory to allocate (see kmalloc). |
| 977 | parallel_wq = alloc_workqueue("%s_parallel", WQ_UNBOUND, 0, name) |
| 979 | If Not parallel_wq Then Go to err_free_inst |
| 982 | get_online_cpus() |
| 984 | serial_wq = alloc_workqueue("%s_serial", WQ_MEM_RECLAIM | WQ_CPU_INTENSIVE, 1, name) |
| 986 | If Not serial_wq Then Go to err_put_cpus |
| 989 | If Not alloc_cpumask_var( & pcpu, GFP_KERNEL) Then Go to err_free_serial_wq |
| 991 | If Not alloc_cpumask_var( & cbcpu, GFP_KERNEL) Then |
| 992 | free_cpumask_var(pcpu) |
| 993 | Go to err_free_serial_wq |
| 995 | If Not If cpumask contains no active cpu, we mark the instance as invalid. || Not If cpumask contains no active cpu, we mark the instance as invalid. Then Go to err_free_masks |
| 999 | If Not alloc_cpumask_var( & pcpu, GFP_KERNEL) Then Go to err_free_masks |
| 1001 | If Not alloc_cpumask_var( & cbcpu, GFP_KERNEL) Then Go to err_free_rcpumask_pcpu |
| 1003 | If Not alloc_cpumask_var( & omask, GFP_KERNEL) Then Go to err_free_rcpumask_cbcpu |
| 1013 | If padata_setup_cpumasks(pinst) Then Go to err_free_omask |
| 1016 | flags = 0 |
| 1020 | mutex_init - initialize the mutex*@mutex: the mutex to be initialized* Initialize the mutex to unlocked state.* It is not allowed to initialize an already locked mutex.( & lock) |
| 1028 | put_online_cpus() |
| 1030 | Return pinst |
| 1032 | err_free_omask : |
| 1033 | free_cpumask_var(omask) |
| 1034 | err_free_rcpumask_cbcpu : |
| 1035 | free_cpumask_var(cbcpu) |
| 1036 | err_free_rcpumask_pcpu : |
| 1037 | free_cpumask_var(pcpu) |
| 1038 | err_free_masks : |
| 1039 | free_cpumask_var(pcpu) |
| 1040 | free_cpumask_var(cbcpu) |
| 1041 | err_free_serial_wq : |
| 1043 | err_put_cpus : |
| 1044 | put_online_cpus() |
| 1046 | err_free_inst : |
| 1048 | err : |
| 1049 | Return NULL |
| Name | Describe |
|---|---|
| padata_alloc_possible | padata_alloc_possible - Allocate and initialize padata instance.* Use the cpu_possible_mask for serial and* parallel workers.*@name: used to identify the instance |
| Source code conversion tool public plug-in interface | X |
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |