RE: [PATCH v1 3/8] KVM: x86: Allocate performance counter for PEBS event

From: Alexander Shishkin
Date: Wed Oct 30 2019 - 02:42:19 EST


"Kang, Luwei" <luwei.kang@xxxxxxxxx> writes:

>> > static void pmc_reprogram_counter(struct kvm_pmc *pmc, u32 type,
>> > unsigned config, bool exclude_user,
>> > bool exclude_kernel, bool intr,
>> > - bool in_tx, bool in_tx_cp)
>> > + bool in_tx, bool in_tx_cp, bool pebs)
>> > {
>> > struct perf_event *event;
>> > struct perf_event_attr attr = {
>> > @@ -111,9 +111,12 @@ static void pmc_reprogram_counter(struct kvm_pmc *pmc, u32 type,
>> > .exclude_user = exclude_user,
>> > .exclude_kernel = exclude_kernel,
>> > .config = config,
>> > + .precise_ip = pebs ? 1 : 0,
>> > + .aux_output = pebs ? 1 : 0,
>>
>> srsly?
>
> Hi Peter,
> Thanks for review. For aux_output, I think it should be set 1 when the guest wants to enabled PEBS by Intel PT.

attr.aux_output==1 means your group leader should be an intel_pt event
for this to succeed. Luckily for this instance,
perf_event_create_kernel_counter() doesn't actually check the
attr.aux_output.

Also, does 'bool pebs' mean PEBS-via-PT or just a PEBS counter? Or does
it mean that in kvm it's the same thing?

Regards,
--
Alex