[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 06/21] libxl: introduce libxl__vnuma_config_check
On Wed, Jan 28, 2015 at 04:13:28PM +0000, Ian Campbell wrote: > On Fri, 2015-01-23 at 11:13 +0000, Wei Liu wrote: > > diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h > > index 6d3ac58..39356ba 100644 > > --- a/tools/libxl/libxl_internal.h > > +++ b/tools/libxl/libxl_internal.h > > @@ -3394,6 +3394,11 @@ void libxl__numa_candidate_put_nodemap(libxl__gc *gc, > > libxl_bitmap_copy(CTX, &cndt->nodemap, nodemap); > > } > > > > +/* Check if vNUMA config is valid. Returns 0 if valid. */ > > And on invalid? ERROR_FOO or just !0? > > I see further down it is ERROR_INVAL, perhaps say so, and perhaps > introduce ERROR_INVAL_VNUMA_CONFIGUATION or something. I think ERROR_INVALID is good enough. There are logs along the line to indicate what goes wrong. > > > +/* Check if vNUMA configuration is valid: > > + * 1. all pnodes inside vnode_to_pnode array are valid > > + * 2. one vcpu belongs to and only belongs to one vnode > > + * 3. each vmemrange is valid and doesn't overlap with each other > > + */ > > +int libxl__vnuma_config_check(libxl__gc *gc, > > + const libxl_domain_build_info *b_info, > > Hard tabs here. > Fixed. > > > + for (i = 0; i < b_info->num_vnuma_nodes; i++) { > > + uint32_t pnode; > > + > > + p = &b_info->vnuma_nodes[i]; > > + pnode = p->pnode; > > + > > + /* The pnode specified is not valid? */ > > + if (pnode >= nr_nodes) { > > I take it that pnodes aren't (potentially) sparse? > That is the assumption used in libxc and xen I think. I haven't seen sparse pnodes personally. > > + LIBXL__LOG(CTX, LIBXL__LOG_ERROR, > > + "Invalid pnode %d specified", > > + pnode); > > Please use the short LOG macros (throughout). > Ack. > > + goto out; > > + } > > + > > + total_memkb += p->memkb; > > + } > > + > > + if (total_memkb != b_info->max_memkb) { > > + LIBXL__LOG(CTX, LIBXL__LOG_ERROR, > > + "Amount of memory mismatch (0x%"PRIx64" != > > 0x%"PRIx64")", > > + total_memkb, b_info->max_memkb); > > Did arch_setup_meminit not also check this? > Yes. But I think libxl should perform due diligence as well. Logging here is also more user friendly. > Meaning it could maybe abort() or ASSERT. Not 100% sure about that being > wise though. > No need to abort, because this function is used to validate user input. Wei. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |