Messages in this thread | | | Subject | Re: Re: [PATCH v4] pipe: use __pipe_{lock,unlock} instead of spinlock | From | Hongchen Zhang <> | Date | Fri, 3 Feb 2023 10:24:58 +0800 |
| |
Hi Linus,
On 2023/1/29 下午3:33, Linus Torvalds wrote: > 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 > Thanks for your review,Let me find out if there is any way to solve the problem you said.
Best Regards Hongchen Zhang
| |