From: Tsutomu OWA <tsutomu.owa@toshiba•co.jp>
To: Arnd Bergmann <arnd@arndb•de>
Cc: linuxppc-dev@ozlabs•org, Thomas Gleixner <tglx@linutronix•de>,
mingo@elte•hu, linux-kernel@vger•kernel.org
Subject: Re: [patch 4/4] powerpc 2.6.21-rt1: reduce scheduling latency by changing tlb flush size
Date: Tue, 15 May 2007 15:27:26 +0900 [thread overview]
Message-ID: <yyips5261pt.wl@toshiba.co.jp> (raw)
In-Reply-To: <200705141640.02561.arnd@arndb.de>
At Mon, 14 May 2007 16:40:02 +0200, Arnd Bergmann wrote:
> > +#if defined(CONFIG_PPC_CELLEB) && defined(CONFIG_PREEMPT_RT)
> > +/* Since tlb flush takes long time on Celleb, reduce it to 1 when Celleb && RT */
> > +#define PPC64_TLB_BATCH_NR 1
> With this code, you get silent side-effects of enabling PPC_CELLEB
> along with another platform.
> Maybe instead you should change the hpte_need_flush() to always flush
> when running on the celleb platform and PREEMPT_RT is enabled.
OK, how about this one?
thanks a lot!
Since flushing tlb needs expensive hypervisor call(s) on celleb,
always flush it on RT to reduce scheduling latency.
Signed-off-by: Tsutomu OWA <tsutomu.owa@toshiba•co.jp>
-- owa
--- linux-2.6.21-rt1/arch/powerpc/mm/tlb_64.c 2007-05-07 14:08:12.000000000 +0900
+++ rt/arch/powerpc/mm/tlb_64.c 2007-05-15 15:19:34.000000000 +0900
@@ -31,6 +31,7 @@
#include <asm/tlbflush.h>
#include <asm/tlb.h>
#include <asm/bug.h>
+#include <asm/machdep.h>
DEFINE_PER_CPU(struct ppc64_tlb_batch, ppc64_tlb_batch);
@@ -180,6 +181,18 @@ void hpte_update(struct mm_struct *mm, u
batch->vaddr[i] = (vsid << 28 ) | (addr & 0x0fffffff);
batch->pte[i] = __real_pte(__pte(pte), ptep);
batch->index = ++i;
+
+#ifdef CONFIG_PREEMPT_RT
+ /*
+ * Since flushing tlb needs expensive hypervisor call(s) on celleb,
+ * always flush it on RT to reduce scheduling latency.
+ */
+ if (machine_is(celleb)) {
+ flush_tlb_pending();
+ return;
+ }
+#endif /* CONFIG_PREEMPT_RT */
+
if (i >= PPC64_TLB_BATCH_NR)
flush_tlb_pending();
}
next prev parent reply other threads:[~2007-05-15 6:27 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-14 6:22 [patch 0/4] powerpc 2.6.21-rt1: fix build a breakage and some minor issues Tsutomu OWA
2007-05-14 6:26 ` [patch 1/4] powerpc 2.6.21-rt1: fix a build breakage by adding __raw_*_relax() macros Tsutomu OWA
2007-05-14 6:28 ` [patch 2/4] powerpc 2.6.21-rt1: convert spinlocks to raw ones for Celleb Tsutomu OWA
2007-05-14 6:29 ` [patch 3/4] powerpc 2.6.21-rt1: add a need_resched_delayed() check Tsutomu OWA
2007-05-14 6:30 ` [patch 0/4] powerpc 2.6.21-rt1: reduce scheduling latency by changing tlb flush size Tsutomu OWA
2007-05-14 6:38 ` [patch 4/4] " Tsutomu OWA
2007-05-14 6:51 ` Thomas Gleixner
2007-05-14 7:28 ` Tsutomu OWA
2007-05-14 14:40 ` Arnd Bergmann
2007-05-15 4:12 ` Tsutomu OWA
2007-05-15 7:34 ` Benjamin Herrenschmidt
2007-05-15 6:27 ` Tsutomu OWA [this message]
2007-05-15 7:38 ` Benjamin Herrenschmidt
2007-05-15 8:08 ` Tsutomu OWA
2007-05-15 8:40 ` Benjamin Herrenschmidt
2007-05-15 7:23 ` Benjamin Herrenschmidt
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=yyips5261pt.wl@toshiba.co.jp \
--to=tsutomu.owa@toshiba$(echo .)co.jp \
--cc=arnd@arndb$(echo .)de \
--cc=linux-kernel@vger$(echo .)kernel.org \
--cc=linuxppc-dev@ozlabs$(echo .)org \
--cc=mingo@elte$(echo .)hu \
--cc=tglx@linutronix$(echo .)de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox