[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ae42db25-9c8c-3f27-9ccb-41644b135a8b@rbox.co>
Date: Fri, 4 Aug 2023 16:58:26 +0200
From: Michal Luczaj <mhal@...x.co>
To: Sean Christopherson <seanjc@...gle.com>,
Marc Zyngier <maz@...nel.org>,
Oliver Upton <oliver.upton@...ux.dev>
Cc: linux-arm-kernel@...ts.infradead.org, kvmarm@...ts.linux.dev,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 3/4] KVM: selftests: Use asserting kvm_ioctl() macros when
getting ARM page sizes
On 8/4/23 02:42, Sean Christopherson wrote:
> Use kvm_ioctl() instead of open coding equivalent ioctl()+TEST_ASSERT()
> calls when getting the support page sizes on ARM. The macro usage is a
> little funky since the "kvm_fd" parameter implies an actual /dev/kvm fd,
> but on the other hand the code is invoking KVM ioctl()s.
>
> Alternatively, the core utilities could expose a vm_open()+vm_close()
> pair so that the ARM code could create a dummy, on-stack VM+vCPU pair and
> use {vm,vcpu}_ioctl() as appropriate. But the odds of something breaking
> due to oddball, partial usage of kvm_vm and kvm_vcpu structures is much
> higher than realizing meaningful benefit from using {vm,vcpu}_ioctl().
Since you're doing the cleanup, does mmio_warning_test qualify for the
same (funky usage ahead)?
- kvm = open("/dev/kvm", O_RDWR);
- TEST_ASSERT(kvm != -1, "failed to open /dev/kvm");
- kvmvm = __kvm_ioctl(kvm, KVM_CREATE_VM, NULL);
- TEST_ASSERT(kvmvm > 0, KVM_IOCTL_ERROR(KVM_CREATE_VM, kvmvm));
- kvmcpu = ioctl(kvmvm, KVM_CREATE_VCPU, 0);
- TEST_ASSERT(kvmcpu != -1, KVM_IOCTL_ERROR(KVM_CREATE_VCPU, kvmcpu));
+ kvm = open_path_or_exit(KVM_DEV_PATH, O_RDWR);
+ kvmvm = kvm_fd_ioctl(kvm, KVM_CREATE_VM, NULL);
+ kvmcpu = kvm_fd_ioctl(kvmvm, KVM_CREATE_VCPU, NULL);
Side note, just in case this wasn't your intention: no kvm@ in cc.
thanks,
Michal
Powered by blists - more mailing lists