|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 06/12 v3] xen/arm: vpl011: Add a new vuart node in the xenstore
Hi Wei,
On 11 May 2017 at 16:40, Wei Liu <wei.liu2@xxxxxxxxxx> wrote:
> On Wed, May 10, 2017 at 08:05:12PM +0530, Bhupinder Thakur wrote:
>> libxl__device_console_add(gc, domid, &console, state, &device);
>> @@ -1369,14 +1377,22 @@ static void domcreate_launch_dm(libxl__egc *egc,
>> libxl__multidev *multidev,
>> }
>> case LIBXL_DOMAIN_TYPE_PV:
>> {
>> - libxl__device_console console;
>> - libxl__device device;
>> + libxl__device_console console, vuart;
>> + libxl__device device, vuart_device;
>>
>> for (i = 0; i < d_config->num_vfbs; i++) {
>> libxl__device_vfb_add(gc, domid, &d_config->vfbs[i]);
>> libxl__device_vkb_add(gc, domid, &d_config->vkbs[i]);
>> }
>>
>> + if (d_config->b_info.vuart)
>> + {
>> + init_console_info(gc, &vuart, 0);
>> + vuart.backend_domid = state->console_domid;
>> + libxl__device_vuart_add(gc, domid, &vuart, state,
>> &vuart_device);
>> + libxl__device_console_dispose(&vuart);
>> + }
>> +
>
> This is strange. You have code snippet for both PV and HVM. Why?
Yes I believe I should have added only for PV guest but to keep the
code consistent for both type of guests, I added for both.
I will remove it for HVM.
>
>> init_console_info(gc, &console, 0);
>> console.backend_domid = state->console_domid;
>> libxl__device_console_add(gc, domid, &console, state, &device);
>> diff --git a/tools/libxl/libxl_device.c b/tools/libxl/libxl_device.c
>> index 5e96676..bb25672 100644
>> --- a/tools/libxl/libxl_device.c
>> +++ b/tools/libxl/libxl_device.c
>> @@ -26,6 +26,9 @@ static char *libxl__device_frontend_path(libxl__gc *gc,
>> libxl__device *device)
>> if (device->kind == LIBXL__DEVICE_KIND_CONSOLE && device->devid == 0)
>> return GCSPRINTF("%s/console", dom_path);
>>
>> + if (device->kind == LIBXL__DEVICE_KIND_VUART)
>> + return GCSPRINTF("%s/vuart/%d", dom_path, device->devid);
>> +
>> return GCSPRINTF("%s/device/%s/%d", dom_path,
>> libxl__device_kind_to_string(device->kind),
>> device->devid);
>> @@ -151,13 +154,19 @@ retry_transaction:
>> if (rc) goto out;
>>
>> if (!libxl_only) {
>> - rc = libxl__xs_write_checked(gc, t,
>> GCSPRINTF("%s/frontend",libxl_path),
>> - frontend_path);
>> - if (rc) goto out;
>> + if (fents || ro_fents)
>> + {
>> + rc = libxl__xs_write_checked(gc, t,
>> GCSPRINTF("%s/frontend",libxl_path),
>> + frontend_path);
>> + if (rc) goto out;
>> + }
>>
>> - rc = libxl__xs_write_checked(gc, t,
>> GCSPRINTF("%s/backend",libxl_path),
>> - backend_path);
>> - if (rc) goto out;
>> + if (bents)
>> + {
>> + rc = libxl__xs_write_checked(gc, t,
>> GCSPRINTF("%s/backend",libxl_path),
>> + backend_path);
>> + if (rc) goto out;
>> + }
>
> What is this for?
>
> If there is no fe or be entries you skip the path creation altogether.
> But why? This doesn't seem to be related to your patch.
For vuart, I am adding only a front end node but the
libxl__device_generic_add() creates the backend path also,even though
there is no backend node. To remove that hanging be path, I added this
check.
>
> At least explain this a bit in the commit message?
I will add more details in the commit message.
Regards,
Bhupinder
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |