[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 07/10] libxl: add Qdisk backend launch helper
Roger Pau Monne writes ("[PATCH v2 07/10] libxl: add Qdisk backend launch helper"): > Current Qemu launch functions in libxl require the usage of data > structures only avaialbe on domain creation. All this information is > not need in order to launch a Qemu instance to serve Qdisk backends, > so introduce a new simplified helper that can be used to launch > Qemu/Qdisk, that will be used to launch Qdisk in driver domains. I think the principle here is good, and the implementation is pretty good. Looking for code duplication: +void libxl__spawn_qdisk_backend(libxl__egc *egc, libxl__spawn_qdisk_state *sqs) ... > + libxl_create_logfile(CTX, GCSPRINTF("qdisk-%u", domid), &logfile); > + logfile_w = open(logfile, O_WRONLY|O_CREAT|O_APPEND, 0644); > + if (logfile_w < 0) { > + free(logfile); > + rc = logfile_w; > + goto error; > + } > + free(logfile); > + null = open("/dev/null", O_RDONLY); This is very like similar code in libxl__spawn_local_dm and could perhaps profitably be factored out into a function. > +static void qdisk_confirm(libxl__egc *egc, libxl__spawn_state *spawn, > + const char *xsdata) > +{ > + STATE_AO_GC(spawn->ao); > + > + if (!xsdata) > + return; > + > + if (strcmp(xsdata, "running")) > + return; > + > + libxl__spawn_initiate_detach(gc, spawn); > +} This is practically identical to device_model_confirm. Indeed, if you delete the unneeded line in device_model_confirm for getting the (unused) dmss, I think it's entirely identical. > +static void qdisk_startup_failed(libxl__egc *egc, > + libxl__spawn_state *spawn) > +{ > + libxl__spawn_qdisk_state *sqs = CONTAINER_OF(spawn, *sqs, spawn); > + sqs->callback(egc, sqs, ERROR_FAIL); > +} These are similar to the callbacks used by libxl__spawn_local_dm. If you used a libxl__dm_spawn_state (even if mostly full of null pointers) for the sqs, instead of its own type, you could abolish these separate callbacks and rely on device_model_spawn_outcome to DTRT I think. What do you think ? Thanks, Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |