Re: [PATCH 5/5] hugetlbfs: Limit wait time when trying to share huge PMD

From: Matthew Wilcox
Date: Wed Sep 11 2019 - 15:57:51 EST


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);
> +}