|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 24/24] xl: vNUMA support
On Tue, Feb 24, 2015 at 04:19:02PM +0000, Dario Faggioli wrote:
> On Thu, 2015-02-12 at 19:44 +0000, Wei Liu wrote:
> > This patch includes configuration options parser and documentation.
> >
> > Please find the hunk to xl.cfg.pod.5 for more information.
> >
> > Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
> > Cc: Ian Campbell <ian.campbell@xxxxxxxxxx>
> > Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
> >
> This all looks pretty good to me. I only have one comment and a
> question.
>
>
> > diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
> > index ec7fb2d..f52daf9 100644
> > --- a/tools/libxl/xl_cmdimpl.c
> > +++ b/tools/libxl/xl_cmdimpl.c
>
> [...]
>
> > + if (!strcmp("pnode", option)) {
> > + val = strtoul(value, &endptr, 10);
> > + ABORT_IF_FAILED(value);
> > + if (val >= nr_nodes) {
> > + fprintf(stderr,
> > + "xl: invalid pnode number: %lu\n", val);
> > + exit(1);
> > + }
> > + p->pnode = val;
> >
> This is, to all the effects, a form of placement so, if this part of
> vNUMA specification is present, you should disable the automatic
> placement happening in libxl.
>
> This is all it takes to do so (look inside parse_vcpu_affinity() if you
> need more insights):
>
> libxl_defbool_set(&b_info->numa_placement, false);
>
Will fix this.
> > + } else if (!strcmp("size", option)) {
> > + val = strtoul(value, &endptr, 10);
> > + ABORT_IF_FAILED(value);
> > + p->memkb = val << 10;
> > + } else if (!strcmp("vcpus", option)) {
> > + libxl_string_list cpu_spec_list;
> > + int cpu;
> > + unsigned long s, e;
> > +
> > + split_string_into_string_list(value, ",",
> > &cpu_spec_list);
> > + len = libxl_string_list_length(&cpu_spec_list);
> > +
> > + for (j = 0; j < len; j++) {
> > + parse_range(cpu_spec_list[j], &s, &e);
> > + for (cpu = s; cpu <=e; cpu++)
> > + libxl_bitmap_set(&p->vcpus, cpu);
> > + }
> > + libxl_string_list_dispose(&cpu_spec_list);
> >
> I think that using vcpupin_parse() for "vcpus=" would allow for more
> flexible syntax (i.e., things like "3-8,^5"), and save some code. The
> only downside is that it also accepts things like "nodes:1", which we
> clearly don't want in here... is that why you are not going for it?
>
Yes. I don't want "nodes" so I didn't reuse that function, and at that
point I didn't think it's critical to support "^X".
If you think this "^X" syntax is important, I can check for "nodes"
before calling vcpupin_parse.
> If you decide to use it, BTW, you may want to change its name (again!)
>
vcpus_parse? It's not restricted to vcpu pinning in any way, I think.
Wei.
> Regards,
> Dario
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |