Re: [Xen-devel] [PATCH v8 08/24] x86: refactor psr: set value: implement framework.

2017-03-15 Thread Jan Beulich
>>> On 15.03.17 at 09:18, wrote: > On 17-03-15 01:40:06, Jan Beulich wrote: >> >>> On 15.03.17 at 03:52, wrote: >> > Sorry, I may not fully understand your meaning. My thoughts are below. >> > 1. We set 'd->arch.psr_cos_ids[socket] = cos;' in

Re: [Xen-devel] [PATCH v8 08/24] x86: refactor psr: set value: implement framework.

2017-03-15 Thread Yi Sun
On 17-03-15 01:40:06, Jan Beulich wrote: > >>> On 15.03.17 at 03:52, wrote: > > Sorry, I may not fully understand your meaning. My thoughts are below. > > 1. We set 'd->arch.psr_cos_ids[socket] = cos;' in 'psr_set_val'; > > > > 2. After that, we get valid cpumask

Re: [Xen-devel] [PATCH v8 08/24] x86: refactor psr: set value: implement framework.

2017-03-15 Thread Jan Beulich
>>> On 15.03.17 at 03:52, wrote: > Sorry, I may not fully understand your meaning. My thoughts are below. > 1. We set 'd->arch.psr_cos_ids[socket] = cos;' in 'psr_set_val'; > > 2. After that, we get valid cpumask through cpupool_domain_cpumask(); > > 3. If the actual

Re: [Xen-devel] [PATCH v8 08/24] x86: refactor psr: set value: implement framework.

2017-03-14 Thread Yi Sun
On 17-03-14 04:24:51, Jan Beulich wrote: > >>> On 14.03.17 at 10:21, wrote: > > On 17-03-14 00:29:09, Jan Beulich wrote: > >> >>> Yi Sun 03/14/17 3:42 AM >>> > >> >There are three scenarios. E.g. > >> >1. User calls domctl interface on Dom0 to

Re: [Xen-devel] [PATCH v8 08/24] x86: refactor psr: set value: implement framework.

2017-03-14 Thread Jan Beulich
>>> On 14.03.17 at 10:21, wrote: > On 17-03-14 00:29:09, Jan Beulich wrote: >> >>> Yi Sun 03/14/17 3:42 AM >>> >> >There are three scenarios. E.g. >> >1. User calls domctl interface on Dom0 to set a COS ID 1 for Dom1 into its >> >psr_cos_ids[].

Re: [Xen-devel] [PATCH v8 08/24] x86: refactor psr: set value: implement framework.

2017-03-14 Thread Yi Sun
On 17-03-14 00:29:09, Jan Beulich wrote: > >>> Yi Sun 03/14/17 3:42 AM >>> > >There are three scenarios. E.g. > >1. User calls domctl interface on Dom0 to set a COS ID 1 for Dom1 into its > >psr_cos_ids[]. Then, Dom1 is scheduled so that 'psr_ctxt_switch_to()' is >

Re: [Xen-devel] [PATCH v8 08/24] x86: refactor psr: set value: implement framework.

2017-03-14 Thread Jan Beulich
>>> Yi Sun 03/14/17 3:42 AM >>> >There are three scenarios. E.g. >1. User calls domctl interface on Dom0 to set a COS ID 1 for Dom1 into its >psr_cos_ids[]. Then, Dom1 is scheduled so that 'psr_ctxt_switch_to()' is >called which makes COS ID 1 work. For this case, we do

Re: [Xen-devel] [PATCH v8 08/24] x86: refactor psr: set value: implement framework.

2017-03-13 Thread Yi Sun
On 17-03-13 06:35:33, Jan Beulich wrote: > >>> On 13.03.17 at 03:36, wrote: > > On 17-03-10 02:09:55, Jan Beulich wrote: > >> >>> On 10.03.17 at 03:54, wrote: > >> > On 17-03-08 09:07:10, Jan Beulich wrote: > >> >> >>> On 15.02.17 at 09:49,

Re: [Xen-devel] [PATCH v8 08/24] x86: refactor psr: set value: implement framework.

2017-03-13 Thread Jan Beulich
>>> On 13.03.17 at 03:36, wrote: > On 17-03-10 02:09:55, Jan Beulich wrote: >> >>> On 10.03.17 at 03:54, wrote: >> > On 17-03-08 09:07:10, Jan Beulich wrote: >> >> >>> On 15.02.17 at 09:49, wrote: >> >> > +

Re: [Xen-devel] [PATCH v8 08/24] x86: refactor psr: set value: implement framework.

2017-03-12 Thread Yi Sun
On 17-03-10 02:09:55, Jan Beulich wrote: > >>> On 10.03.17 at 03:54, wrote: > > On 17-03-08 09:07:10, Jan Beulich wrote: > >> >>> On 15.02.17 at 09:49, wrote: > >> > +static int write_psr_msr(unsigned int socket, unsigned int cos, > >> > +

Re: [Xen-devel] [PATCH v8 08/24] x86: refactor psr: set value: implement framework.

2017-03-10 Thread Jan Beulich
>>> On 10.03.17 at 08:46, wrote: > On 17-03-08 09:07:10, Jan Beulich wrote: > [...] >> > /* Called with domain lock held, no extra lock needed for 'psr_cos_ids' */ >> > static void psr_free_cos(struct domain *d) >> > { >> > -if( !d->arch.psr_cos_ids ) >> > +

Re: [Xen-devel] [PATCH v8 08/24] x86: refactor psr: set value: implement framework.

2017-03-10 Thread Jan Beulich
>>> On 10.03.17 at 03:54, wrote: > On 17-03-08 09:07:10, Jan Beulich wrote: >> >>> On 15.02.17 at 09:49, wrote: >> > +static int write_psr_msr(unsigned int socket, unsigned int cos, >> > + const uint64_t *val) >> > +{ >>

Re: [Xen-devel] [PATCH v8 08/24] x86: refactor psr: set value: implement framework.

2017-03-09 Thread Yi Sun
On 17-03-08 09:07:10, Jan Beulich wrote: [...] > > /* Called with domain lock held, no extra lock needed for 'psr_cos_ids' */ > > static void psr_free_cos(struct domain *d) > > { > > -if( !d->arch.psr_cos_ids ) > > +unsigned int socket, cos; > > + > > +if ( !d->arch.psr_cos_ids ) >

Re: [Xen-devel] [PATCH v8 08/24] x86: refactor psr: set value: implement framework.

2017-03-09 Thread Yi Sun
On 17-03-08 09:07:10, Jan Beulich wrote: > >>> On 15.02.17 at 09:49, wrote: > > As set value flow is the most complicated one in psr, it will be > > divided to some patches to make things clearer. This patch > > implements the set value framework to show a whole picture

Re: [Xen-devel] [PATCH v8 08/24] x86: refactor psr: set value: implement framework.

2017-03-08 Thread Jan Beulich
>>> On 15.02.17 at 09:49, wrote: > As set value flow is the most complicated one in psr, it will be > divided to some patches to make things clearer. This patch > implements the set value framework to show a whole picture firstly. > > It also changes domctl interface to

Re: [Xen-devel] [PATCH v8 08/24] x86: refactor psr: set value: implement framework.

2017-02-28 Thread Yi Sun
On 17-02-28 13:58:55, Roger Pau Monn� wrote: > > +static int find_cos(const uint64_t *val, uint32_t array_len, > > +enum psr_feat_type feat_type, > > +const struct psr_socket_info *info) > > +{ > ASSERT(spin_is_locked(info->ref_lock)); > > +return

Re: [Xen-devel] [PATCH v8 08/24] x86: refactor psr: set value: implement framework.

2017-02-28 Thread Roger Pau Monné
On Wed, Feb 15, 2017 at 04:49:23PM +0800, Yi Sun wrote: > As set value flow is the most complicated one in psr, it will be > divided to some patches to make things clearer. This patch > implements the set value framework to show a whole picture firstly. > > It also changes domctl interface to

Re: [Xen-devel] [PATCH v8 08/24] x86: refactor psr: set value: implement framework.

2017-02-27 Thread Jan Beulich
>>> Yi Sun 02/27/17 8:06 AM >>> >On 17-02-26 17:41:43, Wei Liu wrote: >> On Wed, Feb 15, 2017 at 04:49:23PM +0800, Yi Sun wrote: >> > +/* >> > + * Step 0: >> > + * old_cos means the COS ID current domain is using. By default, it >> > is 0. >> > + * >> >

Re: [Xen-devel] [PATCH v8 08/24] x86: refactor psr: set value: implement framework.

2017-02-26 Thread Yi Sun
On 17-02-26 17:41:43, Wei Liu wrote: > On Wed, Feb 15, 2017 at 04:49:23PM +0800, Yi Sun wrote: > [...] > > +int psr_set_val(struct domain *d, unsigned int socket, > > +uint64_t val, enum cbm_type type) > > IMHO it would be far better to use goto style error handling in such a >

Re: [Xen-devel] [PATCH v8 08/24] x86: refactor psr: set value: implement framework.

2017-02-26 Thread Wei Liu
On Wed, Feb 15, 2017 at 04:49:23PM +0800, Yi Sun wrote: [...] > +int psr_set_val(struct domain *d, unsigned int socket, > +uint64_t val, enum cbm_type type) IMHO it would be far better to use goto style error handling in such a complex function. You can avoid missing one of the