[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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.