Strange problem with 8-stable, VMWare vSphere 4 & AMD CPUs (unexpected shutdowns)

Alan Cox alan.l.cox at gmail.com
Thu Feb 11 18:13:59 UTC 2010


On Thu, Feb 11, 2010 at 7:13 AM, John Baldwin <jhb at freebsd.org> wrote:

> On Wednesday 10 February 2010 1:38:37 pm Ivan Voras wrote:
> > On 10 February 2010 19:35, Andriy Gapon <avg at icyb.net.ua> wrote:
> > > on 10/02/2010 20:26 Ivan Voras said the following:
> > >> On 10 February 2010 19:10, Andriy Gapon <avg at icyb.net.ua> wrote:
> > >>> on 10/02/2010 20:03 Ivan Voras said the following:
> > >>>> When you say "very unique" is it in the "it is not Linux or Windows"
> > >>>> sense or do we do something nonstandard?
> > >>> The former - neither Linux, Windows or OpenSolaris seem to have what
> we
> have.
> > >>
> > >> I can't find the exact documents but I think both Windows
> > >> MegaUltimateServer (the highest priced version of Windows Server,
> > >> whatever it's called today) and Linux (though disabled and marked
> > >> Experimental) have it, or have some kind of support for large pages
> > >> that might not be as pervasive (maybe they use it for kernel only?). I
> > >> have no idea about (Open)Solaris.
> > >
> > > I haven't said that those OSes do not use large pages.
> > > I've said what I've said :-)
> >
> > Ok :)
> >
> > Is there a difference between "large pages" as they are commonly known
> > and "superpages" as in FreeBSD ? In other words - are you referencing
> > some specific mechanism, like automatic promotion / demotion of the
> > large pages or maybe something else?
>
> Yes, the automatic promotion / demotion.  That is a far-less common
> feature.
> FreeBSD/i386 has used large pages for the kernel text as far back as at
> least
> 4.x, but that is not the same as superpages.  Linux does not have automatic
> promotion / demotion to my knowledge.  I do not know about other OS's.
>
>
A comparison of current large page support among Unix-like and Windows
operating systems has two dimensions: (1) whether or not the creation of
large pages for applications is automatic and (2) whether or not the machine
administrator has to statically partition the machine's physical memory
between large and small pages at boot time.

For FreeBSD, large pages are created automatically and there is not a static
partitioning of physical memory.  In contrast, Linux does not create large
pages automatically and does require a static partitioning.  Specifically,
Linux requires the administrator to explicitly and statically partition the
machine's physical memory at boot time into two parts, one that is dedicated
to large pages and another for general use.  To utilize large pages an
application has to explicitly request memory from the dedicated large pages
pool.  However, to make this somewhat easier, but not automatic, there do
exist re-implementations of malloc that you can explicitly link with your
application.

In Solaris, the application has to explicitly request the use of large
pages, either via explicit kernel calls in the program or from the command
line with support from a library.  However, there is not a static
partitioning of physical memory.  So, for example, when you run the Sun jdk
on Solaris, it explicitly requests large pages for much of its data, and
this works without administrator having to configure the machine for large
page usage.

To the best of my knowledge, Windows is just like Solaris.

Alan


More information about the freebsd-stable mailing list