On Sat, Jan 28, 2023 at 10:05 PM Hongchen ZhangThanks for your review,Let me find out if there is any way to solve the
<zhanghongchen@xxxxxxxxxxx> wrote:
Use spinlock in pipe_{read,write} cost too much time,IMO
pipe->{head,tail} can be protected by __pipe_{lock,unlock}.
On the other hand, we can use __pipe_{lock,unlock} to protect
the pipe->{head,tail} in pipe_resize_ring and
post_one_notification.
No, we really can't.
post_one_notification() is called under the RCU lock held, *and* with
a spinlock held.
It simply cannot do a sleeping lock like __pipe_lock().
So that patch is simply fundamentally buggy, I'm afraid.
Linus