Messages in this thread | | | Date | Mon, 5 Jun 2023 14:48:17 -0500 | From | Alex Elder <> | Subject | Re: [PATCH v13 10/24] gunyah: vm_mgr: Add/remove user memory regions |
| |
On 5/9/23 3:47 PM, Elliot Berman wrote: > When launching a virtual machine, Gunyah userspace allocates memory for > the guest and informs Gunyah about these memory regions through > SET_USER_MEMORY_REGION ioctl. > > Co-developed-by: Prakruthi Deepak Heragu <quic_pheragu@quicinc.com> > Signed-off-by: Prakruthi Deepak Heragu <quic_pheragu@quicinc.com> > Signed-off-by: Elliot Berman <quic_eberman@quicinc.com>
Two minor comments below. In any case:
Reviewed-by: Alex Elder <elder@linaro.org>
> --- > drivers/virt/gunyah/Makefile | 2 +- > drivers/virt/gunyah/vm_mgr.c | 59 +++++++- > drivers/virt/gunyah/vm_mgr.h | 26 ++++ > drivers/virt/gunyah/vm_mgr_mm.c | 236 ++++++++++++++++++++++++++++++++ > include/uapi/linux/gunyah.h | 37 +++++ > 5 files changed, 356 insertions(+), 4 deletions(-) > create mode 100644 drivers/virt/gunyah/vm_mgr_mm.c > > diff --git a/drivers/virt/gunyah/Makefile b/drivers/virt/gunyah/Makefile > index e47e25895299..bacf78b8fa33 100644 > --- a/drivers/virt/gunyah/Makefile > +++ b/drivers/virt/gunyah/Makefile > @@ -1,4 +1,4 @@ > # SPDX-License-Identifier: GPL-2.0 > > -gunyah-y += rsc_mgr.o rsc_mgr_rpc.o vm_mgr.o > +gunyah-y += rsc_mgr.o rsc_mgr_rpc.o vm_mgr.o vm_mgr_mm.o > obj-$(CONFIG_GUNYAH) += gunyah.o > diff --git a/drivers/virt/gunyah/vm_mgr.c b/drivers/virt/gunyah/vm_mgr.c > index a43401cb34f7..297427952b8c 100644 > --- a/drivers/virt/gunyah/vm_mgr.c > +++ b/drivers/virt/gunyah/vm_mgr.c > @@ -15,6 +15,8 @@ > > #include "vm_mgr.h" > > +static void gh_vm_free(struct work_struct *work); > +
You could just define gh_vm_free() here rather than declaring and defining it later.
> static __must_check struct gh_vm *gh_vm_alloc(struct gh_rm *rm) > { > struct gh_vm *ghvm;
. . .
> diff --git a/drivers/virt/gunyah/vm_mgr_mm.c b/drivers/virt/gunyah/vm_mgr_mm.c > new file mode 100644 > index 000000000000..91109bbf36b3 > --- /dev/null > +++ b/drivers/virt/gunyah/vm_mgr_mm.c > @@ -0,0 +1,236 @@ > +// SPDX-License-Identifier: GPL-2.0-only > +/* > + * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. > + */ > + > +#define pr_fmt(fmt) "gh_vm_mgr: " fmt > + > +#include <linux/gunyah_rsc_mgr.h> > +#include <linux/mm.h> > + > +#include <uapi/linux/gunyah.h> > + > +#include "vm_mgr.h" > + > +static bool pages_are_mergeable(struct page *a, struct page *b) > +{ > + if (page_to_pfn(a) + 1 != page_to_pfn(b)) > + return false; > + if (!zone_device_pages_have_same_pgmap(a, b)) > + return false; > + return true;
Maybe just:
return zone_device_pages_have_same_pgmap(a, b);
> +} > + > +static bool gh_vm_mem_overlap(struct gh_vm_mem *a, u64 addr, u64 size) > +{ > + u64 a_end = a->guest_phys_addr + (a->npages << PAGE_SHIFT); > + u64 end = addr + size; > + > + return a->guest_phys_addr < end && addr < a_end; > +} > +
. . .
| |