On Wed, Sep 11, 2019 at 04:05:37PM +0100, Waiman Long wrote: > To remove the unacceptable delays, we have to limit the amount of wait > time on the mmap_sem. So the new down_write_timedlock() function is > used to acquire the write lock on the mmap_sem with a timeout value of > 10ms which should not cause a perceivable delay. If timeout happens, > the task will abandon its effort to share the PMD and allocate its own > copy instead. If you do a v2, this is *NOT* the mmap_sem. It's the i_mmap_rwsem which protects a very different data structure from the mmap_sem. > +static inline bool i_mmap_timedlock_write(struct address_space *mapping, > + ktime_t timeout) > +{ > + return down_write_timedlock(&mapping->i_mmap_rwsem, timeout); > +}