Re: trace points and ABI

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 06/06/2012 03:55 PM, Christian Borntraeger wrote:
> On 24/04/12 14:04, Avi Kivity wrote:
>>> @@ -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.
>> 
> 
> Avi,
> 
> Do you consider these tracepoints itself ABI or not?


I'm not sure what the current kernel dogma is, but I would like to see a
clear separation of architectural tracepoints (=reporting information
defined by the hardware, from the guest point of view; for example an
instruction emulated or a hypercall called) and implementation
tracepoints that record an interesting event, but one that is dependent
on host-side kvm implementation.  Architectural tracepoints would be
soft ABIs (extension is allowed and in extreme cases changes), while
implementation tracepoints are completely fluid.  The current tools are
able to adapt to changes.

x86 kvm once had such a separation, with kvm: tracepoints being
architectural and kvmmmu: tracepoints being implementation defined.
Unfortunately there was some drift (vcpu_match_mmio does not correspond
to an architectural event).

> 
> we are preparing some patches that add trace points in addition to
> a: these stats
> b: our debug feature
> 
> If this is not ABI, then we could work on these trace points step by step,
> e.g. first use the existing stat/debug as trace point places, then combine,
> add or remove  trace points later on if necessary.
> 

I recommend doing the same split.  Architectural tracepoints are easy to
get right, and most useful to a developer.  Implementation tracepoints
are harder to get right, but the cost of getting them wrong is low.  In
any case I'd like to see the entire change in one patchset so we have
all the tracepoints in one kernel release cycle, not several.

-- 
error compiling committee.c: too many arguments to function
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux