|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [RFC PATCH v1 04/10] vpmu.c: factor out register conversion
On Mon, Jul 28, 2025 at 11:25 AM Andrew Cooper
<andrew.cooper3@xxxxxxxxxx> wrote:
>
> On 25/07/2025 4:06 pm, Edwin Török wrote:
> > diff --git a/xen/arch/x86/cpu/vpmu.c b/xen/arch/x86/cpu/vpmu.c
> > index 7be79c2d00..713311a1ac 100644
> > --- a/xen/arch/x86/cpu/vpmu.c
> > +++ b/xen/arch/x86/cpu/vpmu.c
> > @@ -160,6 +160,31 @@ static inline struct vcpu *choose_hwdom_vcpu(void)
> > return hardware_domain->vcpu[idx];
> > }
> >
> > +static inline void vpmu_convert_regs(struct xen_pmu_regs *r, uint64_t
> > *flags,
> > + struct vcpu *sampled,
> > + const struct cpu_user_regs *cur_regs)
> > {
> > + r->ip = cur_regs->rip;
> > + r->sp = cur_regs->rsp;
> > + r->flags = cur_regs->rflags;
> > +
> > + if (!is_hvm_vcpu(sampled)) {
> > + r->ss = cur_regs->ss;
> > + r->cs = cur_regs->cs;
> > + if (!(sampled->arch.flags & TF_kernel_mode))
> > + *flags |= PMU_SAMPLE_USER;
> > + } else {
> > + struct segment_register seg;
> > +
> > + hvm_get_segment_register(sampled, x86_seg_cs, &seg);
> > + r->cs = seg.sel;
> > + hvm_get_segment_register(sampled, x86_seg_ss, &seg);
> > + r->ss = seg.sel;
> > + r->cpl = seg.dpl;
> > + if (!(sampled->arch.hvm.guest_cr[0] & X86_CR0_PE))
> > + *flags |= PMU_SAMPLE_REAL;
> > + }
> > +}
> > +
>
> This is fine in principle, except that you're changing the style away
> from Xen style.
Ah looks like we lack a .clang-format file, so `gq` reformatted the
code with Clang's default settings.
I'll avoid using `gq` for now, and have redone the commit using '<' instead.
>
> I can fix it on commit, but it's going to collide massively later in the
> series.
I've pushed a WiP branch which contains this change, and fixed the
rebase conflicts in the followup patches:
https://gitlab.com/xen-project/people/edwintorok/xen/-/commits/pmustack-next?ref_type=heads
Best regards,
--Edwin
>
> ~Andrew
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |