[PATCH V3 0/2] block: fix race between adding wbt and normal IO

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

Yi reported several kernel panics on:

[16687.001777] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000008
...
[16687.163549] pc : __rq_qos_track+0x38/0x60

or

[  997.690455] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000020
...
[  997.850347] pc : __rq_qos_done+0x2c/0x50

Turns out it is caused by race between adding wbt and normal IO.

Fix the issue by freezing request queue when adding/deleting rq qos.

V3:
	- use ->queue_lock for protecting concurrent adding/deleting rqos on
	  same queue

V2:
	- switch to the approach of freezing queue, which is more generic
	  than V1.



Ming Lei (2):
  block: fix race between adding/removing rq qos and normal IO
  block: mark queue init done at the end of blk_register_queue

 block/blk-rq-qos.h | 24 ++++++++++++++++++++++++
 block/blk-sysfs.c  | 29 +++++++++++++++--------------
 2 files changed, 39 insertions(+), 14 deletions(-)

Cc: Yi Zhang <yi.zhang@xxxxxxxxxx>
Cc: Bart Van Assche <bvanassche@xxxxxxx>
-- 
2.31.1




[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux