xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/6] xen: sched: control structure memory layout optimizations
@ 2017-06-23 10:54 Dario Faggioli
  2017-06-23 10:54 ` [PATCH 1/6] xen: credit2: allocate runqueue data structure dynamically Dario Faggioli
                   ` (5 more replies)
  0 siblings, 6 replies; 18+ messages in thread
From: Dario Faggioli @ 2017-06-23 10:54 UTC (permalink / raw)
  To: xen-devel; +Cc: George Dunlap, Meng Xu, Anshul Makkar

Hi,

This series contains some (micro)optimization patches that were lying around in
my local branches for some time.

In some more details:

- patches 1 and 2 get rid of (potentially) big static arrays inside Credit2's
  data structure, by making them dynamic, or per-CPU variables;

- patches 3, 4 and 5, reorder the fields in the schedulers' control
  structures. The main goal is optimize memory layout (e.g., reduce/avoid
  padding) and cache layout (related fields, that are accessed close to each
  other, in the same cacheline). While there, I'm also trying to improve code
  readability and comment wording, style and alignment;

- patch 7, speeds up tickling in Credit1 and Credit2, in presence of 1:1 vCPU
  to pCPU pinning.

For finding holes, and visualizing the cache layout, I've used pahole.
Individual changelogs of patches 3-6 have the details about the actual
improvements.

There's a git branch available here:
 git://xenbits.xen.org/people/dariof/xen.git  rel/sched/datas-mem-cache-optim
 http://xenbits.xen.org/gitweb/?p=people/dariof/xen.git;a=shortlog;h=refs/heads/rel/sched/datas-mem-cache-optim

Thanks and Regards,
Dario
---
Dario Faggioli (6):
      xen: credit2: allocate runqueue data structure dynamically
      xen: credit2: make the cpu to runqueue map per-cpu
      xen: credit: rearrange members of control structures
      xen: credit2: rearrange members of control structures
      xen: RTDS: rearrange members of control structures
      xen: sched: optimize exclusive pinning case (Credit1 & 2)

 xen/common/sched_credit.c    |   60 +++++++++++----
 xen/common/sched_credit2.c   |  170 +++++++++++++++++++++++++-----------------
 xen/common/sched_rt.c        |   13 ++-
 xen/include/xen/perfc_defn.h |    1 
 4 files changed, 156 insertions(+), 88 deletions(-)
--
<<This happens because I choose it to happen!>> (Raistlin Majere)
-----------------------------------------------------------------
Dario Faggioli, Ph.D, http://about.me/dario.faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2017-07-21 20:30 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-06-23 10:54 [PATCH 0/6] xen: sched: control structure memory layout optimizations Dario Faggioli
2017-06-23 10:54 ` [PATCH 1/6] xen: credit2: allocate runqueue data structure dynamically Dario Faggioli
2017-07-21 16:50   ` George Dunlap
2017-06-23 10:54 ` [PATCH 2/6] xen: credit2: make the cpu to runqueue map per-cpu Dario Faggioli
2017-07-21 16:56   ` George Dunlap
2017-06-23 10:55 ` [PATCH 3/6] xen: credit: rearrange members of control structures Dario Faggioli
2017-07-21 17:02   ` George Dunlap
2017-06-23 10:55 ` [PATCH 4/6] xen: credit2: " Dario Faggioli
2017-07-21 17:05   ` George Dunlap
2017-07-21 19:53     ` Dario Faggioli
2017-06-23 10:55 ` [PATCH 5/6] xen: RTDS: " Dario Faggioli
2017-07-21 17:06   ` George Dunlap
2017-07-21 17:51   ` Meng Xu
2017-07-21 19:51     ` Dario Faggioli
2017-06-23 10:55 ` [PATCH 6/6] xen: sched: optimize exclusive pinning case (Credit1 & 2) Dario Faggioli
2017-07-21 17:19   ` George Dunlap
2017-07-21 19:55     ` Dario Faggioli
2017-07-21 20:30       ` George Dunlap

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).