-
Notifications
You must be signed in to change notification settings - Fork 37
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Arm VM Multicore Improvements #84
base: master
Are you sure you want to change the base?
Conversation
4b6fc4b
to
e828a2c
Compare
e828a2c
to
882e6c3
Compare
smc_set_return_value(®s, PSCI_SUCCESS); | ||
} else { | ||
ZF_LOGE("[vCPU %u] no unused physical core left", vcpu->vcpu_id); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
...or starting failed. I think separating the errors is worth it, because that make debugging easier when something fails here or got out if sync somehow.
@@ -92,6 +92,15 @@ int vm_assign_vcpu_target(vm_vcpu_t *vcpu, int target_cpu) | |||
ZF_LOGE("Failed to assign target cpu - A VCPU is already assigned to core %d", target_cpu); | |||
return -1; | |||
} | |||
|
|||
#if CONFIG_MAX_NUM_NODES > 1 | |||
int err = seL4_TCB_SetAffinity(vcpu->tcb.tcb.cptr, target_cpu); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think to commit is ok. But it makes this generic code now, how do other architectures cope with this change then? Do we gave to change something in the x86 VMM part also?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe vm_assign_vcpu_target
is currently only used by ARM
Since this PR has multiple commits that seem independent, but have dependencies on other PRs, could you split this up that we can merge things independently and avoid unnecessary blocking? |
882e6c3
to
1f1f86f
Compare
Dropped commit |
Bumping this PR. I believe everything has been addressed. |
@Apave24 could you rebase this, then we also get another CI run there to see if this passes. |
1f1f86f
to
f3b8e13
Compare
f3b8e13
to
61bba4c
Compare
Calling seL4_TCB_SetAffinity in the vm_assign_vcpu_target function allows the vcpu to correctly run on the cpu it is assigned to. Previously the vcpu was getting assigned to the same core as it's ID. Signed-off-by: Alex Pavey <[email protected]>
Previously the target_cpu member was being used to determine if a vcpu was started in conjunction with the is_vcpu_online function. This is unneccessary and has been repurposed to keep track of whether or not the vcpu has been previously assigned a pcpu or not. Signed-off-by: Alex Pavey <[email protected]>
Signed-off-by: Alex Pavey <[email protected]>
61bba4c
to
2094fef
Compare
@axel-h @abrandnewusername @kent-mcleod Hey guys, just wanted to ping on this PR. This series of PRs makes it so that when the VM kicks off a secondary core, the VMM pins the VCPU to a PCPU defined in the |
These commits allow for more flexible core configurations for Arm VM systems