VMS Help
System Services, $PROCESS AFFINITY (Alpha Only), Arguments

 *Conan The Librarian (sorry for the slow response - running on an old VAX)

 pidadr

    OpenVMS usage:process_id
    type:         longword (unsigned)
    access:       read only
    mechanism:    by 32- or 64-bit reference
    Process identification (PID) of a kernel thread whose affinity
    mask is to be modified or returned. The pidadr argument is the
    32- or 64-bit address of a longword that contains the PID.

    Process selection is made through a combination of the pidadr
    and prcnam arguments. If neither are specified or if both have a
    zero value, the service operations are made to the user affinity
    mask of the current kernel thread of the calling process. The
    pidadr argument takes precedence over the prcnam argument in any
    circumstances where both are supplied in the service call.

 prcnam

    OpenVMS usage:process_name
    type:         character-coded text string
    access:       read only
    mechanism:    by 32- or 64-bit descriptor-fixed-length string
                  descriptor
    Process name of the process whose affinity mask is to be modified
    or returned. The prcnam argument is the 32- or 64-bit address
    of a character string descriptor pointing to the process name
    string. A process can be identified with a 1- to 15-character
    string. The service operations are made to the user affinity mask
    of the initial thread of the specified process.

    If pidadr and prcnam are both specified, then pidadr is modified
    or returned and prcnam is ignored. If neither argument is
    specified, then the context of the current kernel thread of the
    calling process is modified or returned.

 select_mask

    OpenVMS usage:mask_quadword
    type:         quadword (unsigned)
    access:       read only
    mechanism:    by 32- or 64-bit reference
    Mask specifying which bits of the specified process' affinity
    mask are to be modified. The select_mask argument is the 32- or
    64-bit address of a quadword bit vector wherein a bit, when set,
    specifies that the corresponding CPU position in the mask is to
    be modified.

    The individual CPU bits in select_mask can be referenced by their
    symbolic name constants, CAP$M_CPU0 through CAP$M_CPU31. These
    constants (zero-relative to match system CPU IDs) specify the
    position in the mask quadword that correspond to the bit name.
    Multiple CPUs can be selected by ORing together the appropriate
    bits.

 modify_mask

    OpenVMS usage:mask_quadword
    type:         quadword (unsigned)
    access:       read only
    mechanism:    by 32- or 64-bit reference
    Mask specifying the settings for those explicit affinities
    selected in the select_mask argument. The modify_mask argument is
    the 32- or 64-bit address of a quadword bit vector wherein a bit,
    when set, specifies that the corresponding CPU is to be added to
    the specified process affinity set; when clear, the corresponding
    CPU is to be removed from the specified process affinity set.

    The bit constants CAP$M_CPU0 through CAP$M_CPU31 can be used to
    modify the appropriate bit position in the quadword pointed to
    by modify_mask. Multiple CPUs can be added to the affinity set by
    ORing together the appropriate bits.

    To add a specific CPU to the affinity mask set, that bit position
    must be set in both select_mask and modify_mask. To remove a
    specific CPU from the affinity mask set, that bit position must
    be set in select_mask and clear in modify_mask.

    The constant CAP$K_ALL_CPU_ADD, when specified in modify_mask,
    indicates that all CPUs specified in select_mask are to be added
    to the affinity mask set. The constant CAP$K_ALL_CPU_REMOVE
    indicates that all CPUs in select_mask are to be removed from
    the affinity mask set.

 prev_mask

    OpenVMS usage:mask_quadword
    type:         quadword (unsigned)
    access:       write only
    mechanism:    by 32- or 64-bit reference
    Previous CPU affinity mask for the specified kernel thread before
    execution of this call to $PROCESS_AFFINITY. The prev_mask
    argument is the 32- or 64-bit address of a quadword into which
    $PROCESS_AFFINITY writes the previous explicit affinity bit mask.

 flags

    OpenVMS usage:mask_quadword
    type:         quadword (unsigned)
    access:       read only
    mechanism:    by 32- or 64-bit reference
    Options selected for affinity modification. The flags argument
    is a quadword bit vector wherein a bit corresponds to an option.
    Only the bits specified below are used; the remainder of the
    quadword bits are reserved and must be 0.

    Each option (bit) has a symbolic name, which the $CAPDEF macro
    defines. The flags argument is constructed by performing a
    logical OR operation using the symbolic names of each desired
    option.

    The following table describes the symbolic name of each option:

    Symbolic Name          Description

    CAP$M_FLAG_PERMANENT   Indicates whether to modify the permanent
                           process affinities in addition to the
                           current image copy. If CAP$M_FLAG_
                           PERMANENT is set, then both the permanent
                           and current affinities are modified.
                           If the flag bit is clear or flags is
                           unspecified, then just the current image
                           process affinities are modified.

                           This bit also determines which of the
                           affinity masks are returned in prev_
                           mask. If set, the permanent mask, used
                           to reinitialize the current set at image
                           rundown, is returned. If the bit is clear
                           or the flags argument is not specified,
                           the current running mask is returned.

    CAP$M_FLAG_CHECK_CPU   Determines whether the kernel thread
                           can be left in a nonrunnable state under
                           some circumstances. No operation of this
                           service will allow a transition from a
                           runnable to blocked state; however, if
                           the kernel thread is already at a blocked
                           state, this bit determines whether the
                           result of the operation must leave it
                           runnable. If CAP$M_FLAG_CHECK_CPU is set
                           or flags is unspecified, the kernel thread
                           will be checked to ensure it can safely
                           run on one of the CPUs in the active set;
                           otherwise, any valid state operations on
                           kernel threads already in a blocked state
                           will be allowed.

    CAP$M_FLAG_CHECK_CPU_  Indicates whether a check is made to
    ACTIVE                 verify that all CPUs in the select mask
                           that are about to be selected for affinity
                           binding are in the active set. This does
                           not apply to CPUs that are about to be
                           cleared from the current affinity set.
                           Unlike CAP$M_FLAG_CHECK_CPU where only
                           a single CPU has to be valid for the
                           condition to pass, CAP$M_FLAG_CHECK_
                           CPU_ACTIVE requires that all CPUs in the
                           selected set must pass the criteria.
  Close     HLB-list     TLB-list     Help  

[legal] [privacy] [GNU] [policy] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.