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.
pgp9egN6mMEN9.pgp
Description: PGP signature