diff mbox

sparc64: Reduce TLB flushes on hugetlb PTE change

Message ID 1457403807-26555-1-git-send-email-nitin.m.gupta@oracle.com
State Changes Requested
Delegated to: David Miller
Headers show

Commit Message

Nitin Gupta March 8, 2016, 2:23 a.m. UTC
Flush TSB and TLB only at REAL_HPAGE_SIZE boundaries and
not at every 8K stride.

Orabug: 22643230

Signed-off-by: Nitin Gupta <nitin.m.gupta@oracle.com>
---
 arch/sparc/mm/hugetlbpage.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

Comments

David Miller March 8, 2016, 4:32 a.m. UTC | #1
From: Nitin Gupta <nitin.m.gupta@oracle.com>
Date: Mon,  7 Mar 2016 18:23:27 -0800

> Flush TSB and TLB only at REAL_HPAGE_SIZE boundaries and
> not at every 8K stride.
> 
> Orabug: 22643230
> 
> Signed-off-by: Nitin Gupta <nitin.m.gupta@oracle.com>

Is this an update to your earlier patch?

If so, why aren't you explaining what you have changed?

Also, why haven't you put a proper version indication in
the Subject line?  Like "v3" or something?

By making more and more work for me like this, you are
making it more difficult for me to process my backlog
and get to actually reviewing the content of your change
and integrating it.
--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Nitin Gupta March 8, 2016, 2:56 p.m. UTC | #2
On 03/07/2016 08:32 PM, David Miller wrote:
> From: Nitin Gupta <nitin.m.gupta@oracle.com>
> Date: Mon,  7 Mar 2016 18:23:27 -0800
>
>> Flush TSB and TLB only at REAL_HPAGE_SIZE boundaries and
>> not at every 8K stride.
>>
>> Orabug: 22643230
>>
>> Signed-off-by: Nitin Gupta <nitin.m.gupta@oracle.com>
> Is this an update to your earlier patch?

No, this is a separate patch.

Nitin

> If so, why aren't you explaining what you have changed?
>
> Also, why haven't you put a proper version indication in
> the Subject line?  Like "v3" or something?
>
> By making more and more work for me like this, you are
> making it more difficult for me to process my backlog
> and get to actually reviewing the content of your change
> and integrating it.
> --
> To unsubscribe from this list: send the line "unsubscribe sparclinux" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/sparc/mm/hugetlbpage.c b/arch/sparc/mm/hugetlbpage.c
index d8f625c..0f4f320 100644
--- a/arch/sparc/mm/hugetlbpage.c
+++ b/arch/sparc/mm/hugetlbpage.c
@@ -182,11 +182,17 @@  void set_huge_pte_at(struct mm_struct *mm, unsigned long addr,
 
 	addr &= HPAGE_MASK;
 	for (i = 0; i < (1 << HUGETLB_PAGE_ORDER); i++) {
-		set_pte_at(mm, addr, ptep, entry);
+		*ptep = entry;
 		ptep++;
 		addr += PAGE_SIZE;
 		pte_val(entry) += PAGE_SIZE;
 	}
+
+	/* Issue TSB and TLB flush at REAL_HPAGE_SIZE boundaries */
+	flush_tsb_user_page(mm, addr, true);
+	flush_tsb_user_page(mm, addr + REAL_HPAGE_SIZE, true);
+	global_flush_tlb_page(mm, addr);
+	global_flush_tlb_page(mm, addr + REAL_HPAGE_SIZE);
 }
 
 pte_t huge_ptep_get_and_clear(struct mm_struct *mm, unsigned long addr,