Re: [Xen-devel] [PATCH v9 06/13] x86: dynamically get/set CBM for a domain

2015-06-23 Thread Jan Beulich
>>> On 23.06.15 at 11:03, wrote: > On Tue, Jun 23, 2015 at 09:35:30AM +0100, Jan Beulich wrote: >> >>> On 23.06.15 at 09:19, wrote: >> > On Tue, Jun 16, 2015 at 08:08:34AM +0100, Jan Beulich wrote: >> >> >>> On 03.06.15 at 06:53, wrote: >> >> > +int psr_set_l3_cbm(struct domain *d, unsigned int

Re: [Xen-devel] [PATCH v9 06/13] x86: dynamically get/set CBM for a domain

2015-06-23 Thread Chao Peng
On Tue, Jun 23, 2015 at 09:35:30AM +0100, Jan Beulich wrote: > >>> On 23.06.15 at 09:19, wrote: > > On Tue, Jun 16, 2015 at 08:08:34AM +0100, Jan Beulich wrote: > >> >>> On 03.06.15 at 06:53, wrote: > >> > +int psr_set_l3_cbm(struct domain *d, unsigned int socket, uint64_t cbm) > >> > +{ > >> > +

Re: [Xen-devel] [PATCH v9 06/13] x86: dynamically get/set CBM for a domain

2015-06-23 Thread Jan Beulich
>>> On 23.06.15 at 09:19, wrote: > On Tue, Jun 16, 2015 at 08:08:34AM +0100, Jan Beulich wrote: >> >>> On 03.06.15 at 06:53, wrote: >> > +int psr_set_l3_cbm(struct domain *d, unsigned int socket, uint64_t cbm) >> > +{ >> > +unsigned int old_cos, cos; >> > +struct psr_cat_cbm *map, *found

Re: [Xen-devel] [PATCH v9 06/13] x86: dynamically get/set CBM for a domain

2015-06-23 Thread Chao Peng
On Tue, Jun 16, 2015 at 08:08:34AM +0100, Jan Beulich wrote: > >>> On 03.06.15 at 06:53, wrote: > > +int psr_set_l3_cbm(struct domain *d, unsigned int socket, uint64_t cbm) > > +{ > > +unsigned int old_cos, cos; > > +struct psr_cat_cbm *map, *found = NULL; > > +struct psr_cat_socket_in

Re: [Xen-devel] [PATCH v9 06/13] x86: dynamically get/set CBM for a domain

2015-06-16 Thread Jan Beulich
>>> On 03.06.15 at 06:53, wrote: > +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). */ > +if ( cbm & (~0ull << cbm_len) ) > +return 0; > + > +/* At least o

[Xen-devel] [PATCH v9 06/13] x86: dynamically get/set CBM for a domain

2015-06-02 Thread Chao Peng
For CAT, COS is maintained in hypervisor only while CBM is exposed to user space directly to allow getting/setting domain's cache capacity. For each specified CBM, hypervisor will either use a existed COS which has the same CBM or allocate a new one if the same CBM is not found. If the allocation f