Method and apparatus for associating memory windows with memory regions in a data storage system
First Claim
1. A method for associating memory windows with memory regions in a data storage system, the method comprising:
- registering a memory region, wherein the memory region is a set of virtually contiguous memory addresses defined by a virtual address and length;
establishing a window reference count for the memory region, wherein the value of the window reference count corresponds to a plurality of memory windows bound to the memory region;
binding a first memory window to the memory region and incrementing the value of the window reference count;
binding a second memory window to the memory region and incrementing the value of the window reference count;
deregistering a memory region;
examining the window reference count;
unbinding any memory windows bound to the memory region, as determined by the value of the window reference count by;
returning an error signal if the value of the window reference count is non-zero; and
suspending deregistration of the memory region until an operating system kernel clean-up code has unbound all memory windows from the memory region; and
deregistering the memory region only if the window reference count has a value of zero.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, program and system for associating memory windows with memory regions in an infiniband data storage system are provided. The invention comprises registering a Memory Region, wherein the Memory Region is a set of virtually contiguous memory addresses defined by a virtual address and length. The system then establishes and maintains a Window Reference Count (WRC) for the Memory Region, which tracks the number of Memory Windows which are bound to the Memory Region. When the system binds a Memory Window to the Memory Region, the value of the WRC is incremented. When a Memory Window is unbound from the Memory Region, the value of the WRC is decremented. If no Memory Windows are bound to the Memory Region, the value of the WRC is zero. The Memory Region is not deregistered unless the value of the WRC equals zero.
20 Citations
12 Claims
-
1. A method for associating memory windows with memory regions in a data storage system, the method comprising:
-
registering a memory region, wherein the memory region is a set of virtually contiguous memory addresses defined by a virtual address and length;
establishing a window reference count for the memory region, wherein the value of the window reference count corresponds to a plurality of memory windows bound to the memory region;
binding a first memory window to the memory region and incrementing the value of the window reference count;
binding a second memory window to the memory region and incrementing the value of the window reference count;
deregistering a memory region;
examining the window reference count;
unbinding any memory windows bound to the memory region, as determined by the value of the window reference count by;
returning an error signal if the value of the window reference count is non-zero; and
suspending deregistration of the memory region until an operating system kernel clean-up code has unbound all memory windows from the memory region; and
deregistering the memory region only if the window reference count has a value of zero. - View Dependent Claims (2)
unbinding a bound memory window from the memory region and decrementing the value of the window reference count.
-
-
3. A method for associating memory window with memory regions in a data storage system, the method comprising:
-
registering a memory region, wherein the memory region is a set of virtually contiguous memory addresses defined by a virtual address and length;
establishing a window reference count for the memory region, wherein the value of the window reference count corresponds to a plurality of memory windows bound to the memory region;
binding a first memory window to the memory region and incrementing the value of the window reference count;
binding a second memory window to the memory region and incrementing the value of the window reference point;
deregistering a memory region;
examining the window reference count;
unbinding any memory windows bound to the memory region, as determined by the value of the window reference count by;
returning an error signal if the value of the window registration count is non-zero; and
invalidating all bound memory windows and allowing memory region deregistration to proceed; and
deregistering the memory region only if the window reference count has a value of zero. - View Dependent Claims (4)
unbinding a bound memory window from the memory region and decrementing the value of the window reference count.
-
-
5. A computer program product in a computer readable medium for use in a data processing system, for associating memory windows with memory regions in a data storage system, the computer program product comprising:
-
instructions for registering a memory region, wherein the memory region is a set of virtually continuous memory addresses defined by a virtual address and length;
instructions for establishing a window reference count for the memory region, wherein the value of the window reference count corresponds to a plurality of memory windows bound to the memory region;
instructions for binding a first memory wine LOW to the memory region and incrementing the value of the window reference count;
instructions for binding a second memory window to the memory region and incrementing the value of the window reference count;
instructions for deregistering a memory region;
instructions for examining the window reference count;
instructions for unbinding any memory windows bound to the memory region, as determined by the value of the window reference count, said instructions for unbinding including;
instructions for returning an error signal if the value of the window reference count is non-zero; and
instructions for suspending deregistration of the memory region until an operating system kernel clean-up code has unbound all memory windows from the memory region; and
instructions for deregistering the memory region only if the window reference count has a value of zero. - View Dependent Claims (6)
instructions for unbinding a bound memory window from the memory region and decrementing the value of the window reference count.
-
-
7. A computer program product in a computer readable medium for use in a data processing system, for associating memory windows with memory regions in a data storage system, the computer program product comprising:
-
instructions for registering a memory region, wherein the memory region is a set of virtually contiguous memory addresses defined by a virtual address and length;
instructions for establishing a window reference count for the memory region, wherein the value of the window reference count corresponds to a plurality of memory windows bound to the memory region;
instructions for binding a first memory window to the memory region and incrementing the value of the window reference count;
instructions for binding a second memory window to the memory region and incrementing the value of the window reference count;
instructions for deregistering a memory region;
instructions for examining the window reference count;
instructions for unbinding any memory windows bound to the memory region, as determined by the value of the window reference count, said instructions for unbinding including;
instructions for returning an error signal if the value of the window reference count is non-zero; and
instructions for invalidating oil bound memory windows and allowing memory region deregistration to proceed; and
instructions for deregistering the memory region only if the window reference count has a value of zero. - View Dependent Claims (8)
instructions for unbinding a bound memory window from the memory region and decrementing the value of the window reference count.
-
-
9. An apparatus for associating memory windows with memory regions in a data storage system, the apparatus comprising:
-
a first register which registers a memory region, wherein the memory region is a set of virtually contiguous memory addresses defined by a virtual address and length;
a second register which maintains a window reference count for the memory region, wherein the value of the window reference count corresponds to a plurality of memory windows bound to the memory region;
a first binding component which binds a first memory window to the memory region and increments the value of the window reference count;
a second binding component which binds a second memory window to the memory region and increments the value of the window reference count;
a first deregistration component which deregisters a memory region;
an examining component which examines the window reference count;
an unbinding component which unbinds any memory windows bound to the memory region, said unbinding component comprising;
a response component which returns an error signal; and
a regulating component which suspends deregistration of the memory region until an operating system kernel clean-up code has unbound all memory windows from the memory region; and
a second deregistration component which deregisters the memory region only if the window reference count has a value of zero. - View Dependent Claims (10)
an unbinding component which unbinds a bound memory window from the memory region and decrements time value of the window reference count.
-
-
11. An apparatus for associating memory windows with memory regions in a data storage system, the apparatus comprising:
-
a first register which registers a memory region, wherein the memory region is a set of virtually contiguous memory addresses defined by a virtual address and length;
a second register which maintains a window reference count for the memory region, wherein the value of the window reference count corresponds to a plurality of memory windows bound to the memory region;
a first binding component which binds a first memory window to the memory region and increments the value of the window reference count;
a second binding component which binds a second memory window to the memory region and increments the value of the window reference count;
a first deregistration component which deregisters a memory region;
an examining component which examines the window reference count;
an unbinding component which unbinds any memory windows bound to the memory region, said unbinding component comprising;
a response component which returns an error signal; and
an invalidation component which invalidates all bound memory windows and allowing memory region deregistration to proceed; and
a second registration component which deregisters the memory region only if the window reference count has a value of zero. - View Dependent Claims (12)
an unbinding component which unbinds a bound memory window from the memory region and decrements the value of the window reference count.
-
Specification