net/9p/virtio: Fix hard lockup in req_done
authorjiangyiwen <jiangyiwen@huawei.com>
Thu, 19 Jul 2018 07:17:00 +0000 (15:17 +0800)
committerDominique Martinet <dominique.martinet@cea.fr>
Mon, 13 Aug 2018 00:34:58 +0000 (09:34 +0900)
commit31934da810365f603dec5a67e690e00cf900fc73
tree634da305fd1364db1b0dc838cb37b908cb870944
parentc7ebbae7cf9c50253a978f25d72d16e012bd46f1
net/9p/virtio: Fix hard lockup in req_done

When client has multiple threads that issue io requests
all the time, and the server has a very good performance,
it may cause cpu is running in the irq context for a long
time because it can check virtqueue has buf in the *while*
loop.

So we should keep chan->lock in the whole loop.

[ Dominique: reworded subject line ]
Link: http://lkml.kernel.org/r/5B503AEC.5080404@huawei.com
Signed-off-by: Yiwen Jiang <jiangyiwen@huawei.com>
To: Andrew Morton <akpm@linux-foundation.org>
To: Eric Van Hensbergen <ericvh@gmail.com>
To: Ron Minnich <rminnich@sandia.gov>
To: Latchesar Ionkov <lucho@ionkov.net>
Signed-off-by: Dominique Martinet <dominique.martinet@cea.fr>
net/9p/trans_virtio.c