reformat code and job array

This commit is contained in:
Rongsong Shen 2025-11-07 16:14:27 +08:00
parent a665ccd4fe
commit 9ff857db9f
64 changed files with 1497 additions and 2476 deletions

View file

@ -18,9 +18,7 @@ vtask_t* vtask_alloc()
return task;
}
int vtask_init(vtask_t* task,
vtask_func_t entry,
endpoint_t* ep)
int vtask_init(vtask_t* task, vtask_func_t entry, endpoint_t* ep)
{
int rc;
@ -54,10 +52,8 @@ void vcpu_idle(vcpu_t* vcpu)
vtaskmgr_t* vtaskmgr = (vtaskmgr_t*)vcpu->owner;
vcpu->task = NULL;
cbuf_put(&(vtaskmgr->wbuf),
(void*)&(vcpu->cpuid));
cbuf_get(&(vcpu->wbuf),
(void*)&(vcpu->task));
cbuf_put(&(vtaskmgr->wbuf), (void*)&(vcpu->cpuid));
cbuf_get(&(vcpu->wbuf), (void*)&(vcpu->task));
return;
}
@ -104,9 +100,7 @@ static void* vcpu_entry(void* arg)
return NULL;
}
int vcpu_init(vcpu_t* vcpu,
int cpuid,
void* owner)
int vcpu_init(vcpu_t* vcpu, int cpuid, void* owner)
{
vcpu->state = VCPU_IDLE;
vcpu->vcpu = 0;
@ -122,8 +116,7 @@ int vcpu_start(vcpu_t* vcpu)
{
int rc;
rc = pthread_create(&(vcpu->vcpu), NULL,
&vcpu_entry, vcpu);
rc = pthread_create(&(vcpu->vcpu), NULL, &vcpu_entry, vcpu);
if (rc != 0) {
vcpu->state = VCPU_ERR;
return -errno;
@ -166,8 +159,7 @@ static void taskq_item_killer(data_item_t* it)
}
}
int vtaskmgr_init(vtaskmgr_t* vtaskmgr,
int nvcpus)
int vtaskmgr_init(vtaskmgr_t* vtaskmgr, int nvcpus)
{
int i;
@ -177,23 +169,18 @@ int vtaskmgr_init(vtaskmgr_t* vtaskmgr,
vtaskmgr->dispatcher = 0;
vtaskmgr->n_vcpus = nvcpus;
vtaskmgr->vcpus = (vcpu_t*)calloc(nvcpus,
sizeof(vcpu_t));
vtaskmgr->vcpus = (vcpu_t*)calloc(nvcpus, sizeof(vcpu_t));
if (vtaskmgr->vcpus == NULL) {
return -ENOMEM;
}
for (i = 0; i < nvcpus; i++) {
vcpu_init(&(vtaskmgr->vcpus[i]),
i, vtaskmgr);
vcpu_init(&(vtaskmgr->vcpus[i]), i, vtaskmgr);
}
cbuf_init(&(vtaskmgr->wbuf),
nvcpus, sizeof(int));
cbuf_init(&(vtaskmgr->wtbuf),
1, sizeof(int));
cbuf_init(&(vtaskmgr->wbuf), nvcpus, sizeof(int));
cbuf_init(&(vtaskmgr->wtbuf), 1, sizeof(int));
dataq_init(&(vtaskmgr->taskq),
taskq_item_killer);
dataq_init(&(vtaskmgr->taskq), taskq_item_killer);
return 0;
}
@ -207,8 +194,7 @@ static vcpu_t* pick_idle_vcpu(vtaskmgr_t* vtaskmgr)
return NULL;
}
TRACE("%s pick idle cpu #%d",
__func__, i);
TRACE("%s pick idle cpu #%d", __func__, i);
return &(vtaskmgr->vcpus[i]);
}
@ -224,8 +210,7 @@ static int vtask_eligible(data_item_t* data)
}
eligible = !(endpoint_is_task_blocked(task->ctx.ep));
TRACE("%s vtask %p is %s",
__func__, task,
TRACE("%s vtask %p is %s", __func__, task,
eligible ? "eligible" : "not eligible");
return eligible;
@ -246,11 +231,9 @@ static vtask_t* pick_eligible_task(vtaskmgr_t* vtaskmgr)
return task;
}
static int bind_vtask(vtask_t* task,
vcpu_t* vcpu)
static int bind_vtask(vtask_t* task, vcpu_t* vcpu)
{
TRACE("binding task %p to cpu#%d\n",
task, vcpu->cpuid);
TRACE("binding task %p to cpu#%d\n", task, vcpu->cpuid);
if (task != NULL) {
endpoint_block_tasks(task->ctx.ep);
@ -294,8 +277,8 @@ int vtaskmgr_start(vtaskmgr_t* vtaskmgr)
{
int i, rc;
rc = pthread_create(&(vtaskmgr->dispatcher), NULL,
&vdispatcher_entry, vtaskmgr);
rc = pthread_create(&(vtaskmgr->dispatcher), NULL, &vdispatcher_entry,
vtaskmgr);
if (rc != 0) {
return -errno;
}
@ -345,14 +328,12 @@ void vtaskmgr_fini(vtaskmgr_t* vtaskmgr)
return;
}
int vtask_enq(vtaskmgr_t* vtaskmgr,
vtask_t* task)
int vtask_enq(vtaskmgr_t* vtaskmgr, vtask_t* task)
{
int rc = 0;
ioctx_ref(&(task->ctx));
rc = dataq_enq(&(vtaskmgr->taskq),
&(task->ctx.link));
rc = dataq_enq(&(vtaskmgr->taskq), &(task->ctx.link));
if (rc >= 0) {
/* wake up task dispatcher */
task->owner = vtaskmgr;