This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-devel] RE: Queries on Tmem and Difference Engine.

> From: Dan Magenheimer
> Subject: RE: Queries on Tmem and Difference Engine.
> > Thanks for reply.
> > Now I am very clear with my queries on tmem.
> I'm glad it was helpful!  I hope it is OK to post replies
> on the list so that answers to your very good questions
> can be read and discussed by others.
> > I am exploring to solve fragmentation problem through buddy
> allocation
> > technique.
> > http://www.kernel.org/doc/gorman/html/understand/understand009.html
> > http://en.wikipedia.org/wiki/Buddy_memory_allocation
> > Do you have any other thoughts on this concept of fragmentation ?
> Xen already uses a buddy allocator.  The problem is that tmem
> works around Xen's allocator for various performance reasons.
> And since tmem absorbs all physical memory in the system,
> tmem must be involved in freeing ephemeral pages and many
> many pages might need to be freed to obtain a buddy.
> Solving this for tmem still means there is a problem for other
> Xen dynamic memory management solutions (such as ballooning and
> page sharing).  I think the right solution for the fragmentation
> problem is that no code in Xen should attempt to allocate
> order>0 pages unless it is prepared to fail and fall back to
> instead allocating and using a set of order**2 individual pages.

After thinking about this some more, adding changes so that
tmem can use and release ephemeral pools in 2MB chunks might be
very useful for domains that request "huge pages".  This may
have performance issues, so should probably only be enabled
with a command line option (e.g. tmem_2mb).

Xen-devel mailing list

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] RE: Queries on Tmem and Difference Engine., Dan Magenheimer <=