From: Will Deacon <will.deacon@arm.com>
To: Shijith Thotton <sthotton@marvell.com>
Cc: "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
Jayachandran Chandrasekharan Nair <jnair@marvell.com>,
Ganapatrao Kulkarni <gkulkarni@marvell.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
anshuman.khandual@arm.com
Subject: Re: performance regression of migrate_pages system call
Date: Mon, 7 Jan 2019 17:46:17 +0000 [thread overview]
Message-ID: <20190107174617.GA22911@fuggles.cambridge.arm.com> (raw)
In-Reply-To: <DM6PR18MB2460B4DD47FA23A0F091B351D9890@DM6PR18MB2460.namprd18.prod.outlook.com>
On Mon, Jan 07, 2019 at 08:44:47AM +0000, Shijith Thotton wrote:
> On 01/02/2019 07:22 PM, Shijith Thotton wrote:
> > Observed migrate_pages03 of LTP is failing on ARM with v4.19 kernel. Test was
> > run on ThunderX2 99xx with 2 sockets. migrate_pages syscall was taking 1+
> > seconds and caused a timeout in the test.
> >
> > strace output:
> > <...>
> > [pid 35146] 14:11:14 migrate_pages(0, 64, [0x0000000000000001],
> > [0x0000000000000002]) = 0 <1.099427>
> > [pid 35146] 14:11:15 migrate_pages(0, 64, [0x0000000000000002],
> > [0x0000000000000001]) = 0 <1.145143>
> > <..>
> >
> > Git bisect points to following change as the cause of regression.
> > commit 3b8c9f
> > arm64: IPI each CPU after invalidating the I-cache for kernel mappings
> >
> > Regression happens with 4K page size and not with 64K pages.
> > Please let me know if anyone is experiencing similar issue.
> >
>
> Please comment if a solution like below (by modifying sync_icache_aliases) is
> possible for fixing the regression.
> http://lists.infradead.org/pipermail/linux-arm-kernel/2018-December/618866.html
>
> Function trace:
> migrate_pages()
> + unmap_and_move()
> + __unmap_and_move()
> + remove_migration_ptes()
> + set_pte_at()
> + __sync_icache_dcache()
> + sync_icache_aliases()
> + flush_icache_range()
> + kick_all_cpus_sync()
Unfortunately, we can't drop the IPI in this case because we really do need
to ensure that other CPUs have drained any instructions previously fetched
from the new physical page.
Adding Anshuman to cc, since I think he's been looking at other ways to
improve this.
Will
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
prev parent reply other threads:[~2019-01-07 17:46 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-02 13:52 performance regression of migrate_pages system call Shijith Thotton
2019-01-07 8:44 ` Shijith Thotton
2019-01-07 17:46 ` Will Deacon [this message]
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=20190107174617.GA22911@fuggles.cambridge.arm.com \
--to=will.deacon@arm.com \
--cc=anshuman.khandual@arm.com \
--cc=catalin.marinas@arm.com \
--cc=gkulkarni@marvell.com \
--cc=jnair@marvell.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=sthotton@marvell.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).