Messages in this thread |  | | From | Linus Torvalds <> | Date | Sat, 28 Jan 2023 23:33:08 -0800 | Subject | Re: [PATCH v4] pipe: use __pipe_{lock,unlock} instead of spinlock |
| |
On Sat, Jan 28, 2023 at 10:05 PM Hongchen Zhang <zhanghongchen@loongson.cn> 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
|  |