Comment 4 for bug 1788432

Revision history for this message
Colin Ian King (colin-king) wrote :

I think this is a race in ccw_io_helper(). The stress-ng sysfs stressor is running multiple threaded reads of /sys/devices/css0/0.0.0000/0.0.0000/virtio0/block/vda/cache_type which results in reads via virtio_cread8() and ultimately reads using virtio_ccw_get_config()

I added debug into virtio_cread8 and it returns 1 99% of the time, and sometimes in a threaded read we get it returning garbage, such as 200 in the following trace:

[ 39.767777] virtio_cread8 32 -> 1
[ 39.767933] virtio_cread8 32 -> 1
[ 39.787712] virtio_cread8 32 -> 200
[ 39.787810] kernel BUG at drivers/block/virtio_blk.c:576!