On 3/15/21 7:27 PM, Miaohe Lin wrote: > The fault_mutex hashing overhead can be avoided in truncate_op case > because page faults can not race with truncation in this routine. So > calculate hash for fault_mutex only in !truncate_op case to save some cpu > cycles. > > Reviewed-by: Mike Kravetz <mike.kravetz@xxxxxxxxxx> > Signed-off-by: Miaohe Lin <linmiaohe@xxxxxxxxxx> > Cc: Mike Kravetz <mike.kravetz@xxxxxxxxxx> > --- > v1->v2: > remove unnecessary initialization for variable hash > collect Reviewed-by tag from Mike Kravetz My apologies for not replying sooner and any misunderstanding from my previous comments. If the compiler is going to produce a warning because the variable is not initialized, then we will need to keep the initialization. Otherwise, this will show up as a build regression. Ideally, there would be a modifier which could be used to tell the compiler the variable will used. I do not know if such a modifier exists. The patch can not produce a new warning. So, if you need to initialize the variable then do it. My Reviewed-by still applies. -- Mike Kravetz > --- > fs/hugetlbfs/inode.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c > index c262566f7c5d..f7ec94bc7337 100644 > --- a/fs/hugetlbfs/inode.c > +++ b/fs/hugetlbfs/inode.c > @@ -485,7 +485,6 @@ static void remove_inode_hugepages(struct inode *inode, loff_t lstart, > u32 hash; > > index = page->index; > - hash = hugetlb_fault_mutex_hash(mapping, index); > if (!truncate_op) { > /* > * Only need to hold the fault mutex in the > @@ -493,6 +492,7 @@ static void remove_inode_hugepages(struct inode *inode, loff_t lstart, > * page faults. Races are not possible in the > * case of truncation. > */ > + hash = hugetlb_fault_mutex_hash(mapping, index); > mutex_lock(&hugetlb_fault_mutex_table[hash]); > } > >