DragonFly BSD
DragonFly kernel List (threaded) for 2012-05
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: GSoC: Add SMT/HT awareness to DragonFlyBSD scheduler


From: Mihai Carabas <mihai.carabas@xxxxxxxxx>
Date: Sat, 26 May 2012 15:59:12 +0300

--e89a8f64289a28a5f604c0f00d90
Content-Type: text/plain; charset=ISO-8859-1

Hello,

The current status for week 1:
- I setup the working and testing environment (I needed a two-core HT aware
CPU [1]).
- I setup a repo in github [2] and also I will make periodic updates to my
repo on the leaf [3].
- I studied the sysctl interface through which I am going to modify the
behaviour of the scheduler (it's more flexible this way then configs made
at build time - thanks Alex for the tip).
- I read a paper on SMT aware schedulers [4]

[1] http://leaf.dragonflybsd.org/~mihaic/hw/cpuinfo
[2] https://github.com/mihaicarabas/dragonfly
[3] http://gitweb.dragonflybsd.org/~mihaic/dragonfly.git
[4] http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-619.pdf


On Wed, Apr 25, 2012 at 11:03 AM, Mihai Carabas <mihai.carabas@gmail.com>wrote:

> Hello everyone!
>
>
> My name is Mihai Carabas and this summer I will be working on the
> DragonFlyBSD scheduler. The goal of the project is to make the scheduler
> aware of the underlaying hyperthreading CPUs, in order to make better
> decisions.
>
> First of all, I will have to build up the testing infrastructure (a
> physical machine with at least 2 physical cores, each of them having HT
> enable). At this step I will develop a test suite that stress up the
> scheduler and make different measurements. These measurements will be the
> reference for comparing the results obtained after modifying the scheduler.
>
> In the next step, I have to develop a mechanism for grouping the CPUs in
> domains (scheduling domains or in other words: CPUs that are on the same
> physical core).
> The actual implementation of the HT aware is described in a previous post
> [1] on the list and in my application [2]. To sum up, here I will treat
> different use cases (eg: "passive" scheduling - select a free physical
> CPU (if available) for the next thread to schedule; "active" scheduling"
> - if a physical CPU becomes idle and on another CPU are running two
> threads, migrate one of them on the idle physical cpu; etc.).
>
> [1] http://leaf.dragonflybsd.org/mailarchive/kernel/2012-03/msg00066.html
> [2]
> http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/mihaicarabas/1
>
>

--e89a8f64289a28a5f604c0f00d90
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Hello,<div><br></div><div>The current status for week 1:</div><div>- I setu=
p the working and testing environment (I needed a two-core HT aware CPU [1]=
).</div><div>- I setup a repo in github [2] and also I will make periodic u=
pdates to my repo on the leaf [3].</div>
<div>- I studied the sysctl interface through which I am going to modify th=
e behaviour of the scheduler (it&#39;s more flexible this way then configs =
made at build time - thanks Alex for the tip).</div><div>- I read a paper o=
n SMT aware schedulers [4]</div>
<div><br></div><div>[1]=A0<a href=3D"http://leaf.dragonflybsd.org/~mihaic/h=
w/cpuinfo">http://leaf.dragonflybsd.org/~mihaic/hw/cpuinfo</a></div><div>[2=
]=A0<a href=3D"https://github.com/mihaicarabas/dragonfly";>https://github.co=
m/mihaicarabas/dragonfly</a></div>
<div>[3]=A0<a href=3D"http://gitweb.dragonflybsd.org/~mihaic/dragonfly.git"=
>http://gitweb.dragonflybsd.org/~mihaic/dragonfly.git</a></div><div>[4]=A0<=
a href=3D"http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-619.pdf";>http://ww=
w.cl.cam.ac.uk/techreports/UCAM-CL-TR-619.pdf</a>=A0</div>
<div><br></div><div><br><div class=3D"gmail_quote">On Wed, Apr 25, 2012 at =
11:03 AM, Mihai Carabas <span dir=3D"ltr">&lt;<a href=3D"mailto:mihai.carab=
as@gmail.com" target=3D"_blank">mihai.carabas@gmail.com</a>&gt;</span> wrot=
e:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">Hello everyone!<div><br></div><div><br></div=
><div>My name is Mihai Carabas and this summer I will be working on the Dra=
gonFlyBSD scheduler. The goal of the project is to make the scheduler aware=
 of the underlaying hyperthreading CPUs, in order to make better decisions.=
</div>

<div><br></div><div>First of all, I will have to build up the testing infra=
structure (a physical machine with at least 2 physical cores, each of them =
having HT enable). At this step I will develop a test suite that stress up =
the scheduler and make different measurements. These measurements will be t=
he reference for comparing the results obtained after modifying the schedul=
er.</div>

<div><br></div><div>In the next step, I have to develop a mechanism for gro=
uping the CPUs in domains (scheduling domains or in other words: CPUs that =
are on the same physical core).</div><div>The actual implementation of the =
HT aware is described in a previous post [1] on the list and in my applicat=
ion [2]. To sum up, here I will treat different use cases (eg:=A0<span styl=
e=3D"background-color:rgb(246,246,246);font-family:Arial,&#39;Helvetica Neu=
e&#39;,Helvetica,sans-serif;font-size:13px;line-height:19px">&quot;passive&=
quot; scheduling - select a free physical CPU (if available) for the next t=
hread to schedule;=A0</span><span style=3D"background-color:rgb(246,246,246=
);font-family:Arial,&#39;Helvetica Neue&#39;,Helvetica,sans-serif;font-size=
:13px;line-height:19px">&quot;active&quot; scheduling&quot; - if a physical=
 CPU becomes idle and on another CPU are running two threads, migrate one o=
f them on the idle physical cpu; etc.).</span></div>

<div><br></div><div>[1]=A0<a href=3D"http://leaf.dragonflybsd.org/mailarchi=
ve/kernel/2012-03/msg00066.html" target=3D"_blank">http://leaf.dragonflybsd=
.org/mailarchive/kernel/2012-03/msg00066.html</a></div><div>[2]=A0<a href=
=3D"http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/miha=
icarabas/1" target=3D"_blank">http://www.google-melange.com/gsoc/proposal/r=
eview/google/gsoc2012/mihaicarabas/1</a></div>

<div><br></div>
</blockquote></div><br></div>

--e89a8f64289a28a5f604c0f00d90--



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]