From: leroy christophe <christophe.leroy@c-s.fr>
To: David Laight <David.Laight@ACULAB.COM>,
'Joakim Tjernlund' <Joakim.Tjernlund@transmode.se>
Cc: "scottwood@freescale.com" <scottwood@freescale.com>,
"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>,
"paulus@samba.org" <paulus@samba.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 05/11] powerpc/8xx: Optimise access to swapper_pg_dir
Date: Tue, 06 Jan 2015 14:27:38 +0100 [thread overview]
Message-ID: <54ABE2CA.8030608@c-s.fr> (raw)
In-Reply-To: <063D6719AE5E284EB5DD2968C1650D6D1CAC1765@AcuExch.aculab.com>
Le 06/01/2015 13:08, David Laight a écrit :
>> On Tue, 2014-12-16 at 16:03 +0100, Christophe Leroy wrote:
>>> All accessed to PGD entries are done via 0(r11).
>>> By using lower part of swapper_pg_dir as load index to r11, we can remove the
>>> ori instruction.
>>>
>>> Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
>> Nice :)
>> Acked-by: Joakim Tjernlund <joakim.tjernlund@transmode.se>
>>
>>> ---
>>> arch/powerpc/kernel/head_8xx.S | 22 ++++++++++------------
>>> 1 file changed, 10 insertions(+), 12 deletions(-)
>>>
>>> diff --git a/arch/powerpc/kernel/head_8xx.S b/arch/powerpc/kernel/head_8xx.S
>>> index ae05f28..aa45225 100644
>>> --- a/arch/powerpc/kernel/head_8xx.S
>>> +++ b/arch/powerpc/kernel/head_8xx.S
>>> @@ -322,13 +322,12 @@ InstructionTLBMiss:
>>> mfspr r11, SPRN_M_TW/* Get level 1 table base address */
>>> #ifdef CONFIG_MODULES
>>> beq 3f
>>> - lis r11, (swapper_pg_dir-PAGE_OFFSET)@h
>>> - ori r11, r11, (swapper_pg_dir-PAGE_OFFSET)@l
>>> + lis r11, (swapper_pg_dir-PAGE_OFFSET)@ha
>>> 3:
>>> #endif
>>> /* Insert level 1 index */
>>> rlwimi r11, r10, 32 - ((PAGE_SHIFT - 2) << 1), (PAGE_SHIFT - 2) << 1, 29
>>> - lwz r11, 0(r11)/* Get the level 1 entry */
>>> + lwz r11, (swapper_pg_dir-PAGE_OFFSET)@l(r11)/* Get the level 1 entry */
>>>
> On the face of it that fragment doesn't look right when CONFIG_MODULES is undefined.
>
> David
>
I'm not sure I understand what you mean.
The other part of the patch adds the following:
+ li r5, (swapper_pg_dir-PAGE_OFFSET)@l
+ sub r4, r4, r5
r4 is the value put into SPRN_M_TW, so I don't see what may be wrong.
Christophe
WARNING: multiple messages have this Message-ID (diff)
From: leroy christophe <christophe.leroy@c-s.fr>
To: David Laight <David.Laight@ACULAB.COM>,
"'Joakim Tjernlund'" <Joakim.Tjernlund@transmode.se>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"paulus@samba.org" <paulus@samba.org>,
"scottwood@freescale.com" <scottwood@freescale.com>,
"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>
Subject: Re: [PATCH 05/11] powerpc/8xx: Optimise access to swapper_pg_dir
Date: Tue, 06 Jan 2015 14:27:38 +0100 [thread overview]
Message-ID: <54ABE2CA.8030608@c-s.fr> (raw)
In-Reply-To: <063D6719AE5E284EB5DD2968C1650D6D1CAC1765@AcuExch.aculab.com>
Le 06/01/2015 13:08, David Laight a écrit :
>> On Tue, 2014-12-16 at 16:03 +0100, Christophe Leroy wrote:
>>> All accessed to PGD entries are done via 0(r11).
>>> By using lower part of swapper_pg_dir as load index to r11, we can remove the
>>> ori instruction.
>>>
>>> Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
>> Nice :)
>> Acked-by: Joakim Tjernlund <joakim.tjernlund@transmode.se>
>>
>>> ---
>>> arch/powerpc/kernel/head_8xx.S | 22 ++++++++++------------
>>> 1 file changed, 10 insertions(+), 12 deletions(-)
>>>
>>> diff --git a/arch/powerpc/kernel/head_8xx.S b/arch/powerpc/kernel/head_8xx.S
>>> index ae05f28..aa45225 100644
>>> --- a/arch/powerpc/kernel/head_8xx.S
>>> +++ b/arch/powerpc/kernel/head_8xx.S
>>> @@ -322,13 +322,12 @@ InstructionTLBMiss:
>>> mfspr r11, SPRN_M_TW/* Get level 1 table base address */
>>> #ifdef CONFIG_MODULES
>>> beq 3f
>>> - lis r11, (swapper_pg_dir-PAGE_OFFSET)@h
>>> - ori r11, r11, (swapper_pg_dir-PAGE_OFFSET)@l
>>> + lis r11, (swapper_pg_dir-PAGE_OFFSET)@ha
>>> 3:
>>> #endif
>>> /* Insert level 1 index */
>>> rlwimi r11, r10, 32 - ((PAGE_SHIFT - 2) << 1), (PAGE_SHIFT - 2) << 1, 29
>>> - lwz r11, 0(r11)/* Get the level 1 entry */
>>> + lwz r11, (swapper_pg_dir-PAGE_OFFSET)@l(r11)/* Get the level 1 entry */
>>>
> On the face of it that fragment doesn't look right when CONFIG_MODULES is undefined.
>
> David
>
I'm not sure I understand what you mean.
The other part of the patch adds the following:
+ li r5, (swapper_pg_dir-PAGE_OFFSET)@l
+ sub r4, r4, r5
r4 is the value put into SPRN_M_TW, so I don't see what may be wrong.
Christophe
next prev parent reply other threads:[~2015-01-06 13:27 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-16 15:03 [PATCH 05/11] powerpc/8xx: Optimise access to swapper_pg_dir Christophe Leroy
2014-12-16 15:03 ` Christophe Leroy
2015-01-05 18:33 ` Joakim Tjernlund
2015-01-05 18:33 ` Joakim Tjernlund
2015-01-06 12:08 ` David Laight
2015-01-06 12:08 ` David Laight
2015-01-06 13:27 ` leroy christophe [this message]
2015-01-06 13:27 ` leroy christophe
2015-01-06 14:41 ` David Laight
2015-01-06 14:41 ` David Laight
-- strict thread matches above, loose matches on Subject: below --
2015-04-20 5:26 Christophe Leroy
2015-04-20 5:26 ` Christophe Leroy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=54ABE2CA.8030608@c-s.fr \
--to=christophe.leroy@c-s.fr \
--cc=David.Laight@ACULAB.COM \
--cc=Joakim.Tjernlund@transmode.se \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=paulus@samba.org \
--cc=scottwood@freescale.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.