Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1475855 > unrolled thread

[PATCH] ARM: LPAE: initialize cachepolicy correctly

Started byStefan Agner <stefan@agner.ch>
First post2016-09-04 07:50 +0200
Last post2016-09-05 18:30 +0200
Articles 4 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] ARM: LPAE: initialize cachepolicy correctly Stefan Agner <stefan@agner.ch> - 2016-09-04 07:50 +0200
    Re: [PATCH] ARM: LPAE: initialize cachepolicy correctly Russell King - ARM Linux <linux@armlinux.org.uk> - 2016-09-05 00:10 +0200
      Re: [PATCH] ARM: LPAE: initialize cachepolicy correctly Stefan Agner <stefan@agner.ch> - 2016-09-05 01:40 +0200
        Re: [PATCH] ARM: LPAE: initialize cachepolicy correctly Russell King - ARM Linux <linux@armlinux.org.uk> - 2016-09-05 18:30 +0200

#1475855 — [PATCH] ARM: LPAE: initialize cachepolicy correctly

FromStefan Agner <stefan@agner.ch>
Date2016-09-04 07:50 +0200
Subject[PATCH] ARM: LPAE: initialize cachepolicy correctly
Message-ID<sdytz-6Td-5@gated-at.bofh.it>
The cachepolicy variable gets initialized using a masked pmd
So far, the pmd has been masked with flags valid for the 2-page
table format. In the LPAE case, this lead to a wrong assumption
of what the initial cachepolicy has been used. Later a check
forces the cache policy to writealloc and prints the following
warning:
Forcing write-allocate cache policy for SMP

This patch uses PMD_SECT_WBWA to mask all cache setting flags.
The define represents the complete mask of the cache relevant
flags for both page table formats.

Signed-off-by: Stefan Agner <stefan@agner.ch>
---
 arch/arm/mm/mmu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
index 724d6be..241e5e2 100644
--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
@@ -137,7 +137,7 @@ void __init init_default_cache_policy(unsigned long pmd)
 
 	initial_pmd_value = pmd;
 
-	pmd &= PMD_SECT_TEX(1) | PMD_SECT_BUFFERABLE | PMD_SECT_CACHEABLE;
+	pmd &= PMD_SECT_WBWA;
 
 	for (i = 0; i < ARRAY_SIZE(cache_policies); i++)
 		if (cache_policies[i].pmd == pmd) {
-- 
2.9.0

[toc] | [next] | [standalone]


#1476046

FromRussell King - ARM Linux <linux@armlinux.org.uk>
Date2016-09-05 00:10 +0200
Message-ID<sdNLX-3jM-11@gated-at.bofh.it>
In reply to#1475855
On Sat, Sep 03, 2016 at 10:33:31PM -0700, Stefan Agner wrote:
> The cachepolicy variable gets initialized using a masked pmd
> So far, the pmd has been masked with flags valid for the 2-page
> table format. In the LPAE case, this lead to a wrong assumption
> of what the initial cachepolicy has been used. Later a check
> forces the cache policy to writealloc and prints the following
> warning:
> Forcing write-allocate cache policy for SMP
> 
> This patch uses PMD_SECT_WBWA to mask all cache setting flags.
> The define represents the complete mask of the cache relevant
> flags for both page table formats.

PMD_SECT_WBWA is just one possible combination, it's not a bit-mask.
We need a new definition.

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

[toc] | [prev] | [next] | [standalone]


#1476054

FromStefan Agner <stefan@agner.ch>
Date2016-09-05 01:40 +0200
Message-ID<sdPb4-44d-7@gated-at.bofh.it>
In reply to#1476046
On 2016-09-04 15:09, Russell King - ARM Linux wrote:
> On Sat, Sep 03, 2016 at 10:33:31PM -0700, Stefan Agner wrote:
>> The cachepolicy variable gets initialized using a masked pmd
>> So far, the pmd has been masked with flags valid for the 2-page
>> table format. In the LPAE case, this lead to a wrong assumption
>> of what the initial cachepolicy has been used. Later a check
>> forces the cache policy to writealloc and prints the following
>> warning:
>> Forcing write-allocate cache policy for SMP
>>
>> This patch uses PMD_SECT_WBWA to mask all cache setting flags.
>> The define represents the complete mask of the cache relevant
>> flags for both page table formats.
> 
> PMD_SECT_WBWA is just one possible combination, it's not a bit-mask.
> We need a new definition.

Agreed, it just happens to be the same as the bit-mask in both
page-table layouts.

Does PMD_SECT_CACHE_MASK sounds like a reasonable identifier for it?

--
Stefan

[toc] | [prev] | [next] | [standalone]


#1476582

FromRussell King - ARM Linux <linux@armlinux.org.uk>
Date2016-09-05 18:30 +0200
Message-ID<se4Wu-68Q-15@gated-at.bofh.it>
In reply to#1476054
On Sun, Sep 04, 2016 at 04:31:40PM -0700, Stefan Agner wrote:
> On 2016-09-04 15:09, Russell King - ARM Linux wrote:
> > On Sat, Sep 03, 2016 at 10:33:31PM -0700, Stefan Agner wrote:
> >> The cachepolicy variable gets initialized using a masked pmd
> >> So far, the pmd has been masked with flags valid for the 2-page
> >> table format. In the LPAE case, this lead to a wrong assumption
> >> of what the initial cachepolicy has been used. Later a check
> >> forces the cache policy to writealloc and prints the following
> >> warning:
> >> Forcing write-allocate cache policy for SMP
> >>
> >> This patch uses PMD_SECT_WBWA to mask all cache setting flags.
> >> The define represents the complete mask of the cache relevant
> >> flags for both page table formats.
> > 
> > PMD_SECT_WBWA is just one possible combination, it's not a bit-mask.
> > We need a new definition.
> 
> Agreed, it just happens to be the same as the bit-mask in both
> page-table layouts.
> 
> Does PMD_SECT_CACHE_MASK sounds like a reasonable identifier for it?

Yep, thanks.

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web