|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 11 of 11] Some automatic NUMA placement documentation
Dario Faggioli writes ("[PATCH 11 of 11] Some automatic NUMA placement
documentation"):
> About rationale, usage and API.
...
> +## Guest Placement in libxl ##
Oh here's the API documentation!
In general I would prefer to see docs come in the same patch but I
guess I can read it here:
> +xl achieves automatic NUMA placement by means of the following API
> +calls, provided by libxl.
Can you try to write some more general comment about what order these
functions should be called in ?
Or to put it another way:
> + libxl_numa_candidate *libxl_domain_numa_candidates(libxl_ctx *ctx,
> + libxl_domain_build_info *b_info,
> + int min_nodes, int *nr_cndts);
> +
> +This is what should be used to generate the full set of placement
> +candidates. In fact, the function returns an array of containing nr_cndts
> +libxl_numa_candidate (see below). Each candidate is basically a set of nodes
> +that has been checked against the memory requirement derived from the
> +provided libxl_domain_build_info.
That tells me what the function does. But my starting point is that I
have no idea when or why I might want to `generate the full set of
placement candidates'. If this is something I need to do the docs
need to explain that.
This goes double for this function:
> + int libxl_numa_candidate_add_cpus(libxl_ctx *ctx,
> + int min_cpus, int max_nodes,
> + libxl_numa_candidate *candidate);
> +
> +This is what should be used to ensure a placement candidate has at least
> +min_cpus CPUs. In case it does not, the function also take care of
> +adding more nodes to the candidate itself (up to when the value specified
> +in max_nodes is reached). When adding new nodes, the one that has the
> +smallest "distance" from the current node map is selected at each step.
`add_cpus' doesn't seem the same as `ensure a candidate has at least
min_cpus CPUs'. In what sense are the CPUs added ?
And, as before, why might I want to call this ? And when would I call
it ? Why does the interface to libxl expose this rather than just
offering a single function
libxl_do_automatic_numa_placement_according_to_heuristics
?
> + libxl_numa_candidate_count_domains(libxl_ctx *ctx,
> + libxl_numa_candidate *candidate);
> +
> +This is what counts the number of domains that are currently pinned
> +to the CPUs of the nodes of a given candidate.
Why is that useful ? It is used by some of your other code so I guess
this is a facility which is useful to the implementors of other
placement algorithms ?
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |