[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Xen-devel] [PATCH v12 for-xen-4.5 12/20] x86/VPMU: Initialize PMU for PV(H) guests
- To: Jan Beulich <JBeulich@xxxxxxxx>
- From: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
- Date: Mon, 29 Sep 2014 12:04:32 -0400
- Cc: kevin.tian@xxxxxxxxx, keir@xxxxxxx, suravee.suthikulpanit@xxxxxxx, andrew.cooper3@xxxxxxxxxx, tim@xxxxxxx, dietmar.hahn@xxxxxxxxxxxxxx, xen-devel@xxxxxxxxxxxxx, Aravind.Gopalakrishnan@xxxxxxx, jun.nakajima@xxxxxxxxx, dgdegra@xxxxxxxxxxxxx
- Delivery-date: Mon, 29 Sep 2014 16:03:36 +0000
- List-id: Xen developer discussion <xen-devel.lists.xen.org>
On 09/29/2014 11:42 AM, Jan Beulich wrote:
On 29.09.14 at 17:41, <boris.ostrovsky@xxxxxxxxxx> wrote:
On 09/29/2014 11:25 AM, Jan Beulich wrote:
On 25.09.14 at 21:28, <boris.ostrovsky@xxxxxxxxxx> wrote:
@@ -389,14 +390,26 @@ static int amd_vpmu_initialise(struct vcpu *v)
}
}
- ctxt = xzalloc_bytes(sizeof(struct xen_pmu_amd_ctxt) +
- 2 * sizeof(uint64_t) * AMD_MAX_COUNTERS);
- if ( !ctxt )
+ regs_size = 2 * sizeof(uint64_t) * AMD_MAX_COUNTERS;
+ if ( is_hvm_domain(v->domain) )
{
- gdprintk(XENLOG_WARNING, "Insufficient memory for PMU, "
- " PMU feature is unavailable on domain %d vcpu %d.\n",
- v->vcpu_id, v->domain->domain_id);
- return -ENOMEM;
+ ctxt = xzalloc_bytes(sizeof(struct xen_pmu_amd_ctxt) + regs_size);
+ if ( !ctxt )
+ {
+ gdprintk(XENLOG_WARNING, "Insufficient memory for PMU, "
+ "PMU feature is unavailable\n");
+ return -ENOMEM;
+ }
+ }
+ else
+ {
+ if ( sizeof(struct xen_pmu_data) + regs_size > PAGE_SIZE )
This is a compile time constant condition - no reason to issue a
message and return failure at runtime, just BUILD_BUG_ON() instead.
It will not be if I replace AMD_MAX_COUNTERS with runtime register
count, as you asked in an earlier comment.
For which case see the respective VMX side comment.
Not sure I understand what you mean here. it will be almost exactly the
same.
-boris
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|