LINUX.ORG.RU

История изменений

Исправление kirk_johnson, (текущая версия) :

Плюс, у тебя spin_lock_irq() в hidden_queue_rq(). Я хз почему ты не хочешь, следуя логике mq, сделать lockless структуру (привязать список запросов к CPU и просто вырубать preempt, вставлять в список и врубать preempt обратно), но суть в том, что возможно тебе нужен spin_lock_irqsave() в этом контексте.

И complete у тебя довольно странный. Вместо blk_mq_end_io() вроде как стоит позвать blk_mq_complete_request().

Исправление kirk_johnson, :

Плюс, у тебя spin_lock_irq() в hidden_queue_rq(). Я хз почему ты не хочешь, следуя логике mq, сделать lockless структуру (привязать список запросов к CPU и просто вырубать preempt, вставлять в список и врубать preempt обратно), но суть в том, что возможно тебе нужен spin_lock_irqsave() в этом контексте.

Исходная версия kirk_johnson, :

Плюс, у тебя spin_lock_irq() в hidden_queue_rq(). Я хз почему ты не хочешь, следуя логике mq сделать lockless структуру (привязать список запросов к CPU и просто вырубать preempt, вставлять в список и врубать preempt обратно), но суть в том, что возможно тебе нужен spin_lock_irqsave() в этом контексте.