|
[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 |