xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* heap_lock optimizations?
@ 2013-07-15 15:15 Konrad Rzeszutek Wilk
  2013-07-15 15:46 ` Malcolm Crossley
  2013-07-15 16:09 ` Tim Deegan
  0 siblings, 2 replies; 5+ messages in thread
From: Konrad Rzeszutek Wilk @ 2013-07-15 15:15 UTC (permalink / raw)
  To: tim, xen-devel

Hey Tim,

I was looking at making the 'Scrubbing Free RAM:' code faster on 1TB
boxes with 128 CPUs. And naively I wrote code that setup a tasklet
on each CPU and scrub a swatch of MFNs. Unfortunatly even on 8VCPU
machines the end result was a slower boot time!

The culprit looks to be the heap_lock that is taken and released
on every MFN (for fun I added a bit of code to do batches - of
32 MFNs and to iterate over those 32 MFNs while holding the lock - that
did make it a bit faster, but not by a much).

What I am wondering is:
 - Have you ever thought about optimizing this? If so, how?
 - Another idea to potentially make this faster was to seperate this
   scrubbing in two stages:  
    1) (under the heap_lock) - reserve/take a giant set of MFN pages
       (perhaps also consult the NUMA affinity). This would be
       usurping the whole heap[zone].
    2) Give it out to the CPUS to scrub (this would be done without being
       under a spinlock). The heap[zone] would be split equally amongst the
       CPUs.
    3) Goto 1 until done.
 - Look for examples in the Linux kernel to see how it does it.

Thanks!

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

end of thread, other threads:[~2013-07-16 16:41 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-15 15:15 heap_lock optimizations? Konrad Rzeszutek Wilk
2013-07-15 15:46 ` Malcolm Crossley
2013-07-15 16:14   ` Konrad Rzeszutek Wilk
2013-07-16 16:41   ` Konrad Rzeszutek Wilk
2013-07-15 16:09 ` Tim Deegan

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