[dm-devel] [PATCH 2/2] dm: stay in blk_queue_bypass until queue becomes initialized

Peter Zijlstra peterz at infradead.org
Mon Oct 29 16:45:15 UTC 2012


On Mon, 2012-10-29 at 12:38 -0400, Vivek Goyal wrote:
> Ok, so the question is what's wrong with calling synchronize_rcu() inside
> a mutex with CONFIG_PREEMPT=y. I don't know. Ccing paul mckenney  and
> peterz.

int blkcg_activate_policy(struct request_queue *q,

{

	...

        preloaded = !radix_tree_preload(GFP_KERNEL);

        blk_queue_bypass_start(q);




where:

int radix_tree_preload(gfp_t gfp_mask)
{
        struct radix_tree_preload *rtp;
        struct radix_tree_node *node;
        int ret = -ENOMEM;
        
        preempt_disable();


Seems obvious why it explodes..




More information about the dm-devel mailing list