Michal Hocko <mhocko@xxxxxxxx> writes: > On Thu 13-08-20 11:58:40, Uladzislau Rezki wrote: > [...] >> Sorry for jumping in. We can rely on preemptable() for sure, if CONFIG_PREEMPT_RT >> is enabled, something like below: >> >> if (IS_ENABLED_RT && preemptebale()) > > Sure. I thought this was an RT specific thing that would be noop > otherwise. Well, even if RT specific it would be still something returning either true or false unconditionally. And guarding it with RT is not working either because then you are back to square one with the problem which triggered the discussion in the first place: raw_spin_lock() alloc() if (RT && !preemptible()) <- False because RT == false goto bail; spin_lock(&zone->lock) --> LOCKDEP complains So either you convince Paul not to do that or you need to do something like I suggested in my other reply. Thanks, tglx