Dynamic Partitioning...

ALL:

I’m looking at Dynamic Partitioning and I have a couple of questions
that I’m hoping someone can help.

  1. The first is what this portion of the WDK (6001) documentation
    means:

"Do not make any assumptions about the amount of physical memory
present in the system. On a dynamically partitionable server, memory can
be dynamically added to a running hardware partition at any time.

If a device driver uses the amount of physical memory in the system to
determine the size of the memory buffers that it allocates, then it can
register itself to be notified when memory is added to the system. When
the driver receives such a notification it can adjust its buffer
allocation accordingly. Such a driver should update any saved value of
the amount of physical memory in the system whenever memory is added.

Note that Microsoft Windows Server Code Name “Longhorn” does not change
the size of the paged and non-paged system memory pools after the
operating system has booted. Therefore, if physical memory is added to
the system, the amount of memory in these memory pools remains
unchanged."

I must be missing something here, because if the sizes of the paged and
non paged pool do not change, what is the point of adding memory (not
replacing (which makes sense) or removing which is described but
unsupported)?

  1. Does the most recent release of Longhorn actually support this (and
    the hypervisor in general) yet? The WDK, what I remember from WinHEC,
    and what I saw a couple of releases of Longhorn back all seem to
    conflict.

  2. In the past couple of days there was a thread about the newer
    builds of Vista and/or Longhorn not having symbols. Does anyone know if
    this is true and affects the 2007.02 CTP of Longhorn (x64).

I’m hoping that someone has some information about this so I don’t I
have to install it to find out.

Thanks,

mm

Martin,

The documentation is out of date. We do resize the pools when physical memory is added, at least in Longhorn Server. I’m afraid I can’t remember if we did in Server 2003, which also supported hot-add of memory. Even without modified pool sizes, however, hot-added memory can be used to satisfy user-mode memory allocations, physical page allocations (e.g. for DMA) and others. In Longhorn it’s a moot point, though.

As for what is supported, Dynamic Partitioning is an umbrella used to cover the hot add/replace/remove of processors and memory. The first feature added was hot-add of memory, in Server 2003. Longhorn Server has hot-add of processors and hot-replace of processor and memory modules. These features will be in the forthcoming beta of Longhorn Server. The hypervisor is only very distantly related to these features.

Dave

I don’t have all the answers, but I think the documentation is being
un-necessarily specific to partitionable systems… Win2k3 already
supports memory hot-add on an otherwise vanilla system, you can see this
in action on the SR6850HW4 platform from Intel.

As far as how the new memory is used and distributed within the OS I
don’t know much about that.

Frankly I don’t really understand the logic behind all this runtime
hot-add functionality (memory, PCI devices, etc) it seems like if your
system is mission-critical to the point that you need to add resources
at runtime (a risky proposition in my experience) then you should really
have server-level redundancy in your datacenter such that you can power
down an individual system for upgrades without cratering the whole
system.

-Zach

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:bounce-280592-
xxxxx@lists.osr.com] On Behalf Of Martin O’Brien
Sent: Tuesday, March 13, 2007 9:54 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Dynamic Partitioning…

ALL:

I’m looking at Dynamic Partitioning and I have a couple of questions
that I’m hoping someone can help.

  1. The first is what this portion of the WDK (6001) documentation
    means:

"Do not make any assumptions about the amount of physical memory
present in the system. On a dynamically partitionable server, memory
can
be dynamically added to a running hardware partition at any time.

If a device driver uses the amount of physical memory in the system to
determine the size of the memory buffers that it allocates, then it can
register itself to be notified when memory is added to the system. When
the driver receives such a notification it can adjust its buffer
allocation accordingly. Such a driver should update any saved value of
the amount of physical memory in the system whenever memory is added.

Note that Microsoft Windows Server Code Name “Longhorn” does not change
the size of the paged and non-paged system memory pools after the
operating system has booted. Therefore, if physical memory is added to
the system, the amount of memory in these memory pools remains
unchanged."

I must be missing something here, because if the sizes of the paged and
non paged pool do not change, what is the point of adding memory (not
replacing (which makes sense) or removing which is described but
unsupported)?

  1. Does the most recent release of Longhorn actually support this (and
    the hypervisor in general) yet? The WDK, what I remember from WinHEC,
    and what I saw a couple of releases of Longhorn back all seem to
    conflict.

“Gray, Zachary C” wrote in message
news:xxxxx@ntdev…
Frankly I don’t really understand the logic behind all this runtime
hot-add functionality (memory, PCI devices, etc) it seems like if your
system is mission-critical to the point that you need to add resources
at runtime (a risky proposition in my experience) then you should really
have server-level redundancy in your datacenter such that you can power
down an individual system for upgrades without cratering the whole
system.

As somebody who has worked in fault tolerance, I can tell you the idea of
“powering down” a server for an upgrade does not win friends in a lot of
datacenters. If you are running a modern database system it can take a
long time to get there, my favorite on this is clustering yes your OS is up
and running in minutes and your Oracle database will be available in 12
hours! There is a need, to be able to reconfigure things dynamically, that
was why the fault tolerant computer companies did so well for a long time,
not that hardware was that unreliable, but that reconfiguration was needed.


Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr
Remove StopSpam to reply

Gray, Zachary C wrote:

Frankly I don’t really understand the logic behind all this runtime
hot-add functionality (memory, PCI devices, etc) it seems like if your
system is mission-critical to the point that you need to add resources
at runtime (a risky proposition in my experience) then you should really
have server-level redundancy in your datacenter such that you can power
down an individual system for upgrades without cratering the whole
system.

Also remember that some of this hot-plug management is being done
because of virtualization. All of the major virtualization products
allow you to add resources (like memory and disk) to a virtual machine
on the fly.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Dave Walker already gave you a definitive answer. But this points out a
common misconception. “Paged Pool” and “Non-Paged Pool” that kernel-mode
components use are just two heaps that a driver might use. They’re not the
source of all memory allocations in the system.

  • Jake Oshins
    Windows Kernel Team

“Martin O’Brien” wrote in message
news:xxxxx@ntdev…
> ALL:
>
> I’m looking at Dynamic Partitioning and I have a couple of questions
> that I’m hoping someone can help.
>
> 1. The first is what this portion of the WDK (6001) documentation
> means:
>
> “Do not make any assumptions about the amount of physical memory
> present in the system. On a dynamically partitionable server, memory can
> be dynamically added to a running hardware partition at any time.
>
> If a device driver uses the amount of physical memory in the system to
> determine the size of the memory buffers that it allocates, then it can
> register itself to be notified when memory is added to the system. When
> the driver receives such a notification it can adjust its buffer
> allocation accordingly. Such a driver should update any saved value of
> the amount of physical memory in the system whenever memory is added.
>
> Note that Microsoft Windows Server Code Name “Longhorn” does not change
> the size of the paged and non-paged system memory pools after the
> operating system has booted. Therefore, if physical memory is added to
> the system, the amount of memory in these memory pools remains
> unchanged.”
>
> I must be missing something here, because if the sizes of the paged and
> non paged pool do not change, what is the point of adding memory (not
> replacing (which makes sense) or removing which is described but
> unsupported)?
>
> 2. Does the most recent release of Longhorn actually support this (and
> the hypervisor in general) yet? The WDK, what I remember from WinHEC,
> and what I saw a couple of releases of Longhorn back all seem to
> conflict.
>
> 3. In the past couple of days there was a thread about the newer
> builds of Vista and/or Longhorn not having symbols. Does anyone know if
> this is true and affects the 2007.02 CTP of Longhorn (x64).
>
> I’m hoping that someone has some information about this so I don’t I
> have to install it to find out.
>
> Thanks,
>
> mm
>
>

Thanks Jake.

>> xxxxx@windows.microsoft.com 2007-03-13 14:40 >>>
Dave Walker already gave you a definitive answer. But this points out
a
common misconception. “Paged Pool” and “Non-Paged Pool” that
kernel-mode
components use are just two heaps that a driver might use. They’re not
the
source of all memory allocations in the system.

  • Jake Oshins
    Windows Kernel Team

“Martin O’Brien” wrote in message
news:xxxxx@ntdev…
> ALL:
>
> I’m looking at Dynamic Partitioning and I have a couple of questions
> that I’m hoping someone can help.
>
> 1. The first is what this portion of the WDK (6001) documentation
> means:
>
> “Do not make any assumptions about the amount of physical memory
> present in the system. On a dynamically partitionable server, memory
can
> be dynamically added to a running hardware partition at any time.
>
> If a device driver uses the amount of physical memory in the system
to
> determine the size of the memory buffers that it allocates, then it
can
> register itself to be notified when memory is added to the system.
When
> the driver receives such a notification it can adjust its buffer
> allocation accordingly. Such a driver should update any saved value
of
> the amount of physical memory in the system whenever memory is
added.
>
> Note that Microsoft Windows Server Code Name “Longhorn” does not
change
> the size of the paged and non-paged system memory pools after the
> operating system has booted. Therefore, if physical memory is added
to
> the system, the amount of memory in these memory pools remains
> unchanged.”
>
> I must be missing something here, because if the sizes of the paged
and
> non paged pool do not change, what is the point of adding memory
(not
> replacing (which makes sense) or removing which is described but
> unsupported)?
>
> 2. Does the most recent release of Longhorn actually support this
(and
> the hypervisor in general) yet? The WDK, what I remember from
WinHEC,
> and what I saw a couple of releases of Longhorn back all seem to
> conflict.
>
> 3. In the past couple of days there was a thread about the newer
> builds of Vista and/or Longhorn not having symbols. Does anyone know
if
> this is true and affects the 2007.02 CTP of Longhorn (x64).
>
> I’m hoping that someone has some information about this so I don’t I
> have to install it to find out.
>
> Thanks,
>
> mm
>
>


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer