Programming Interfaces Guide

RSMAPI General Usage Notes

These usage notes describe general considerations for the export and import sides of a shared-memory operation. These usage notes also contain general information regarding segments, file descriptors, and RSM configurable parameters.

Segment Allocation and File Descriptor Usage

The system allocates a file descriptor, which is inaccessible to the application importing or exporting memory, for each export operation or import operation. The default limit on file descriptor allocation for each process is 256. The importing or exporting application must adjust the allocation limit appropriately. If the application increases the file descriptor limit beyond 256, the values of the file descriptors that are allocated for export segments and import segments starts at 256. These file descriptor values are chosen to avoid interfering with normal file descriptor allocation by the application. This behavior accommodates the use of certain libc functions in 32-bit applications that only work with file descriptor values lower than 256.

Export-Side Considerations

The application must prevent access to segment data until the rebind operation is complete. Segment data access during rebind does not cause a system failure, but data content results are undefined. The virtual address space must be currently mapped and valid.

Import-Side Considerations

The controller that is specified for a segment import must have a physical connection with the controller that is used in the export of the segment.

RSM Configurable Parameters

The SUNWrsm software package includes an rsm.conf file. This file is located in /usr/kernel/drv. This file is a configuration file for RSM. The rsm.conf file can be used to specify values for certain configurable RSM properties. The configurable properties currently defined in rsm.conf include max-exported-memory and enable-dynamic-reconfiguration.


This property specifies an upper limit on the amount of exportable memory. The upper limit is expressed as a percentage of total available memory. Giving this property a value of zero indicates that the amount of exportable memory is unlimited.


The value of this property indicates whether dynamic reconfiguration is enabled. A value of zero indicates dynamic reconfiguration is disabled. A value of one enables dynamic reconfiguration support. The default value for this property is one.