Re: [Xen-devel] [PATCH 2/6] x86: add support for COS/CBM manangement

2015-03-17 Thread Chao Peng
On Tue, Mar 17, 2015 at 09:25:48AM +, Jan Beulich wrote: > >>> On 17.03.15 at 10:11, wrote: > > On Mon, Mar 16, 2015 at 05:10:32PM +, Jan Beulich wrote: > >> >>> On 13.03.15 at 11:13, wrote: > >> > +else > >> > +{ > >> > +unsigned int cpu = cpumask_check(get_socket_cpu(soc

Re: [Xen-devel] [PATCH 2/6] x86: add support for COS/CBM manangement

2015-03-17 Thread Jan Beulich
>>> On 17.03.15 at 10:11, wrote: > On Mon, Mar 16, 2015 at 05:10:32PM +, Jan Beulich wrote: >> >>> On 13.03.15 at 11:13, wrote: >> > +else >> > +{ >> > +unsigned int cpu = cpumask_check(get_socket_cpu(socket)); >> >> Isn't this going to trigger an assertion when the socket co

Re: [Xen-devel] [PATCH 2/6] x86: add support for COS/CBM manangement

2015-03-17 Thread Chao Peng
On Mon, Mar 16, 2015 at 05:10:32PM +, Jan Beulich wrote: > >>> On 13.03.15 at 11:13, wrote: > > +else > > +{ > > +unsigned int cpu = cpumask_check(get_socket_cpu(socket)); > > Isn't this going to trigger an assertion when the socket count got > specified on the command line?

Re: [Xen-devel] [PATCH 2/6] x86: add support for COS/CBM manangement

2015-03-17 Thread Chao Peng
On Fri, Mar 13, 2015 at 09:53:37AM -0400, Konrad Rzeszutek Wilk wrote: > > +xfree(d->arch.psr_cos_ids); > > And d->arch.psr_cos_ids = NULL > > (however this depends on who calls psr_domain_init, which > is unclear to me). > > > +} > > + > > +int psr_domain_init(struct domain *d) > > +{ > > +

Re: [Xen-devel] [PATCH 2/6] x86: add support for COS/CBM manangement

2015-03-16 Thread Jan Beulich
>>> On 13.03.15 at 11:13, wrote: > --- a/xen/arch/x86/domctl.c > +++ b/xen/arch/x86/domctl.c > @@ -1324,6 +1324,24 @@ long arch_do_domctl( > } > break; > > +case XEN_DOMCTL_psr_cat_op: > +switch ( domctl->u.psr_cat_op.cmd ) > +{ > +case XEN_DOMCTL_PS

Re: [Xen-devel] [PATCH 2/6] x86: add support for COS/CBM manangement

2015-03-13 Thread Konrad Rzeszutek Wilk
> +static bool_t psr_check_cbm(unsigned int cbm_len, uint64_t cbm) > +{ > +unsigned int first_bit, zero_bit; > + > +/* Set bits should only in the range of [0, cbm_len) */ Missing '.'. > +if ( cbm & (~0ull << cbm_len) ) > +return 0; > + > +/* At least two contiguous bits n