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.

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.

Attachment: pgp9egN6mMEN9.pgp
Description: PGP signature

Reply via email to