• Ming Lei's avatar
    mtip32xx: pass BLK_MQ_F_NO_SCHED · 4981d04d
    Ming Lei authored
    The recent introduced MQ IO scheduler breaks mtip32xx in the
    following way.
    
    mtip32xx use the 'request_index' passed to .init_request() as
    hardware tag index for initializing hardware queue, and it
    actually require that rq->tag is always same with 'request_index'
    passed to .init_request(). Current blk-mq IO scheduler can't
    guarantee this point, so this patch passes BLK_MQ_F_NO_SCHED
    and at least make mtip32xx working.
    
    This patch fixes the following strange hardware failure. The
    issue can be triggered easily when doing I/O with mq-deadline
    enabled.
    
    [  186.972578] {1}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 32993
    [  186.972578] {1}[Hardware Error]: event severity: fatal
    [  186.972579] {1}[Hardware Error]:  Error 0, type: fatal
    [  186.972580] {1}[Hardware Error]:   section_type: PCIe error
    [  186.972580] {1}[Hardware Error]:   port_type: 0, PCIe end point
    [  186.972581] {1}[Hardware Error]:   version: 1.0
    [  186.972581] {1}[Hardware Error]:   command: 0x0407, status: 0x0010
    [  186.972582] {1}[Hardware Error]:   device_id: 0000:07:00.0
    [  186.972582] {1}[Hardware Error]:   slot: 4
    [  186.972583] {1}[Hardware Error]:   secondary_bus: 0x00
    [  186.972583] {1}[Hardware Error]:   vendor_id: 0x1344, device_id: 0x5150
    [  186.972584] {1}[Hardware Error]:   class_code: 008001
    [  186.972585] Kernel panic - not syncing: Fatal hardware error!
    Reported-by: default avatarJozef Mikovic <jmikovic@redhat.com>
    Signed-off-by: default avatarMing Lei <ming.lei@redhat.com>
    Signed-off-by: default avatarJens Axboe <axboe@fb.com>
    4981d04d
mtip32xx.c 117 KB