[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] sysctl: adjust XEN_SYSCTL_cputopoinfo behavior
On Mon, 2015-07-13 at 16:53 +0100, Jan Beulich wrote: > The new function's implementation, other than the original one of FWIW "other than the" would normally be expressed as "unlike the". > XEN_SYSCTL_topologyinfo, didn't allow the caller to get what it needs > (if e.g. it's after the data for just one specific CPU) with just one > hypercall, without caring about the total number of CPUs in the system. > > Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx> > > --- a/xen/common/sysctl.c > +++ b/xen/common/sysctl.c > @@ -358,15 +358,9 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xe > { > xen_sysctl_cputopo_t cputopo = { 0 }; > > - if ( ti->num_cpus < num_cpus ) > - { > - ret = -ENOBUFS; > - i = num_cpus; > - } > - else > - i = 0; > - > - for ( ; i < num_cpus; i++ ) > + if ( num_cpus > ti->num_cpus ) > + num_cpus = ti->num_cpus; > + for ( i = 0; i < num_cpus; ++i ) > { > if ( cpu_present(i) ) > { > @@ -393,7 +387,7 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xe > else > i = num_cpus; > > - if ( (!ret || (ret == -ENOBUFS)) && (ti->num_cpus != i) ) > + if ( !ret && (ti->num_cpus != i) ) > { > ti->num_cpus = i; > if ( __copy_field_to_guest(u_sysctl, op, > --- a/xen/include/public/sysctl.h > +++ b/xen/include/public/sysctl.h > @@ -482,10 +482,11 @@ DEFINE_XEN_GUEST_HANDLE(xen_sysctl_cputo > * - otherwise it's the number of entries in 'cputopo' > * > * OUT: > - * - If 'num_cpus' is less than the number Xen needs to write, -ENOBUFS > shall > - * be returned and 'num_cpus' updated to reflect the intended number. > - * - On success, 'num_cpus' shall indicate the number of entries written, > which > - * may be less than the maximum. > + * - If 'num_cpus' is less than the number Xen wants to write but the handle > + * handle is not a NULL one, partial data gets returned and 'num_cpus' > gets > + * updated to reflect the intended number. > + * - Otherwise, 'num_cpus' shall indicate the number of entries written, > which > + * may be less than the input value. > */ > struct xen_sysctl_cputopoinfo { > uint32_t num_cpus; > > > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |