On Wed, Sep 20, 2023 at 5:50 PM Christian Brauner <brauner@xxxxxxxxxx> wrote: > I don't think so, O_NOTIFICATION/watch queue pipes allow userspace to > use pipe_read() and pipe_write() but prevent the usage of splice. The > spinlock is there for post_one_notification() which is called from > kernel context. Oohh, that was watch_queue, not wait_queue! This is how I misunderstood your previous email. So the spinlock is used in pipe_write() only just in case this is a O_NOTIFICATION_PIPE. If I understand this correctly, it means the spinlock could be omitted for the majority of pipes that are not O_NOTIFICATION_PIPE? Do you think it could be a worthy optimization to make the spinlock conditional? I mean, how many pipes are there usually, and how many of these are really O_NOTIFICATION_PIPE? This is a very rare exotic feature, isn't it?