Re: git: e17eca327633 - main - vmm: Avoid embedding cpuset_t ioctl ABIs
- In reply to: Mark Johnston : "git: e17eca327633 - main - vmm: Avoid embedding cpuset_t ioctl ABIs"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 24 May 2023 08:13:57 UTC
On 24/05/23 03:17, Mark Johnston wrote: > The branch main has been updated by markj: > > URL: https://cgit.FreeBSD.org/src/commit/?id=e17eca327633efc511450310afb5e4a662724e3d > > commit e17eca327633efc511450310afb5e4a662724e3d > Author: Mark Johnston <markj@FreeBSD.org> > AuthorDate: 2023-05-24 01:13:33 +0000 > Commit: Mark Johnston <markj@FreeBSD.org> > CommitDate: 2023-05-24 01:15:59 +0000 > > vmm: Avoid embedding cpuset_t ioctl ABIs > > Commit 0bda8d3e9f7a ("vmm: permit some IPIs to be handled by userspace") > embedded cpuset_t into the vmm(4) ioctl ABI. This was a mistake since > we otherwise have some leeway to change the cpuset_t for the whole > system, but we want to keep the vmm ioctl ABI stable. > > Rework IPI reporting to avoid this problem. Along the way, make VM_RUN > a bit more efficient: > - Split vmexit metadata out of the main VM_RUN structure. This data is > only written by the kernel. > - Have userspace pass a cpuset_t pointer and cpusetsize in the VM_RUN > structure, as is done for cpuset syscalls. > - Have the destination CPU mask for VM_EXITCODE_IPIs live outside the > vmexit info structure, and make VM_RUN copy it out separately. Zero > out any extra bytes in the CPU mask, like cpuset syscalls do. > - Modify the vmexit handler prototype to take a full VM_RUN structure. > > PR: 271330 > Reviewed by: corvink, jhb (previous versions) > Sponsored by: The FreeBSD Foundation > Differential Revision: https://reviews.freebsd.org/D40113 Looks like this is breaking world build: /poudriere/jails/14amd64/usr/src/usr.sbin/bhyvectl/bhyvectl.c:2389:24: error: incompatible pointer types passing 'struct vm_exit *' to paramet er of type 'struct vm_run *' [-Werror,-Wincompatible-pointer-types] error = vm_run(vcpu, &vmexit); ^~~~~~~ /usr/obj/poudriere/jails/14amd64/usr/src/amd64.amd64/tmp/usr/include/vmmapi.h:158:46: note: passing argument to parameter 'vmrun' here int vm_run(struct vcpu *vcpu, struct vm_run *vmrun); ^ 1 error generated. *** [bhyvectl.o] Error code 1 make[4]: stopped in /poudriere/jails/14amd64/usr/src/usr.sbin/bhyvectl Looks like required adaptations to bhyvectl.c where left out. -- Guido Falsi <madpilot@FreeBSD.org>