From: marc.zyngier@arm.com (Marc Zyngier)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 0/3] New algorithm for ASID allocation and rollover
Date: Wed, 15 Aug 2012 18:05:55 +0100 [thread overview]
Message-ID: <502BD6F3.9080909@arm.com> (raw)
In-Reply-To: <1345049642-29704-1-git-send-email-will.deacon@arm.com>
On 15/08/12 17:53, Will Deacon wrote:
> Hello,
>
> Following some investigation into preempt-rt Linux, it became apparent
> that ASID rollover can happen fairly regularly under certain heavy
> scheduling workloads. Each time this happens, we broadcast an interrupt
> to the secondary CPUs so that we can reset the global ASID numberspace
> without assigning duplicate ASIDs to different tasks or accidentally
> assigning different ASIDs to threads of the same process.
>
> This leads to a large number of expensive IPIs between cores:
>
> CPU0 CPU1
> IPI0: 0 0 Timer broadcast interrupts
> IPI1: 23165 115888 Rescheduling interrupts
> IPI2: 0 0 Function call interrupts
> IPI3: 6619 1123 Single function call interrupts <---- IPIs
> IPI4: 0 0 CPU stop interrupts
>
> Digging deeper, this also leads to an extremely varied waittime on the
> cpu_asid_lock. Granted this is only contended for <1% of the time, but
> the waittime varies between 0.5 and 734 us!
>
> After some discussion, it became apparent that tracking the ASIDs
> currently active on the cores in the system means that, on rollover, we
> can automatically reserve those that are in use without having to stop
> the world.
>
> This patch series develops that idea so that:
>
> - We can support cores without hardware broadcasting of TLB maintenance
> operations without resorting to IPIs.
This particular bit should benefit even more to virtual machines, as it
avoids trapping back to the host to handle a write to the (emulated) GIC
distributor, and the corresponding interrupt injection on the target vcpus.
I'll give it a spin on KVM.
M.
--
Jazz is not dead. It just smells funny...
next prev parent reply other threads:[~2012-08-15 17:05 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-15 16:53 [PATCH 0/3] New algorithm for ASID allocation and rollover Will Deacon
2012-08-15 16:54 ` [PATCH 1/3] ARM: mm: remove IPI broadcasting on ASID rollover Will Deacon
2012-08-15 16:54 ` [PATCH 2/3] ARM: mm: avoid taking ASID spinlock on fastpath Will Deacon
2012-08-15 16:54 ` [PATCH 3/3] ARM: mm: use bitmap operations when allocating new ASIDs Will Deacon
2012-08-15 17:05 ` Marc Zyngier [this message]
2012-08-19 15:21 ` [PATCH 0/3] New algorithm for ASID allocation and rollover Arnd Bergmann
2012-08-20 12:51 ` Will Deacon
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=502BD6F3.9080909@arm.com \
--to=marc.zyngier@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
/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.