Message ID | 20210316022758.52993-1-linmiaohe@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | None | expand |
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@oracle.com> > Signed-off-by: Miaohe Lin <linmiaohe@huawei.com> > Cc: Mike Kravetz <mike.kravetz@oracle.com> > --- > 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.
On 2021/3/16 11:07, Mike Kravetz wrote: > 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@oracle.com> >> Signed-off-by: Miaohe Lin <linmiaohe@huawei.com> >> Cc: Mike Kravetz <mike.kravetz@oracle.com> >> --- >> 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. > That's all right. > 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. > I do not know if such a modifier exists too. But maybe not all compilers are intelligent enough to not produce a warning. It would be safe to keep the initialization... > The patch can not produce a new warning. So, if you need to initialize So just drop this version of the patch? Or should I send a new version with your Reviewed-by tag and keep the initialization? > the variable then do it. My Reviewed-by still applies. >
On 3/15/21 11:49 PM, Miaohe Lin wrote: > On 2021/3/16 11:07, Mike Kravetz wrote: >> 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@oracle.com> >>> Signed-off-by: Miaohe Lin <linmiaohe@huawei.com> >>> Cc: Mike Kravetz <mike.kravetz@oracle.com> >>> --- >>> 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. >> > > That's all right. > >> 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. >> > > I do not know if such a modifier exists too. But maybe not all compilers are intelligent > enough to not produce a warning. It would be safe to keep the initialization... > >> The patch can not produce a new warning. So, if you need to initialize > > So just drop this version of the patch? Or should I send a new version with your Reviewed-by tag and > keep the initialization? > Yes, drop this version of the patch. You can add my Reviewed-by to the previous version that included the initialization and resend. All the cleanup patches in this series should be good to go.
On 2021/3/17 8:27, Mike Kravetz wrote: > On 3/15/21 11:49 PM, Miaohe Lin wrote: >> On 2021/3/16 11:07, Mike Kravetz wrote: >>> 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@oracle.com> >>>> Signed-off-by: Miaohe Lin <linmiaohe@huawei.com> >>>> Cc: Mike Kravetz <mike.kravetz@oracle.com> >>>> --- >>>> 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. >>> >> >> That's all right. >> >>> 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. >>> >> >> I do not know if such a modifier exists too. But maybe not all compilers are intelligent >> enough to not produce a warning. It would be safe to keep the initialization... >> >>> The patch can not produce a new warning. So, if you need to initialize >> >> So just drop this version of the patch? Or should I send a new version with your Reviewed-by tag and >> keep the initialization? >> > > Yes, drop this version of the patch. You can add my Reviewed-by to the > previous version that included the initialization and resend. > Will do. Many thanks. :) > All the cleanup patches in this series should be good to go. >
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]); }