|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH for-4.6 5/8] tools/libxl: Save and restore EMULATOR_XENSTORE_DATA content
On Fri, 2015-07-31 at 17:38 +0100, Andrew Cooper wrote:
> On 31/07/15 17:34, Ian Jackson wrote:
> > Andrew Cooper writes ("Re: [PATCH for-4.6 5/8] tools/libxl: Save and
> > restore EMULATOR_XENSTORE_DATA content"):
> > > On 29/07/15 12:49, Ian Jackson wrote:
> > > > > + rel_start = strlen(xs_path) - 7;
> > > > This is horrible.
> > > What do you recommend instead?
> > I don't see why it is necessary to do something like rel_start at all.
> >
> > This whole patch could probably be made much simpler with something
> > like
> >
> > static const char *const physmap_entries[] = {
> > "start_addr", "size", "name", NULL
> > };
> >
> > and then loop over it a few times.
>
> But the rel_path has nothing to do with which subkeys get chosen.
>
> It is to strip out the current domains information from
> /local/domain/$dm_domid/device-model/$domid/.
>
> This is because both of the domid in the path will be different on the
> other side of migration. This is why EMULATOR_XENSTORE_DATA is
> purposefully specified relative to the above path, rather than as
> absolute paths.
I think an approach where "/local/domain/$dm_domid/device-model/$domid/"
was in a local const char *root and then smth like:
foreach foo(start_addr, size, name)
foo = gcstrcat("/physmap/", foo);
path = gcstrcat(root, foo)
fooval = read(path)
output(foo, fooval)
With the proper GC helpers etc of course. Would be fine, no?
The rel_path thing is only there because you are trying to keep "foo" and
"root" in the same string I think.
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |