История изменений
Исправление
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() в этом контексте.