From: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
To: Daniel Tiron <dtiron@debian.armed.us>
Cc: LKML <linux-kernel@vger.kernel.org>
Subject: Re: Does the scheduler know about the cache topology?
Date: Mon, 7 Feb 2011 15:40:41 +0530 [thread overview]
Message-ID: <20110207101041.GA3196@dirshya.in.ibm.com> (raw)
In-Reply-To: <20110207095141.GA26132@andariel.informatik.uni-erlangen.de>
* Daniel Tiron <dtiron@debian.armed.us> [2011-02-07 10:51:42]:
> Hi all.
>
> I did some performance tests on a Core 2 Quad machine [1] with QEMU.
> A QEMU instance creates one main thread and one thread for each virtual
> CPU. There were two vms with one CPU each, which make four threads.
>
> I tried different combinations where I pinned one tgread to one physical
> core with taskset and measured the network performance between the vms
> with iperf [2]. The best result was achieved with each vm (main and CPU
> thread) assigned to one cache group (core 0 & 1 and 2 & 3).
>
> But it also turns out that letting the scheduler handle the assignment
> works well, too: The results where no pinning was done were just
> slightly below the best. So I was wondering, is the Linux scheduler
> aware of the CPU's cache topology?
Yes, the sched domains are created based on the socket or L2 cache
boundaries. Scheduler will try to keep the task on same CPU or move
it close enough if it does have to migrate the task.
The CPU topology and cache domains in an SMP system is captured in the
form of sched domain tree with the scheduler, and this structure is
referred during task scheduling and migration.
When running VMs, there is an interesting side effect, the host
scheduler knows the cache domains but not the guest scheduler. If the
guest scheduler keeps moving tasks between the vcps, then the cache
affinity and benefits could be lost.
> I'm curious to hear your opinion.
>
> Thanks,
> Daniel
>
> [1] Core 0 and 1 share one L2 cache and so do 2 and 3
> [2] The topic of my research is networking performance. My interest in
> cache awareness is only a side effect.
Interrupt delivery and routing may also affect network performance.
--Vaidy
next prev parent reply other threads:[~2011-02-07 10:11 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-07 9:51 Daniel Tiron
2011-02-07 10:10 ` Vaidyanathan Srinivasan [this message]
2011-02-07 11:24 ` Chulmin Kim
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=20110207101041.GA3196@dirshya.in.ibm.com \
--to=svaidy@linux.vnet.ibm.com \
--cc=dtiron@debian.armed.us \
--cc=linux-kernel@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®