Il 28 Ago 2017 16:40, George Dunlap ha scritto: On 07/27/2017 01:05 PM, Dario Faggioli wrote: > Soft-affinity support is usually implemented by means > of a two step "balancing loop", where: > - during the first step, we consider soft-affinity > (if the vcpu has one); > - during the second (if we get to it), we consider > hard-affinity. > > In runq_tickle(), we need to do that for checking > whether we can execute the waking vCPU on an pCPU > that is idle. In fact, we want to be sure that, if > there is an idle pCPU in the vCPU's soft affinity, > we'll use it. > > If there are no such idle pCPUs, though, and we > have to check non-idle ones, we can avoid the loop > and to both hard and soft-affinity in one pass. > > In fact, we can we scan runqueue and compute a > "score" for each vCPU which is running on each pCPU. > The idea is, since we may have to preempt someone: > - try to make sure that the waking vCPU will run > inside its soft-affinity, > - try to preempt someone that is running outside > of its own soft-affinity. > > The value of the score is added to a trace record, > so xenalyze's code and tools/xentrace/formats are > updated accordingly. > > Suggested-by: George Dunlap > Signed-off-by: Dario Faggioli > Reviewed-by: George Dunlap The primary focus of this patch is credit2, so the title should probably be xen/credit2, right? It touches the tools (xenalyze), so I put tools in the rag, but I'm fine with just 'xen/credit2'. I can change that on checkin. Sure, go ahead. Thanks, Dario PS. Sorry for the (most likely) bad format of this email (semt from my phone)