On 24/04/12 14:04, Avi Kivity wrote:
[...]

>> +    int tid;
>> +    int i;
>> +
>> +    tid = vcpu->run->s.regs.gprs[(vcpu->arch.sie_block->ipa & 0xf0) >> 4];
>> +    vcpu->stat.diagnose_9c++;
>> +    VCPU_EVENT(vcpu, 5, "diag time slice end directed to %d", tid);
>> +
>> +    if (tid == vcpu->vcpu_id)
>> +            return 0;
>> +
>> +    kvm_for_each_vcpu(i, tcpu, kvm) {
>> +            if (tcpu->vcpu_id == tid) {
> 
> Can two vcpus match the same tid?

Dont think so. tid (target id) is the cpu number of the CPU holding the
spinlock and vcpu_id is checked for in kvm_vcpu_init to be unique.

[...]
>> +                    vcpu_put(vcpu);
>> +                    if (yield_to(task, 1)) {
>> +                            vcpu_load(vcpu);
> 
> vcpu_put()/_load()s are unneeded here, preempt notifiers will
> automatically call kvm_arch_vcpu_put()/_load() if we schedule.

Right. Will send an updated patch.

[...]
>> @@ -74,6 +74,7 @@ struct kvm_stats_debugfs_item debugfs_entries[] = {
>>      { "instruction_sigp_restart", VCPU_STAT(instruction_sigp_restart) },
>>      { "diagnose_10", VCPU_STAT(diagnose_10) },
>>      { "diagnose_44", VCPU_STAT(diagnose_44) },
>> +    { "diagnose_9c", VCPU_STAT(diagnose_9c) },
>>      { NULL }
>>  };
>>  
> 
> We're switching to tracepoints instead of homebrewed statistics.  It's
> in feature-removal-schedule.txt already.  It's okay to add them now, but
> please prepare for their removal.

Yes, we have started with some tracepoint code conversion. We will try to speed
up a bit.

Christian

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to