[GSoC]: Libvirt driver for Jailhouse-Problem in sending initial patches(0-2)
Prakhar Bansal
prakharbansal0910 at gmail.com
Sat Sep 5 23:31:18 UTC 2020
Hello Libvirt community,
I want to apologize for my attempts to send the same patches multiple
times, but for some reason I am not able to send Patch 1-2 along with cover
letter with this patch set through git send-email.
I even tried sending them separately but it didn’t help.
When I’m trying sending Patch set(0-9), only Patches 3-9 are being
successfully sent to mailing list and I’m getting the message on my gmail
account that your message to libvir-list at redhat.com has been blocked.
I’m still trying to solve this issue but I would appreciate any suggestion
on this matter.
Thanks,
Prakhar Bansal
On Sat, Sep 5, 2020 at 2:31 PM <libvir-list-request at redhat.com> wrote:
> Send libvir-list mailing list submissions to
>
> libvir-list at redhat.com
>
>
>
> To subscribe or unsubscribe via the World Wide Web, visit
>
> https://www.redhat.com/mailman/listinfo/libvir-list
>
> or, via email, send a message with subject or body 'help' to
>
> libvir-list-request at redhat.com
>
>
>
> You can reach the person managing the list at
>
> libvir-list-owner at redhat.com
>
>
>
> When replying, please edit your Subject line so it is more specific
>
> than "Re: Contents of libvir-list digest..."
>
>
>
>
>
> Today's Topics:
>
>
>
> 1. [GSoC PATCH 6/9] Jailhouse driver: Implementation of
>
> DomainLookup* callbacks (Prakhar Bansal)
>
> 2. [GSoC PATCH 5/9] Jailhouse driver: Implementation of
>
> DomainInfo/State/List (Prakhar Bansal)
>
> 3. [GSoC PATCH 7/9] Jailhouse driver: Implementation of
>
> DomainShutdown/Destroy callbacks (Prakhar Bansal)
>
>
>
>
>
> ----------------------------------------------------------------------
>
>
>
> Message: 1
>
> Date: Sat, 5 Sep 2020 16:30:00 -0500
>
> From: Prakhar Bansal <prakharbansal0910 at gmail.com>
>
> To: libvir-list at redhat.com
>
> Subject: [GSoC PATCH 6/9] Jailhouse driver: Implementation of
>
> DomainLookup* callbacks
>
> Message-ID: <20200905213003.10682-7-prakharbansal0910 at gmail.com>
>
> Content-Type: text/plain; charset=US-ASCII
>
>
>
> Signed-off-by:Prakhar Bansal<prakharbansal0910 at gmail.com>
>
> ---
>
> src/jailhouse/jailhouse_driver.c | 70 ++++++++++++++++++++++++++++----
>
> 1 file changed, 61 insertions(+), 9 deletions(-)
>
>
>
> diff --git a/src/jailhouse/jailhouse_driver.c
> b/src/jailhouse/jailhouse_driver.c
>
> index 2bb249f996..8c84a23388 100644
>
> --- a/src/jailhouse/jailhouse_driver.c
>
> +++ b/src/jailhouse/jailhouse_driver.c
>
> @@ -292,25 +292,77 @@ jailhouseConnectListAllDomains(virConnectPtr conn,
>
> static virDomainPtr
>
> jailhouseDomainLookupByID(virConnectPtr conn, int id)
>
> {
>
> - UNUSED(conn);
>
> - UNUSED(id);
>
> - return NULL;
>
> +virJailhouseDriverPtr driver = conn->privateData;
>
> + virDomainObjPtr cell;
>
> + virDomainPtr dom = NULL;
>
> +
>
> + cell = virDomainObjListFindByID(driver->domains, id);
>
> +
>
> + if (!cell) {
>
> + virReportError(VIR_ERR_NO_DOMAIN,
>
> + _("No domain with matching ID '%d'"), id);
>
> + goto cleanup;
>
> + }
>
> +
>
> + if (virDomainLookupByIDEnsureACL(conn, cell->def) < 0)
>
> + goto cleanup;
>
> +
>
> + dom = virGetDomain(conn, cell->def->name, cell->def->uuid,
> cell->def->id);
>
> + cleanup:
>
> + virDomainObjEndAPI(&cell);
>
> + return dom;
>
> }
>
>
>
> static virDomainPtr
>
> jailhouseDomainLookupByName(virConnectPtr conn, const char *name)
>
> {
>
> - UNUSED(conn);
>
> - UNUSED(name);
>
> - return NULL;
>
> + virJailhouseDriverPtr driver = conn->privateData;
>
> + virDomainObjPtr cell;
>
> + virDomainPtr dom = NULL;
>
> +
>
> + cell = virDomainObjListFindByName(driver->domains, name);
>
> +
>
> + if (!cell) {
>
> + virReportError(VIR_ERR_NO_DOMAIN,
>
> + _("No domain with matching name '%s'"), name);
>
> + goto cleanup;
>
> + }
>
> +
>
> + if (virDomainLookupByNameEnsureACL(conn, cell->def) < 0)
>
> + goto cleanup;
>
> +
>
> + dom = virGetDomain(conn, cell->def->name, cell->def->uuid,
> cell->def->id);
>
> +
>
> + cleanup:
>
> + virDomainObjEndAPI(&cell);
>
> + return dom;
>
> }
>
>
>
> static virDomainPtr
>
> jailhouseDomainLookupByUUID(virConnectPtr conn, const unsigned char *uuid)
>
> {
>
> - UNUSED(conn);
>
> - UNUSED(uuid);
>
> - return NULL;
>
> + virJailhouseDriverPtr driver = conn->privateData;
>
> + virDomainObjPtr cell;
>
> + virDomainPtr dom = NULL;
>
> +
>
> + cell = virDomainObjListFindByUUID(driver->domains, uuid);
>
> +
>
> + if (!cell) {
>
> + char uuidstr[VIR_UUID_STRING_BUFLEN];
>
> + virUUIDFormat(uuid, uuidstr);
>
> + virReportError(VIR_ERR_NO_DOMAIN,
>
> + _("No domain with matching UUID '%s'"), uuidstr);
>
> + goto cleanup;
>
> + }
>
> +
>
> + if (virDomainLookupByUUIDEnsureACL(conn, cell->def) < 0)
>
> + goto cleanup;
>
> +
>
> + dom = virGetDomain(conn, cell->def->name, cell->def->uuid,
> cell->def->id);
>
> +
>
> + cleanup:
>
> + virDomainObjEndAPI(&cell);
>
> + return dom;
>
> }
>
>
>
> static virDomainObjPtr
>
> --
>
> 2.17.1
>
>
>
>
>
>
>
> ------------------------------
>
>
>
> Message: 2
>
> Date: Sat, 5 Sep 2020 16:29:59 -0500
>
> From: Prakhar Bansal <prakharbansal0910 at gmail.com>
>
> To: libvir-list at redhat.com
>
> Subject: [GSoC PATCH 5/9] Jailhouse driver: Implementation of
>
> DomainInfo/State/List
>
> Message-ID: <20200905213003.10682-6-prakharbansal0910 at gmail.com>
>
> Content-Type: text/plain; charset=US-ASCII
>
>
>
> Signed-off-by:Prakhar Bansal<prakharbansal0910 at gmail.com>
>
> ---
>
> src/jailhouse/jailhouse_driver.c | 102 +++++++++++++++++++++++++------
>
> 1 file changed, 83 insertions(+), 19 deletions(-)
>
>
>
> diff --git a/src/jailhouse/jailhouse_driver.c
> b/src/jailhouse/jailhouse_driver.c
>
> index 5b7bdc92d8..2bb249f996 100644
>
> --- a/src/jailhouse/jailhouse_driver.c
>
> +++ b/src/jailhouse/jailhouse_driver.c
>
> @@ -267,19 +267,26 @@ static int
>
> jailhouseNodeGetInfo(virConnectPtr conn,
>
> virNodeInfoPtr nodeinfo)
>
> {
>
> - UNUSED(conn);
>
> - UNUSED(nodeinfo);
>
> - return -1;
>
> + if (virNodeGetInfoEnsureACL(conn) < 0)
>
> + return -1;
>
> +
>
> + return virCapabilitiesGetNodeInfo(nodeinfo);
>
> }
>
>
>
> static int
>
> jailhouseConnectListAllDomains(virConnectPtr conn,
>
> - virDomainPtr **domain, unsigned int flags)
>
> + virDomainPtr **domains,
>
> + unsigned int flags)
>
> {
>
> - UNUSED(conn);
>
> - UNUSED(domain);
>
> - UNUSED(flags);
>
> - return -1;
>
> + virJailhouseDriverPtr driver = conn->privateData;
>
> +
>
> + virCheckFlags(VIR_CONNECT_LIST_DOMAINS_FILTERS_ALL, -1);
>
> +
>
> + if (virConnectListAllDomainsEnsureACL(conn) < 0)
>
> + return -1;
>
> +
>
> + return virDomainObjListExport(driver->domains, conn, domains,
>
> + virConnectListAllDomainsCheckACL,
> flags);
>
> }
>
>
>
> static virDomainPtr
>
> @@ -522,30 +529,87 @@ jailhouseDomainDestroy(virDomainPtr domain)
>
> }
>
>
>
> static int
>
> -jailhouseDomainGetInfo(virDomainPtr domain, virDomainInfoPtr info)
>
> +virjailhouseGetDomainTotalCpuStats(virDomainObjPtr cell,
>
> + unsigned long long *cpustats)
>
> {
>
> - UNUSED(domain);
>
> - UNUSED(info);
>
> + // TODO(Prakhar): Not implemented yet.
>
> + UNUSED(cell);
>
> + UNUSED(cpustats);
>
> return -1;
>
> }
>
>
>
> +static int
>
> +jailhouseDomainGetInfo(virDomainPtr domain, virDomainInfoPtr info)
>
> +{
>
> + virDomainObjPtr cell;
>
> + int ret = -1;
>
> +
>
> + if (!(cell = virJailhouseDomObjFromDomain(domain)))
>
> + goto cleanup;
>
> +
>
> + if (virDomainGetInfoEnsureACL(domain->conn, cell->def) < 0)
>
> + goto cleanup;
>
> +
>
> + if (virDomainObjIsActive(cell)) {
>
> + if (virjailhouseGetDomainTotalCpuStats(cell, &(info->cpuTime)) <
> 0)
>
> + goto cleanup;
>
> + } else {
>
> + info->cpuTime = 0;
>
> + }
>
> +
>
> + info->state = virDomainObjGetState(cell, NULL);
>
> + info->maxMem = virDomainDefGetMemoryTotal(cell->def);
>
> + info->nrVirtCpu = virDomainDefGetVcpus(cell->def);
>
> + ret = 0;
>
> +
>
> + cleanup:
>
> + virDomainObjEndAPI(&cell);
>
> + return ret;
>
> +}
>
> +
>
> static int
>
> jailhouseDomainGetState(virDomainPtr domain,
>
> int *state, int *reason, unsigned int flags)
>
> {
>
> - UNUSED(domain);
>
> - UNUSED(state);
>
> - UNUSED(reason);
>
> - UNUSED(flags);
>
> - return -1;
>
> + virDomainObjPtr cell;
>
> + int ret = -1;
>
> +
>
> + virCheckFlags(0, -1);
>
> +
>
> + if (!(cell = virJailhouseDomObjFromDomain(domain)))
>
> + goto cleanup;
>
> +
>
> + if (virDomainGetStateEnsureACL(domain->conn, cell->def) < 0)
>
> + goto cleanup;
>
> +
>
> + *state = virDomainObjGetState(cell, reason);
>
> + ret = 0;
>
> +
>
> + cleanup:
>
> + virDomainObjEndAPI(&cell);
>
> + return ret;
>
> }
>
>
>
> static char *
>
> jailhouseDomainGetXMLDesc(virDomainPtr domain, unsigned int flags)
>
> {
>
> - UNUSED(domain);
>
> - UNUSED(flags);
>
> - return NULL;
>
> + virDomainObjPtr cell;
>
> + char *ret = NULL;
>
> +
>
> + virCheckFlags(VIR_DOMAIN_XML_COMMON_FLAGS, NULL);
>
> +
>
> + if (!(cell = virJailhouseDomObjFromDomain(domain)))
>
> + goto cleanup;
>
> +
>
> + if (virDomainGetXMLDescEnsureACL(domain->conn, cell->def, flags) < 0)
>
> + goto cleanup;
>
> +
>
> + ret = virDomainDefFormat(cell->def, NULL /* xmlopt */,
>
> + virDomainDefFormatConvertXMLFlags(flags));
>
> +
>
> + cleanup:
>
> + virDomainObjEndAPI(&cell);
>
> + return ret;
>
> }
>
>
>
> static virHypervisorDriver jailhouseHypervisorDriver = {
>
> --
>
> 2.17.1
>
>
>
>
>
>
>
> ------------------------------
>
>
>
> Message: 3
>
> Date: Sat, 5 Sep 2020 16:30:01 -0500
>
> From: Prakhar Bansal <prakharbansal0910 at gmail.com>
>
> To: libvir-list at redhat.com
>
> Subject: [GSoC PATCH 7/9] Jailhouse driver: Implementation of
>
> DomainShutdown/Destroy callbacks
>
> Message-ID: <20200905213003.10682-8-prakharbansal0910 at gmail.com>
>
> Content-Type: text/plain; charset=US-ASCII
>
>
>
> Signed-off-by:Prakhar Bansal<prakharbansal0910 at gmail.com>
>
> ---
>
> src/jailhouse/jailhouse_api.c | 8 +++
>
> src/jailhouse/jailhouse_driver.c | 101 +++++++++++++++++++++++++++++--
>
> 2 files changed, 104 insertions(+), 5 deletions(-)
>
>
>
> diff --git a/src/jailhouse/jailhouse_api.c b/src/jailhouse/jailhouse_api.c
>
> index 783903e939..510e2f5f66 100644
>
> --- a/src/jailhouse/jailhouse_api.c
>
> +++ b/src/jailhouse/jailhouse_api.c
>
> @@ -71,6 +71,14 @@ int cell_match(const struct dirent *dirent);
>
>
>
> int createCell(const char *conf_file);
>
>
>
> +int loadImagesInCell(virJailhouseCellId cell_id, char *images, int
> num_images);
>
> +
>
> +int shutdownCell(virJailhouseCellId cell_id);
>
> +
>
> +int startCell(virJailhouseCellId cell_id);
>
> +
>
> +int destroyCell(virJailhouseCellId cell_id);
>
> +
>
> int getCellInfo(const unsigned int id,
>
> virJailhouseCellInfoPtr * cell_info);
>
>
>
> diff --git a/src/jailhouse/jailhouse_driver.c
> b/src/jailhouse/jailhouse_driver.c
>
> index 8c84a23388..46c7759cb8 100644
>
> --- a/src/jailhouse/jailhouse_driver.c
>
> +++ b/src/jailhouse/jailhouse_driver.c
>
> @@ -406,8 +406,8 @@ jailhouseDomainCreateWithFlags(virDomainPtr domain,
>
> unsigned int flags)
>
> {
>
> virJailhouseDriverPtr driver = domain->conn->privateData;
>
> - virDomainObjPtr cell;
>
> virJailhouseCellInfoPtr cell_info;
>
> + virDomainObjPtr cell;
>
> int ret = -1;
>
>
>
> virCheckFlags(VIR_DOMAIN_NONE, -1);
>
> @@ -566,18 +566,107 @@ jailhouseDomainCreateXML(virConnectPtr conn,
>
> return dom;
>
> }
>
>
>
> +static int
>
> +jailhouseDomainShutdownFlags(virDomainPtr domain, unsigned int flags)
>
> +{
>
> + virJailhouseDriverPtr driver = domain->conn->privateData;
>
> + virJailhouseCellInfoPtr cell_info;
>
> + virDomainObjPtr cell;
>
> + virJailhouseCellId cell_id;
>
> + int ret = -1;
>
> +
>
> + virCheckFlags(0, -1);
>
> +
>
> + if (!(cell = virJailhouseDomObjFromDomain(domain)))
>
> + goto cleanup;
>
> +
>
> + if (virDomainShutdownFlagsEnsureACL(domain->conn, cell->def, flags) <
> 0)
>
> + goto cleanup;
>
> +
>
> + if (virDomainObjGetState(cell, NULL) != VIR_DOMAIN_RUNNING)
>
> + goto cleanup;
>
> +
>
> + if (!(cell_info = virJailhouseFindCellByName(driver,
> cell->def->name))) {
>
> + virReportError(VIR_ERR_NO_DOMAIN,
>
> + _("no domain with matching name %s and ID %d)"),
>
> + cell->def->name, cell->def->id);
>
> + virDomainObjListRemove(driver->domains, cell);
>
> + goto cleanup;
>
> + }
>
> +
>
> + // Initialize the cell_id.
>
> + cell_id.id = cell->def->id;
>
> + cell_id.padding = 0;
>
> + if (virStrcpy(cell_id.name, cell->def->name,
> JAILHOUSE_CELL_ID_NAMELEN) < 0) {
>
> + virReportError(VIR_ERR_INTERNAL_ERROR,
>
> + _("Cell name %s length exceeded the limit"),
>
> + cell->def->name);
>
> + goto cleanup;
>
> + }
>
> +
>
> + if (shutdownCell(cell_id) < 0)
>
> + goto cleanup;
>
> +
>
> + virDomainObjSetState(cell, VIR_DOMAIN_SHUTOFF,
> VIR_DOMAIN_SHUTOFF_SHUTDOWN);
>
> +
>
> + ret = 0;
>
> +
>
> + cleanup:
>
> + virDomainObjEndAPI(&cell);
>
> + return ret;
>
> +}
>
> +
>
> static int
>
> jailhouseDomainShutdown(virDomainPtr domain)
>
> {
>
> - UNUSED(domain);
>
> - return -1;
>
> + return jailhouseDomainShutdownFlags(domain, 0);
>
> +}
>
> +
>
> +static int
>
> +jailhouseDomainDestroyFlags(virDomainPtr domain, unsigned int flags)
>
> +{
>
> + virJailhouseDriverPtr driver = domain->conn->privateData;
>
> + virJailhouseCellInfoPtr cell_info;
>
> + virDomainObjPtr cell;
>
> + int ret = -1;
>
> +
>
> + virCheckFlags(0, -1);
>
> +
>
> + if (!(cell = virJailhouseDomObjFromDomain(domain)))
>
> + goto cleanup;
>
> +
>
> + if (virDomainDestroyFlagsEnsureACL(domain->conn, cell->def) < 0)
>
> + goto cleanup;
>
> +
>
> + if (virDomainObjGetState(cell, NULL) != VIR_DOMAIN_SHUTOFF) {
>
> + virReportError(VIR_ERR_OPERATION_INVALID,
>
> + _("Domain %s is still running."),
>
> + cell->def->name);
>
> + goto cleanup;
>
> + }
>
> +
>
> + if (!(cell_info = virJailhouseFindCellByName(driver,
> cell->def->name))) {
>
> + virReportError(VIR_ERR_NO_DOMAIN,
>
> + _("no domain with matching name %s and ID %d)"),
>
> + cell->def->name, cell->def->id);
>
> + virDomainObjListRemove(driver->domains, cell);
>
> + goto cleanup;
>
> + }
>
> +
>
> + // Remove the cell from the domain list.
>
> + virDomainObjListRemove(driver->domains, cell);
>
> +
>
> + ret = 0;
>
> +
>
> + cleanup:
>
> + virDomainObjEndAPI(&cell);
>
> + return ret;
>
> }
>
>
>
> static int
>
> jailhouseDomainDestroy(virDomainPtr domain)
>
> {
>
> - UNUSED(domain);
>
> - return -1;
>
> + return jailhouseDomainDestroyFlags(domain, 0);
>
> }
>
>
>
> static int
>
> @@ -675,7 +764,9 @@ static virHypervisorDriver jailhouseHypervisorDriver =
> {
>
> .domainCreateWithFlags = jailhouseDomainCreateWithFlags, /* 6.3.0
> */
>
> .domainCreateXML = jailhouseDomainCreateXML, /* 6.3.0 */
>
> .domainShutdown = jailhouseDomainShutdown, /* 6.3.0 */
>
> + .domainShutdownFlags = jailhouseDomainShutdownFlags, /* 6.3.0 */
>
> .domainDestroy = jailhouseDomainDestroy, /* 6.3.0 */
>
> + .domainDestroyFlags = jailhouseDomainDestroyFlags, /* 6.3.0 */
>
> .domainGetInfo = jailhouseDomainGetInfo, /* 6.3.0 */
>
> .domainGetState = jailhouseDomainGetState, /* 6.3.0 */
>
> .domainLookupByID = jailhouseDomainLookupByID, /* 6.3.0 */
>
> --
>
> 2.17.1
>
>
>
>
>
>
>
> End of libvir-list Digest, Vol 178, Issue 70
>
> ********************************************
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20200905/d2e1a805/attachment-0001.htm>
More information about the libvir-list
mailing list