On Thu, May 25, 2023, Jinrong Liang wrote: > Sean Christopherson <seanjc@xxxxxxxxxx> 于2023年5月25日周四 07:50写道: > > > +static uint64_t test_incompatible_filter(struct kvm_vcpu *vcpu, uint32_t action, > > > + uint32_t bitmap) > > > +{ > > > + struct incompatible_pmu_event_filter err_f; > > > + > > > + err_f.action = action; > > > + err_f.fixed_counter_bitmap = bitmap; > > > + ioctl((vcpu->vm)->fd, KVM_SET_PMU_EVENT_FILTER, &err_f.action); > > > > This is completely busted. It "passes" by luck, not because it's a valid test. > > The size of the argument is embedded in the IOCTL number itself, which means that > > unless glibc is being very nice and using a macro + typeof + sizeof to sanity check > > things, which I highly doubt is the case, this ioctl() is passing random stack data, > > a.k.a. garbage, to KVM. > > > > In short, drop this patch. > > Thank you for letting us know about the issues with the patch. I will > drop the patch as suggested. Would you advise me to prepare version 3 > to remove this patch? More comments on the other patches are incoming, please hold off on v3 until then.