Re: [PATCH 5/9] perf/x86: implement cross-HT corruption bug workaround

Maria Dimakopoulou
2014-06-05T14:24:32Z

On Thu, Jun 5, 2014 at 5:14 PM, Peter Zijlstra <peterz@infradead.org> wrote:
> On Thu, Jun 05, 2014 at 04:11:50PM +0200, Peter Zijlstra wrote:
>> > > x86_schedule_event()
>> > > ->start_scheduling()
>> > > spin_lock()
>> > > ->get_event_constraints()
>> > > intel_get_excl_constraints()
>> > > kmalloc(.gfp=GFP_KERNEL)
>> > >
>> > > How can that ever work?
>>
>> > Are you saying it is illegal to call kmalloc() from
>> > this context?
>>
>> Nobody will come and arrest you for it, so no. Broken though. GFP_KERNEL
>> will attempt to sleep to wait for reclaim, and you're holding a
>> spinlock.

Ok, got it.

>
> Furthermore, even GFP_ATOMIC shouldn't be used because these are/should
> be raw_spinlocks and the zone->lock is a regular spinlock.
>
> So please look into the preallocation thing.

We will preallocate.