Messages in this thread | | | Subject | Re: [PATCH RESEND 2/2] perf/x86/lbr: Move cpuc->lbr_xsave allocation out of sleeping region | From | Like Xu <> | Date | Wed, 21 Apr 2021 16:48:36 +0800 |
| |
Hi Peter,
On 2021/4/21 16:38, Peter Zijlstra wrote: > On Wed, Apr 21, 2021 at 10:18:25AM +0800, Like Xu wrote: >> -int x86_reserve_hardware(void) >> +int x86_reserve_hardware(struct perf_event *event) >> { >> int err = 0; >> >> @@ -398,8 +398,10 @@ int x86_reserve_hardware(void) >> if (atomic_read(&pmc_refcount) == 0) { >> if (!reserve_pmc_hardware()) >> err = -EBUSY; >> - else >> + else { >> reserve_ds_buffers(); >> + reserve_lbr_buffers(event); >> + } >> } >> if (!err) >> atomic_inc(&pmc_refcount); >> @@ -650,7 +652,7 @@ static int __x86_pmu_event_init(struct perf_event *event) >> if (!x86_pmu_initialized()) >> return -ENODEV; >> >> - err = x86_reserve_hardware(); >> + err = x86_reserve_hardware(event); >> if (err) >> return err; >> > > This is still complete garbage..
Hhh,thanks for your comment!
So do we have a better idea to alloc cpuc->lbr_xsave to avoid this kind of call trace ?
>
| |