Chapter 1
About This Release

This document supports Version 4.4.10 of the DYNIX/ptx operating system. Be sure to review this document before you install or run this release of DYNIX/ptx.


Software Compatibility

DYNIX/ptx V4.4.10 is supported on IBM xSeries 430 systems, IBM NUMA-Q® 2000 systems, and Symmetry® 5000 systems (CSM-based systems). It is not supported on Symmetry 2000 systems (SSM-based systems).


Supported System Software and Layered Products

Following are the minimum version requirements for system software and layered products. Earlier versions of these products are not supported on DYNIX/ptx V4.4.10.


Supported Layered Products That Are No Longer Provided

The following products are no longer available from IBM or have been removed from the distribution CD beginning with the "DYNIX/ptx V4.4.8 Operating System and Layered Products Software" CD, August 2001, Revision C. However, if you are upgrading from a previous version of DYNIX/ptx V4.4.x and already have the versions indicated installed on your host, they are supported for use with DYNIX/ptx V4.4.10.


Retired Products

The following products have been retired and are no longer available on the "DYNIX/ptx Operating System and Layered Products Software" or "Systems Management Software" CDs.


ptx/AGENT SDK No Longer Available with ptx/AGENT

The ptx/AGENT Subagent Development Kit (SDK) is no longer available with ptx/AGENT. You must now contact SNMP Research International, Inc. to obtain a Subagent Development Kit.


Unsupported Software

The following products are not supported on DYNIX/ptx V4.4.10:


Standards Compliance

The DYNIX/ptx operating system complies with the following standards:


Unsupported Platforms and Devices

The following platforms and devices are not supported in DYNIX/ptx V4.4.10:

5.25" Pbays and devices are supported as storage devices on Symmetry systems only. They are supported on IBM xSeries 430 and NUMA-Q 2000 systems in the boot Pbay only.


COFF Compatibility Development Environment Has Been Removed

The COFF compatibility development environment has been removed. The COFF libraries present in earlier versions of DYNIX/ptx are no longer available.

COFF binaries will continue to work unless one or more of the following conditions exists:


Software Installation

For information about installing this release of DYNIX/ptx, refer to the DYNIX/ptx V4.4.10 and Layered Products Software Installation Release Notes.


Operational Restrictions

The following restrictions must be followed when running DYNIX/ptx V4.4.10. In these restrictions, local refers to devices connected directly to the PCI/SCSI interface on SCI-based systems, or to devices connected directly to the CSM on CSM-based systems.


Contents of the V4.4.10 Release

DYNIX/ptx V4.4.10 is primarily a maintenance release with the fixes identified in "Problems Fixed in the V4.4.10 Release." Other changes are as follows.


edb Debugger Changes

The release includes a new version of the edb debugger that provides the fixes described in Chapter 2.

The following additional changes have been made to the edb debugger:


Public Software No Longer Provided With DYNIX/ptx

The Public Software distributed with previous versions of DYNIX/ptx V4.4.x is no longer provided, and is no longer available from IBM. However, DYNIX/ptx customers who already have Public Software V4.4.x can use this product with DYNIX/ptx V4.4.10. This software is not supported by Customer Support.


Contents of the V4.4.9 Release

This release provides support for the following hardware:

DYNIX/ptx V4.4.9 also introduces new software versions for Fibre Channel Bridges, FC Host Adapters, and IBM 2109/SilkWorm 2000-family FC Switches for IBM xSeries 430 and NUMA-Q 2000 systems. This updated FC software recipe enables disk subsystem sharing among NUMA hosts running different versions of DYNIX/ptx.


ATTENTION

DYNIX/ptx V4.4.9 does not include any software changes beyond those in support of the new hardware. This may require you to reinstall fastpatches that you have already installed. Included with the DYNIX/ptx V4.4.9 release is the latest "Best Recipe" CD, which includes level 2 fastpatches. You should install this CD on your system as part of the DYNIX/ptx V4.4.9 release set.

If you received a patch after the publication date of the "Best Recipe" CD or if you have a level 0 or 1 fastpatch on your system, you must explicitly reinstall these patches since they are not included on the "Best Recipe" CD.



Contents of the V4.4.8 Release

This release provides support for the following hardware:


Contents of the V4.4.7 Release

DYNIX/ptx V4.4.7 is primarily a maintenance release and contains the fixes described in Chapter 2.

The release also includes support for the Hitachi Data Systems HDSTM 5800 disk array. A new utility, hdsinfo, displays configuration status, FRU status, and parameter settings for the device. See the document Hitachi Disk Arrays on NUMA Systems for more information about this device, including how to interpret the output from hdsinfo.


Support for eXtended Kernel Virtual Address Space

A new mechanism called eXtended Kernel Virtual Address space (XKVA) is now available to extend the range of KVA addresses possible on IBM xSeries 430 and NUMA-Q 2000 systems configured with wide 64-bit PTEs. This mechanism overlays an additional 3 GB of kernel virtual space on top of the standard 3 GB of user virtual space. The kernel then maps and remaps user virtual space and XKVA as needed.


ATTENTION

XKVA was implemented in DYNIX/ptx V4.4.4; however, it has not been previously documented.


By default, this mechanism is enabled for all IBM xSeries 430 and NUMA-Q 2000 systems running with wide 64-bit PTEs, providing support for up to 64 GB of physical memory. However, on systems that do not need the extra kernel virtual space (physical memory is 16 GB or less and the system is not running out of kernel virtual space in primary KVA), this mechanism can reduce system performance, as it requires extra faults and TLB flushing.

If your system does not need the XKVA feature, you can disable it by patching the xkva_alloc_enabled kernel variable:

# /etc/bp /unix xkva_alloc_enabled 0

You must reboot the system for this change to take effect.


Support for the edb Debugger

The edb debugger is now provided with DYNIX/ptx. (This debugger was previously provided with ptx/C++.) The following changes have been made since the previous release of edb.

New functionality:

New options:

autoupdatejob
Makes edb change job when an event occurs on another job.
showlimit
Specifies the number of declarations to show before paging.
printlimit
Specifies the number of identifiers to print before paging.
returnrepeats
Entering a blank line should (not) repeat the previous command.

Enhancements to the edb graphical user interface:

Three new commands have been added to the popup menu of the Source pane. Right click in the Source pane to see these items:

print
Prints the value of the selected expression.
show
Shows the definition of the selected identifier.
address of
Dereferences the selected identifier.

An X resource toggle to display icons has been added:

Edb*iconsPaneToggle.set: true

The edb control buttons can now be personalized:

Edb*viewer_run_button.labelString:

Run

Edb*viewer_continue_button.labelString:

Continue

Edb*viewer_step_button.labelString:

Step

Edb*viewer_step_over_button.labelString:

Step over

Edb*viewer_return_button.labelString:

Return

Edb*viewer_halt_button.labelString:

Halt

Edb*viewer_detach_button.labelString:

Detach

Edb*viewer_kill_button.labelString:

Kill

Edb*viewer_make_button.labelString:

Make

Edb*viewer_edit_button.labelString:

Edit



Errata for the DYNIX/ptx V4.4 System Recovery and Troubleshooting Guide

The DYNIX/ptx V4.4 System Recovery and Troubleshooting Guide, which was published December 1999, document version dprtaa09, should be corrected as follows:


Contents of the V4.4.6 Release

DYNIX/ptx V4.4.6 contains the following:

The release also includes the fix described in Chapter 2.


Contents of the V4.4.5 Release

DYNIX/ptx V4.4.5 is primarily a maintenance release and contains the fixes described in Chapter 2. It also includes support for the new NUMA-Q 1000 system. This system has recently been renamed NUMA-Q 2000 with Direct-Connect interconnects.


NUMA-Q 1000 Systems

NUMA-Q 1000 systems operate in the same manner as NUMA-Q 2000 systems; however, the bootbay contains a single local disk that is used for the root filesystem. This disk must be used for doing software upgrades and saving crash dumps.


VTOC for Root Disk

The NUMA-Q 1000 system uses a special VTOC for the root disk in the bootbay.The VTOC configures the data partitions on the disk as follows:

Table 1-2. Data Partitions on NUMA-Q 1000 Root Disk

Partition

Use

0

Root filesystem

1

Primary swap partition

2

Alternate root partition

3

Crash dump partition

4

User data partition

5

User data partition


Partitions 0, 1, 2, and 3 are reserved for the operating system, primary swap, and saving crash dumps. You can use partitions 4 and 5 for any data you desire.

Partition 9 is a miniroot partition that can be used to build a custom miniroot.


ATTENTION

Do not make any changes to the partition layout of this disk. The partitions are sized to provide adequate space for the operating system.



Software Upgrades

By default, the operating system is installed on partition 0. If your system contains a single bootbay, you will need to upgrade the operating system on the alternate root partition 2. See the DYNIX/ptx V4.4.6 and Layered Products Software Installation Release Notes for more information.


Set Up Crash Dumps

NUMA-Q 1000 systems can use either of the following methods to save crash dumps:

Copying the dump directly to a filesystem is faster. Refer to the DYNIX/ptx V4.4 System Recovery and Troubleshooting Guide for details about configuring the system to save crash dumps.


Contents of the V4.4.4 Release

DYNIX/ptx V4.4.4 is a maintenance release and contains the fixes described in Chapter 2. The release also includes the following implementation changes.


Support for New Quads on NUMA-Q Systems

DYNIX/ptx now supports 0300-Series quads, which contain the Intel® Xeon processor. A NUMA-Q system using only 0300-Series quads can include up to 16 quads.

A NUMA-Q system can contain both 0300-Series quads and the earlier quads; however, in this configuration the system is limited to eight quads.

Commands such as /etc/showcfg and /etc/showquads identify the processors in 0300-Series quads as running at 360MHz.


Increased Physical Memory Support on NUMA-Q Systems

NUMA-Q systems now support up to 64 GB of physical memory. The maximum memory per quad is 4 GB.


Application Region Manager

The Application Region Manager provides the ability to partition system resources (currently only CPUs) into multiple regions. Applications can then be assigned to run in a specific region, allowing you to balance your system workload.

The Processor Group Affinity scheduler can be used to further partition the workload within a region. You can create run queues containing certain CPUs from the region, assign processes to those run queues, and assign priorities that determine when each run queue's processes will be executed.

When you create an application region, you specify attributes for it, including its name, the CPUs to be associated with the region, whether the region should be activated now, and whether it should be activated automatically at system boot. Information about regions is stored in the region registry file, /etc/system/region_db.

An application region can be active or inactive. When it is active, the operating system will attach the specified CPUs to the region and processes can be executed there. When the region is inactive, no CPUs are associated with the region and processes cannot be executed. If desired, regions can be activated automatically at system boot. You can also activate or deactivate regions as needed.

Changes can be made to a region without terminating the processes running there. If you remove a CPU from a region, any processes running on that CPU will be automatically moved to another CPU in the region. If you deactivate or remove a region, its processes will be moved to the active region that you specify.

You can use the ptx/ADMIN Region Management menu and the following commands to manage application regions.

rgnctl
Create, modify, activate, deactivate, remove, load, and check regions.
rgnstat
Display attributes and statistics for regions.
rgnassign
Assign a process or group of processes to a region.
rgnrun
Execute a command on an active region.

For more information about the Application Region Manager, see the DYNIX/ptx System Configuration and Performance Guide.

REFERENCE
region(4), rgnctl(1M), rgnstat(1M), rgnassign(1M), rgnrun(1M)


Support for 18-GB Disks

Support for 18-GB disks has been added to DYNIX/ptx V4.4.4. This support was previously provided by the ptx/18GB_DISK layered product. The following VTOCs are available: ibms18w for the IBM® drive or seag118273 for the Seagate® drive.


autoBoot Flag on NUMA-Q Systems

When the system is booted, the standload program reads the boot strings, including the autoBoot flag, and takes the appropriate action, typically either booting the uptime unix kernel or executing the stand-alone dump program.

In previous releases, if dump was invoked but either failed or could not be started, standload took the system to single-user mode and displayed the SAK shell prompt. To provide more flexibility in the case of a dump failure, a new value has been added to the autoBoot flag to tell standload to continue to boot the unix kernel even if dump fails.

In the V4.4.4 release, the following values can be specified for the autoBoot flag:

0
Exit to the SAK shell.
1
Execute the dump program if necessary. If dump fails, provide a SAK shell. If dump succeeds or does not need to be executed, boot the unix kernel.
2
Execute the dump program if necessary. If dump fails, succeeds, or does not need to be executed, boot the unix kernel.


New Memory Dump Option for NUMA-Q Systems

NUMA-Q systems can now be configured to copy a memory dump directly to a filesystem. This method can reduce the time needed to recover from a system failure, as it bypasses the savecore program. Also, you do not need to maintain dump devices. The DYNIX/ptx V4.4 System Recovery and Troubleshooting Guide describes how to implement this option.


Support for European Union Monetary Unit

Locales have been added to support the new EURO currency. The names of the locales match the existing locale names with the extension _EU (for example, fr_EU and es_EU). If your site is located in a country participating in the European Union and you want to use the EURO currency, set your locale to <localename>_EU. To use the local currency, set your locale to <localename>.


Changes to the Kernel


New BUFCACHE_MAX Tunable Parameter

This parameter specifies the maximum size, in bytes, of the system buffer cache. The parameter is used in the following manner:

For more information about this parameter, see the DYNIX/ptx System Configuration and Performance Guide.


Message Queues on NUMA-Q Systems

The scalability of message queue operations on NUMA-Q systems has been greatly improved in this release. As a result of these changes, space for message queue messages and message headers is now allocated separately for each quad. The total space allocated for these resources is the amount specified by the MSGSEG and MSGTQL kernel parameters, multiplied by the number of quads in the system. The space for a given message is allocated from the pools on the quad where the process sending the message is located.

If you have previously increased the values of MSGSEG and MSGTQL, you may find that you can now reduce the values of these parameters without hurting message queue performance. See the DYNIX/ptx System Configuration and Performance Guide for more information about these parameters.


Tune Kernel Memory-Allocation Pool Attributes

Various kernel components create a component-specific pool of identical data structures used by that component. There are several attributes and statistics associated with each pool. A new command, kmstune, displays or sets these attributes and statistics, enabling you to monitor and tune the kernel memory used by a component's pool of data structures. For more information, refer to the DYNIX/ptx System Configuration and Performance Guide and to the kmstune(1M) man page.


Manufacturing Kernel Now Provided

DYNIX/ptx and certain layered products are now shipped with special kernel components that allow the building of a manufacturing (MFG) kernel. This kernel is intended for debugging purposes only; it contains many checks that can cause the kernel to panic in situations in which the standard kernel would continue to operate. The manufacturing kernel should be built and booted only at the direction of your customer service representative.


Changes to the ptx/C Compiler and Programming Tools


Enhancements to the cc Compiler


New __IDENT__ Predefined Macro.

The compiler now includes a new __IDENT__ predefined macro. During compilation, this macro is replaced by the argument string from the previous #ident directive within the source file. If there is not an #ident directive before __IDENT__, the macro is expanded in the same manner as a __FILE__ macro.


New OFL Function Ordering Algorithm.

The new -Wofl,-quick option tells the compiler to pass the -Oquick option to the linker instead of the -Oreduce option. The -Oquick option specifies that the linker should use an alternate function ordering algorithm that runs in linear time, rather than the default graph reduction algorithm, which can consume a large amount of processor time for large programs. The -Wofl,-quick option can be used with either -Wofl,-static or -Wofl,-dynamic.


C Macros Now Support a Variable Number of Arguments.

To enable C macros to allow a variable number of arguments, append ... to the name of the final parameter, which is known as the "rest" parameter. During expansion of the macro, the "rest" parameter is replaced with the corresponding argument plus all following arguments, which must be separated by commas.

If the optional part of the argument list is empty, the macro can be defined by inserting ## before the "rest" parameter name in the replacement list. During macro expansion, if there are no arguments corresponding to the "rest" parameter, then the preprocessor token preceding the "##" is not used. For example,

#define WERROR(format, args...) \
      fprintf(stderr, "line %d:  " format, __LINE__ , ## args)

specifies that if WERROR is used with a single argument, then the comma after the format should not be included in the macro expansion. If there is more than one argument, then the comma is used.

WERROR("error\n");
WERROR("%s and %s are not defined\n", n1, n2);

expands to:

fprintf ( stderr , "line %d:  " "error\n" , 111 ) ;
fprintf ( stderr , "line %d:  " "%s and %s are not defined\n" ,
   112 , n1, n2 ) ;

Enhancements to ld

The new -Oquick option orders functions using a linear algorithm instead of the NP-complete graph reduction algorithm. The performance of the program is similar to that of a program linked with -Oreduce, but the link time will be much shorter for larger programs.


Enhancements to lint

The following options have been added:

-j
Enables warnings about explicit narrowing conversions from casts. An explicit cast to a narrower type normally suppresses a warning about a narrowing cast, but not when -j is used.
-J
Suppresses warnings about implicit narrowing conversions by assignments of values to operands of narrower types, unless the right-hand side of the assignment is a variable or a pointer dereference. Also suppresses warnings about expressions that are evaluated using a type narrower than the result.

The following directives have been added:

/*CASTOK*/
Suppresses complaints about casts, including those enabled by the -j option. This directive should be placed before the cast and applies only to the first cast after the directive. If the current statement does not include a cast, then the directive is ignored.
/*SYMUSED*/
Suppresses complaints about a global symbol being defined but never used, or being declared global when it could be static. This directive enables you to use lint on a subset of a program that includes global definitions that are not used within that subset.
/*UNIONOK*/
Suppresses complaints about unions that are issued only with the -t option. This directive should be placed between the union keyword and the final brace of the union definition. If there are nested unions, it applies to the union whose ending brace is seen first.


nm(1) Man Page Clarification

The descriptions of the -g and -e options have been modified as follows:

-g
Print only external (GLOBAL) symbols.
-e
Print only WEAK and GLOBAL symbols.


Changes to Commands


New upsmon Daemon

The new upsmon daemon can be used to monitor a UPS attached to a serial port. upsmon monitors the port for a simple ON-BATTERY signal. When this condition occurs, upsmon executes the /etc/powerfail powerfail script, which is provided with the operating system. upsmon then continues to monitor the serial port. When it sees the OFF-BATTERY condition, it executes /etc/powerfail powerok.

The upsmon program is generic in nature and will monitor any serial port; however, it was written specifically for NUMA-Q systems. For details about running this daemon, see upsmon(1M).


Modified Commands

crash
A new sci_memmap argument has been added to the map command to print the memory map for NUMA-Q systems. See crash(1M).
devctl
The new -q option suppresses the logging of non-error messages in /usr/adm/ktlog. See devctl(1M).
dump
For NUMA-Q systems, the new -s flag causes the dump command to copy the memory image directly to a filesystem without invoking savecore. See dump(8).
fcdl
This utility has been simplified. The Fibre Channel Software Release Notes describe how to download the FC Bridge firmware with this utility.
file
This command can now identify the type of archive files created by the pax command.
infodev
The new -n object option reports the Fibre Channel address of the specified object. See infodev(1M).
monitor
The new -r region_name option displays metrics for the specified region. See monitor(1M).
ps
The run-queue information previously displayed by the -q option is now displayed by -Q. The -q option has been modified to display only those processes belonging to one or more specified run queues.

A new option, -r rgnname, lists processes belonging to the specified region. The new -R option includes information about all regions.

The -o option now accepts the format specifier rgn to list the region to which each process belongs. See ps(1) for details about these options.

rqstat
The new -R option prints the region to which each run queue belongs. See rqstat(1M).
showcfg
The new -c option prints the default showcfg information and the cache size of each CPU. See showcfg(1M).
top2
The new -R option lists the region to which each process belongs. You cannot sort or reorder processes based on this field.

You can configure top2 to display processes belonging to a specified region. To do this, enter one or more regions names in the region field of the process selection screen. See top2(1).


Changes to System Calls and Library Routines


New shmgetv() Routine for NUMA-Q Systems

A new interface, shmgetv(), provides the ability to vectorize shared memory requests on NUMA-Q systems.

REFERENCE
shmget(2)


New Routine for Obtaining the Time of Day

A new routine, gettimeofday_mapped(), returns the current time of day without the overhead of a gettimeofday() system call. It consults a special mapped page in which the time of day is readable by all user processes.

REFERENCE
gettimeofday_mapped(2SEQ)


New Process-to-Process Attachment Facility for NUMA-Q Systems

This release includes a new process-to-process attachment facility that can be used with qfork(), qexec(), and attach_proc(). Process-to-process attachment provides an alternative to attaching a process to a quad. When a process is attached to another process, both processes will always be located on the same quad; however, the system may migrate the processes to another quad to balance the load. If one of the attached processes is migrated to another quad, the other process will accompany it.

A new QUAD_ATTACH_TO_PARENT flag is available for qfork() and qexec() to attach a process to its parent process. The R_PID option is used with attach_proc() to attach a process to an arbitrary process.

REFERENCE
qfork(2SEQ), qexec(2SEQ), attach_proc(2SEQ)


Contents of the V4.4.2 Release

DYNIX/ptx V4.4.2 is primarily a maintenance release and contains the fixes described in Chapter 2. The release also includes the following implementation changes.


Enhancements for C2 Security

The following enhancements and changes have been made for C2 security:


Changes to the Disk Subsystem

The following changes have been made to the disk subsystem:


Changes in the Handling of Kernel and User Priorities

The DYNIX/ptx kernel stores two priorities for a process: the priority the process has when executing user code, and the priority it has when executing kernel code. The priority value is a small integer that is inversely related to the priority (that is, larger values are lower priority).

Processes executing kernel code should always have a higher priority than processes executing user code. In releases earlier than V4.4.2, this was not always the case. In V4.4.2, changes have been made to ensure that processes executing kernel code have a higher priority than processes executing in user mode.

In releases before V4.4.2, the following rules were followed to establish the user-level priority for a process:

In V4.4.2, the following rules apply when establishing the user-level priority of a process:

These changes enable processes executing kernel code to always obtain and release resources as soon as possible, which should give better performance.


New ptx/SPDRIVERS Product

The mx and td drivers, the mc command, and the associated man pages have been moved from the base operating system to a new layered product, ptx/SPDRIVERS. This product provides drivers for devices supported on DYNIX/ptx, including those devices previously supported by ptx/DLT. ptx/DLT is now obsolete and must be deinstalled before the update to V4.4.2.

The ptx/SPDRIVERS product provides support for new devices independently of DYNIX/ptx releases. This product should be installed on your system before configuring the kernel.


RPC Callbacks Are Now Disabled

Because of its potential negative consequences, the RPC callback feature has been disabled in this release.

RPC callbacks enable RPC servers to service client requests while in the middle of a client call to another server (a call has been made to the server, but a reply has not yet been received). While the server is listening for the reply, it can also listen for and service any new client requests.

The use of RPC callbacks can have the following negative consequences:

It is recommended that you do not use the RPC callback feature and has disabled it in V4.4.2 through the new RPC_CBACKS kernel parameter. By default, this parameter is set to 0 (disabled) in the /etc/conf/uts/kernel/i386_space/config file. If you should choose to use RPC callbacks, the parameter can be enabled through the menu system.


Year 2000 Problems Have Been Fixed

All known two-digit year notation problems (also known as year 2000 problems) have been fixed. In some cases, two-digit years were converted to use the full value of the year (currently four digits). In other cases, two-digit years are now interpreted as follows:

70 - 99 = 19xx

00 - 69 = 20xx


Workaround for Intel Pentium CMPXCHG8B Bug

A operating-system workaround has been incorporated for the recently discovered Intel Pentium CMPXCHG8B bug, where an illegal instruction can cause a Pentium processor to "freeze," resulting in a system crash.

DYNIX/ptx and layered products software and other commercial software do not contain this illegal instruction. However, a malicious user could create a program containing the instruction and run the program to crash the system. This crash can be caused by a user with normal access -- root access is not required.

Because a specific invalid instruction is required to cause the crash, the problem will only occur when someone intentionally creates a program and runs it because they want to crash the system. The crash is immediate and all data in volatile memory may be lost. On a system running DYNIX/ptx, the system will either hang, in which case it must be reset and rebooted manually, or it will detect the failing processor, perform a scan dump, and reboot.

The workaround prevents the Pentium processor "freeze" and resulting system crash. To the best of our knowledge, there is no performance impact or compatibility issue associated with the workaround.

This problem only impacts systems containing an Intel Pentium processor. It does not affect systems containing Pentium II, Pentium Pro, i486TM, and earlier processors. The affected systems are Symmetry 5000. NUMA-Q systems are not affected.


SCSI Starvation Avoidance and Command Queueing Are Enabled

On systems with QCIC software V3.4.x installed, the SCSI starvation avoidance algorithm, commonly called Ping-Poll, is enabled by default. SCSI command queueing has also been enabled.


Changes to Commands

The following changes have been made in this release:


Contents of the V4.4.1 Release

DYNIX/ptx V4.4.1 is primarily a maintenance release and contains the fixes described in Chapter 2. The release also includes the following implementation changes:


New Features in the V4.4.0 Release


Support for 16 GB of System Memory

NUMA-Q systems can now use up to 4 GB of physical memory per quad. The maximum physical memory capacity on a 4-quad system is 16 GB. The ENABLE_VLM kernel parameter must be set to 1 on systems with physical memory above 4 GB. This parameter is enabled by default on NUMA-Q systems.

The maximum physical memory on CSM-based systems remains at 3.5 GB.


C2-Level Security

The following enhancements have been made to support C2-level security. For more information, refer to the DYNIX/ptx System Administration Guide.


Process Migration

DYNIX/ptx V4.4 supports both automatic and user-requested process migration for NUMA-Q systems. Both forms of process migration involve moving a process' text, data, stack, page tables, and other related memory structures from one quad's memory to another. Process migration is transparent to the process being migrated; the only effect on the process is a delay during the migration. The time required to migrate a process is similar to the time required to do a qexec() to a remote quad.


Automatic Process Migration

The goal of automatic process migration is to correct load imbalances among the quads of a system. Load imbalances occur dynamically as a result of processes waiting for I/O, continuing after such waits, or terminating. Using a 2-quad system as an example, we might at some moment find that eight processes are running, six of which reside on quad 0 and two on quad 1.

Rather than remain idle, the two "extra" processors on quad 1 will execute the two "excess" processes on quad 0. Without process migration, they must access those processes' text and data remotely, resulting in reduced performance for those processes. As long as the imbalance persists, the remotely executed processes on quad 0 will perform significantly more poorly than the processes executed locally.

The automatic process migration facility can identify such imbalances and migrate the excess processes from an overloaded quad to an underloaded quad, allowing those processes to be executed locally rather than remotely. To avoid constantly "thrashing" processes between quads, processes are migrated between quads only when the imbalance is large enough and persists long enough to make the migration worthwhile.

The automatic process migration facility determines which quads have excess processes and which have process shortages, identifies suitable processes to migrate, and transparently migrates those processes to their new home quads.


User-Requested Process Migration

Users can explicitly request that processes be migrated by using either the attach_proc command or the attach_proc() system call. These commands "attach" a process to a quad or set of quads; if the process is not already located on the specified quad, it will be migrated to that quad. If more than one quad is specified, the process is migrated to the "best" quad in that set, taking process load and memory availability into consideration. Also, the process is marked so that automatic process migration will not transparently move the process from that set of quads.

Later, if it is no longer necessary for the process to be attached to a quad, it can be detached using either the detach_proc command or the detach_proc() system call. These commands "unmark" the process, making it eligible for automatic migration.

To determine one or more suitable quads for a process, use either the quad_loc command or the quad_loc() system call. These commands identify suitable quads according to the specific processes already residing on them, the shared memory segments located on them, the devices attached to them, and so on.

REFERENCE
attach_proc(1M), detach_proc(1M), quad_loc(1M), attach_proc(2SEQ), detach_proc(2SEQ), quad_loc(2SEQ)


Multipath Devices

DYNIX/ptx now supports multipath devices, which can be accessed through more than one physical path. Both NUMA-Q and Symmetry systems can be configured to provide multiple paths to an I/O device.

Multipath access is provided in two ways:

Using multipath devices increases both system availability and performance. If a path to a device becomes unavailable because of hardware failure or other system problems, the operating system will use another path to access the device.

On Symmetry systems, the use of multipath devices can improve performance by allowing the system to balance its workload over multiple paths. On NUMA-Q systems, multiple paths enable the operating system to avoid remote disk accesses and thereby speed up processing.


Shared Devices

DYNIX/ptx now supports both local and shared devices. Devices connected directly to the PCI/SCSI interface (NUMA-Q systems) or the CSM (CSM-based systems) are considered to be local devices. All other devices are shareable.

The dumpconf output specifies whether devices are local or shareable. The boot disk must be a local device, as well as all devices used for primary swap, firmware (CSM-based systems), and dump space.


Additional Peripheral Support

The 9-GB disk drive is supported in V4.4. The default VTOC for this disk is located in /etc/vtoc/ibms9w.


Implementation Changes in the V4.4 Release


Autoconfiguration and Device Naming

Device names are stored in a device naming database instead of being specified in the system configuration file. When the system is booted, the autoconfiguration procedure locates each device on the system. If a device is listed in the naming database, the autoconfiguration procedure assigns the appropriate name to the device. If a device is not included in the naming database, the autoconfiguration procedure will assign a temporary name to the device. By default, when the system transitions to multiuser mode, it will assign permanent names to devices having temporary names.

The device naming database provides much more flexibility than the device configuration method used in previous releases. Because device names are no longer determined by the physical location of the device, a device can be moved from one location to another and still retain its original name. Also, administrators can assign their own device names.

The devctl command is used to assign device names and to configure and deconfigure devices. The dumpconf command displays information about the system configuration. For more information about the device naming database and the devctl and dumpconf commands, refer to the DYNIX/ptx System Configuration and Performance Guide. If you are currently running an earlier version of DYNIX/ptx, be sure to review this information. Major changes have been made to the naming database and to the devctl and dumpconf commands.


System Booting

For normal boots, only the root device must now be specified in the bootstring. A new boot-time configuration file, /etc/system/boot, contains the location of the primary swap partition and the naming database, making it unnecessary to specify these items in the bootstring.

The old stand-alone notation is no longer used to specify the root device. This notation has been replaced by a physical path specifier, which indicates the physical hardware path to the device.

Several new boot options are also available for other booting scenarios.

The DYNIX/ptx System Administration Guide describes system booting in detail. The DYNIX/ptx and Layered Products Software Installation Release Notes also include a summary of the booting procedure. Also refer to the boot(4), physpath(8), and unix(8) man pages.


Kernel Parameters


New ENABLE_VLM Parameter

A new kernel parameter, ENABLE_VLM, has been added to support NUMA-Q systems with very large memories in which physical memory can be located above 4 GB. This parameter does not apply to Symmetry systems.

By default, this parameter is set to 1 to enable large memory support. If your system has physical memory above 4 GB, do not set this parameter to zero.

When ENABLE_VLM is set to 1, the system uses 64-bit wide page-table entries to address system memory, doubling the size of all page tables. If your NUMA-Q system does not have memory above 4 GB, you can set the parameter to zero to save memory. (Use the ptx/ADMIN® Kernel Configuration option to reset the parameter.)

However, if you add memory above 4 GB, you must restore the ENABLE_VLM parameter to its default value of 1, and then rebuild and install the kernel before rebooting the system. If the parameter is set to 0 on a system with memory above 4 GB, the system will panic when you attempt to boot it because the page-table support needed to address the memory has been disabled.


NMOUNT Parameter

The NMOUNT parameter specifies the maximum number of mounted filesystems that can exist at any one time. The default value for this parameter has been increased to 128. Previously, the default value was 32. If you have modified this parameter in your site file, you may want to modify it again.


BUFPCT Parameter

The range of acceptable values for the BUFPCT parameter is now 1 to 95. Previously, it was 5 to 95.


NABUF Parameter

The default value for the NABUF parameter is now 256. Previously, it was 200. Two related parameters have also been added:

NABUF_DYN_MULT
A scaling multiplier for added dynamic NABUF allocation. The default value is 1; the range of values is 0 to unlimited. The default values for NABUF_DYN_MULT and NABUF_DYN_DIV result in an additional dynamic NABUF allocation of 50%.
NABUF_DYN_DIV
A scaling divisor for added dynamic NABUF allocation. The default value is 2; the range of values is 1 to any number. The default values for NABUF_DYN_MULT and NABUF_DYN_DIV result in an additional dynamic NABUF allocation of 50%.

Fibre Channel Changes

DYNIX/ptx V4.4.x supports the following fabric protocols:


Devices


Device Names

Previously, device names consisted of the device type followed by a number, such as sd0. In V4.4, you can assign your own device names. The names must consist of a string of alpha characters followed by a string of numeric characters. The maximum number of characters in a device name is 15.


Creation of Device Nodes

Device nodes exist permanently in /dev. When you add a new device or rename an existing device with the devctl command, it automatically creates or revises the appropriate device nodes. Also, when you use devctl to unname a device or remove device entries from the naming database, the command will automatically remove the appropriate device nodes.

A new set of files, /etc/devinfo/*.info, define how device nodes are to be created for each supported device type.

The /dev/MAKEDEV command is still used to create device nodes for pseudodevices.


Disk Partitioning

The following partition types have been added:

V_MINIROOT
Used to create or load and boot the custom miniroot, which can be used during disaster recovery. This partition appears as a type 9 partition in the VTOC.
V_SVM_PVT
Reserved for ptx/SVM database use. This partition appears as a type 8 partition in the VTOC.

Default VTOCs

DYNIX/ptx provides two default VTOCs for each supported disk type. The names of the VTOCs have the form <disk_type> and <disk.type>.scan. The .scan version of the VTOC is intended to be used on the root disk only. It includes a SCAN dump partition and a custom miniroot partition. The other version of the VTOC is intended for general use.

A custom miniroot partition (partition 9) has been added to the root VTOCs in this release. This partition should be used when creating a custom miniroot and during system recovery operations that require loading and booting the custom miniroot. A partition 8 for ptx/SVM use has also been added.

The general-use VTOCs have been modified to include a partition 8 for ptx/SVM use.

Also, most default VTOCs have been modified to increase the size of partitions 0, 1, and 2. Partition 3 has been removed.


Core Dumps on NUMA-Q Systems

Two types of core dumps can be saved on NUMA-Q systems: a dump of only CSYS memory pages, or a dump of all memory pages. The default is to dump only CSYS memory pages. This type of dump is faster and requires less disk space. The DYNIX/ptx V4.4 System Recovery and Troubleshooting Guide describes how to set up the system to save core dumps.


New Dumplist Format

The format of the /etc/dumplist file has been changed in V4.4.

Regular dumplist entries now have this form:

dump_device offset [size]

Per-quad dumplist entries (NUMA-Q systems only) now have this form:

quad dump_device offset [size]

On NUMA-Q systems, the dump_device must be a UNIX® filename such as /dev/rdsk/sd5s1. On CSM-based systems, it must be a physical path specifier such as slic(22,1)scsi(5,0)disk(0). The offset and size have the same meaning as in previous releases of DYNIX/ptx and are described in the dump(8) man page.

If the entries in the file are not correct, you can either update them manually or re-enter the dump devices on the ptx/ADMIN "Modify the Kernel and Dumper Bootstrings" form.


usrlimit Password Is Now Set Automatically

Previously, the usrlimit password had to be set in the /etc/passwd and /etc/shadow files to allow more than one user to log into the system. Systems are now shipped with the usrlimit password set to allow unlimited logins. The Change usrlimit Password menu option has been disabled.


Requirements for Login Names

For POSIX compliance, the requirements for login names have been modified. Login names can now consist of a string of alphanumeric, period, underscore, and hyphen characters. The first character in a login name cannot be a hyphen.

Previously, login names were restricted to lowercase alphanumeric characters; the first character could not be numeric.


New and Changed System Files and Directories


Location of /usr

As of the V4.3 release, /usr is a directory in the root filesystem, rather than a separate filesystem. When you perform a scratch installation, root and /usr will be installed in the same partition.


New Security Parameters in /etc/site_secp

The following security parameters have been added to the /etc/site_secp file.

The first two parameters can be set on the ptx/ADMIN View and Change Site Security Parameters form. The perform_keylogin parameter must be set manually in the /etc/site_secp file. For more information, see the DYNIX/ptx System Administration Guide.


Changes to File Permissions

To increase system security, the permissions have been changed on the following files and directories.

File

Old Mode

New Mode

/usr/spool/cron/crontabs

0755

0700

/usr/spool/cron/atjobs

0755

0700

/usr/spool/cron/ataudit

0755

0700

/usr/spool/cron/cronaudit

0755

0700

/usr/spool/cron/crontabs

0755

0700

/usr/spool/cron/crontabs/adm

0644

0600

/usr/spool/cron/crontabs/lp

0644

0600

/usr/spool/cron/crontabs/root

0644

0600

/usr/spool/cron/crontabs/sys

0644

0600

/usr/spools/cron/crontabs/sysadm

0644

0600

/usr/spool/cron/cronaudit/adm

0644

0600

/usr/spool/cron/cronaudit/lp

0644

0600

/usr/spool/cron/cronaudit/root

0644

0600

/usr/spool/cron/cronaudit/sys

0644

0600

/usr/spools/cron/cronaudit/sysadm

0644

0600

/usr/lib/cron

0755

0700

/usr/lib/cron/.proto

0744

0700

/usr/lib/cron/at.allow

0644

0600

/usr/lib/cron/at.deny

0644

0600

/usr/lib/cron/cron.allow

0644

0600

/usr/lib/cron/cron.deny

0644

0600

/usr/lib/cron/queuedefs

0644

0600

/usr/lib/cron/logchecker

0544

0500



Changes to the ptx/C Compiler

The following changes have been made to the ptx/C compiler in the V4.4 release:


Changes to Secure RPC

The base operating system and layered products consult several databases for information about hosts, users, groups, and so forth. There can be multiple sources for the information in a particular database. For example, host names and addresses can be found in /etc/hosts, or the NIS or NIS+ databases. A new configuration file, /etc/nsswitch.conf, specifies the sources for each database and the order in which the sources should be consulted. The secure RPC commands and functions have been modified to use this file if it exists. For information about setting up this file, which is provided with ptx/NFS, refer to nsswitch.conf(4).


Commands


New Commands

The following commands have been added in V4.4:

allocate
Allocates a device to a specific user. See allocate(1M).
attach_proc
Attaches a process to a quad in a specified set of quads. See attach_proc(1M).
deallocate
Releases a previously allocated device. See deallocate(1).
detach_proc
Detaches the specified processes from the quads to which they are currently attached. See detach_proc(1M).
devalloc
Enables or disables the device allocation feature. See devalloc(1M).
ndbdump
Displays the contents of the device naming database in ASCII format. See ndbdump(1M).
quad_loc
Finds the quad or set of quads containing a specific resource. See quad_loc(1M).

Changes to Commands

apropos, whatis
New options: -C forces the standard English version of the man-pages database to searched, regardless of the settings for the LANG or LC_MESSAGES variables; -P specifies a list of paths for the location of the man-pages database. If -P is not used, the location is taken from the variable MANPATH; if this variable is not set, /usr/catman will be used. See apropos(1) and whatis(1).
auscan
New -N option suppresses the conversion of relative pathnames to absolute pathnames. See auscan(1M).
bootflags
Supports the new physical path specifier in bootstrings. Also supports the new opmode/autoDump values for NUMA-Q systems. See bootflags(1M).
cc
When the -g and -O options are specified, the compiler now generates the same code that it would without the -g and provides a limited amount of debugging information. Two new pragmas, sequent_assert_field_alignment and sequent_assert_field_offset, have also been added. See cc(1) for information about the -g and -O options and the new pragmas. See debug(1) for caveats regarding the use of -g with optimization.
chkey
Now supports storing the key pair in the /etc/publickey file or the NIS or NIS+ databases. The command will consult the name-service switch configuration file if the location of the key pair is not specified on the command line. See chkey(1) for more information.
ccompress
This command has been removed. In V4.4, the savecore program always compresses the core file.
devctl
The options have changed. See devctl(1M) and the DYNIX/ptx System Configuration and Performance Guide for details.
dumpconf
The options and output have changed. See dumpconf(1M) and the DYNIX/ptx System Configuration and Performance Guide for details.
fstyp, fstyp_ufs
New options: -o offset specifies the offset, in disk blocks, where the superblock for the filesystem is located; -t reports the time stamp from the superblock. See fstyp(1M) and fstyp_ufs(1M).
getty
When the c2system parameter is set to on in the /etc/site_secp file, getty attempts to flush the terminal's buffers before allowing a user to log in. This prevents the user from using the Page-Up key to determine the activities of the previous user. The new -n option disables flushing of the terminal's buffers. The -n option is typically used with the system console to prevent loss of system messages. The -n option is ignored when the c2system parameter is set to off. See getty(1M).
keylogin
Now supports the use of the name-service switch configuration file. A new -r option updates the /etc/.rootkey file, which holds the unencrypted secret key of the superuser. Refer to keylogin(1) for details.
keylogout
Now supports the use of the name-service switch configuration file. A new -f option forces the command to delete the secret key for the superuser. Refer to keylogout(1) for details.
keyserv
Now supports the use of the name-service switch configuration file. A new -d option disables the use of default keys for user nobody; -D runs the command in debugging mode. Refer to keyserv(1M) for details.
lprof
New -C option to print decoded C++ symbol names. See lprof(1).
man
New options: -a displays all man pages having the same name; -S section_list tells man to search the specified sections for a particular man page. The -P option now specifies a list of paths for the location of the man-pages database. If -P is not used, the location is taken from the variable MANPATH; if this variable is not set, /usr/catman will be used. See man(1).
mkvtoc
Supports new partition types (V_SVM_PVT for ptx/SVM databases, V_MINIROOT to hold a custom miniroot). See mkvtoc(1M).
newkey
Supports the use of the name-service switch configuration file. A new -s option specifies the database containing the key pair. Refer to newkey(1M) for details.
nulladm
The mode of the file that nulladm creates has been changed from 664 to 644. See acctsh(1M).
passgen
Several new options have been added to allow the administrator to change attributes associated with a user's password. See passgen(1) for details.
prof
New -C option to print decoded C++ symbol names. See prof(1).
ps
New -q option displays the run queue to which a process is assigned. This option cannot be used with the -f, -F, -l, or -L options. See ps(1).
savecore
The vmcore file is now always saved in compressed format.
strstat
In the V4.3 output, the value in the FREE column rose slowly following a stream buffer allocation failure. It now rises rapidly, as it did in V4.2 and previous releases.
SCCS
SCCS files can now contain up to 380,304,031 lines. Previously, these files were limited to 99,999 lines.

System Calls and Library Routines


SI86MEM Command Is Now Obsolete

The SI86MEM option to the sysi86() system call is now obsolete. In previous releases, this command returned the total amount of memory in the system, specified in bytes. Because the return value for sysi86() is a 32-bit field, it is not possible to return the full amount of memory for systems having 4 GB or more of memory. Therefore, the SI86MEM command has been removed in V4.4.

Existing binaries using this interface will continue to be supported. For these binaries, if the system has 4 GB or more of memory, the return value will be truncated to specify that there are (4GB -1) bytes of memory.

The sysi86(2) man page describes alternatives that can be used in place of SI86MEM. If you have a program that used SI86MEM, you can change the source code to use an alternate interface for retrieving the amount of system memory and then rebuild the program.


New System Calls and Library Routines

attach_proc
Attaches a process to a quad that contains memory related to a specific resource. See attach_proc(2SEQ).
byteorder
Routines to convert values between the host and network byte orders. These routines were previously included in ptx/TCP/IP. See byteorder(3N).
cfg_info
New routines to read or search for information in the autoconfiguration graph. See cfg_info(2SEQ).
detach_proc
Detaches a process from the quad to which it was previously assigned. See detach_proc(2SEQ).
DIO_Await
Returns status of completed asynchronous I/O requests generated by DIO read and write calls. The call is similar to DIO_Apoll, but has some different arguments. See DIO(2SEQ).
getbootflags, setbootflags
Retrieves or sets the system boot parameters. See getbootflags(3SEQ).
gethostid
Returns the identifier for the current host. See gethostid(3C).

Changes to System Calls and Library Routines

getgrent
Now supports the name-service switch configuration file (/etc/nsswitch.conf). See getgrent(3C).
getprpsinfo
DYNIX/ptx extensions have been added to the prpsinfo_t structure for NUMA-Q systems.
getpwent
Now supports the name-service switch configuration file (/etc/nsswitch.conf). See getpwent(3C).
getrpcent
Now supports the name-service switch configuration file (/etc/nsswitch.conf). See getrpcent(3N).
getspent
Now supports the name-service switch configuration file (/etc/nsswitch.conf). The getspent and getspnam routines contain a new field, sp_failcnt. See getspent(3X).
publickey
Now supports the name-service switch configuration file (/etc/nsswitch.conf). See publickey(3N).
qexec
The PRIV_SCHED privilege is no longer required to do a QUAD_INSIST. See qexec(2SEQ).
qfork
The PRIV_SCHED privilege is no longer required to do a QUAD_INSIST. qfork, shqfork, and shfork now return -1 on error. See qfork(2SEQ).
sync_op
New commands: SYNC_POSTVEC posts an event to multiple processes in a single operation; SYNC_GETHANDLE obtains a process handle for the specified process ID. See sync_op(2SEQ).
sysi86
The SI86MEM command has been removed. See the earlier section, "SI86MEM Command Is Now Obsolete" for details.

New Features and Implementation Changes in the V4.3.0 and V4.3.1 Releases

This section describes changes that were made in the DYNIX/ptx V4.3.0 and V4.3.1 releases. If you are updating from DYNIX/ptx V4.1 or V4.2, be sure to review this information.


Support for New Platform

DYNIX/ptx V4.3 supports NUMA-Q systems, which feature distributed shared memory (NUMA architecture), and PCI peripheral devices connected through both SCSI and Fibre Channel host adapters.


New Software Installation Procedure

The previous installation procedure has been replaced by a new layered product, ptx/INSTALL, that provides a versatile method for installing DYNIX/ptx software packages.

ptx/INSTALL and the installation procedure are described in the DYNIX/ptx and Layered Products Software Installation Release Notes. The ptx/INSTALL Software Installation Guide contains supplementary information about the installation procedure.


Custom Miniroot

The V4.3 release provides a new buildmini utility that can be used to create a custom miniroot. A custom miniroot contains a minimal set of functionality from the base operating system and the layered products that were on the system when the miniroot was built. The custom miniroot can be used to restore the operating system following a system failure. For information about creating a custom miniroot, refer to the DYNIX/ptx System Recovery and Troubleshooting Guide.


Changes to Devices


Disk Partitioning and VTOCs

The maximum number of partitions that can be created on a disk is now 62. The partitions are numbered starting from 0.

Most default VTOCs have been modified to increase the size of partitions 0, 1, and 2. Partition 3 has been removed.


Pass-Through Drivers

The V4.3 release provides the following pass-through drivers:

scsibus
Allows user-level programs to send SCSI commands to devices and receive SCSI status back. See scsibus(7).
fabric
Allows user-level programs to send FCP commands to devices and receive FCP status back. See fabric(7).

Onlining and Offlining Devices

The diskonline, diskoffline, tapeonline, and tapeoffline commands have been replaced by the new devctl command. For details about devctl, see the DYNIX/ptx System Configuration and Performance Guide and the devctl(1M) man page.


Disk Formatting

Disks on NUMA-Q systems can be formatted only with the online format utility. The stand-alone CCSformat utility is available only for CSM-based systems.


Kernel Configuration


Kernel for NUMA-Q Systems

A new directory, /etc/conf/uts/symmetry/sci, contains the kernel files for NUMA-Q systems. This directory includes a system-configuration file (unix_sci.std) and a modules file (unix_sci.mod) that specify modules specific to NUMA-Q systems.


Kernel Parameters

The following tunable parameters have been added:

DIAGMEMSZ
Specifies the size (in MB) of the physical memory buffers used for running diagnostics on an individual quad of a NUMA-Q system. The default value is 3; the range of values is 0 through 16.
STRRESMULT, STRRESDIV, STRRESINCR
Determines the size of the pool from which stream buffers (and other DMAable memory) are allocated. See the DYNIX/ptx System Configuration and Performance Guide for details.

Changes have been made to the following parameters. If you have modified these parameters in your site file, you may want to modify them again.

MAXAIO
Specifies the maximum number of pending asynchronous requests per process. The default value is now 50. In the previous release, it was 10.
NABUF
Specifies the number of asynchronous I/O buffers available. The default value is now 200. In the previous release, it was 50.
SHMMAX
Specifies the maximum size of a shared memory segment. The default value is now 64 MB. In the previous release, it was 16 MB.
NPROC
Specifies the maximum number of processes that can be running at any one time. The maximum value for this parameter is now 30,000. Previously, there was not an upper bound for this parameter.
NBLK4, NBLK16, ... NBLk4096
In DYNIX/ptx V4.2 and earlier, these parameters specified the exact number of stream buffers that could be allocated for each size class. For example, if NBLK4 was set to 40,000, then at most 40,000 4-byte stream buffers could be in use at any time. In DYNIX/ptx V4.3 and later releases, these parameters instead specify the size of the reserve pools. For example, if NBLK4 is set to 5,000, then at least 5,000 4-byte STREAMS buffers may be allocated. For more information about this implementation change, refer to the DYNIX/ptx System Configuration and Performance Guide.

maxRSS Is Now Tunable

The maxRSS virtual-memory parameter, which specifies the maximum resident-set size, can now be modified on a per process basis. (Previously, maxRSS could be modified but the effect was system-wide.) A new command, /etc/maxrss, allows a user with the appropriate privileges to reduce the value of maxRSS for a specific command. The maxrss command has this syntax:

/etc/maxrss limit command [arguments]

maxrss executes the specified command with a maximum resident-set size of limit KB.

For more information, see maxrss(1M) and proc_ctl(2).


Filesystems


New Memory Filesystem

DYNIX/ptx supports a new pageable, memory-based filesystem type called MFS.

MFS filesystem images are held in virtual memory associated with processes created by the mount process. The contents of the filesystem are lost when the filesystem is unmounted or the system is shut down. To lock an MFS mount process into physical memory, use the noswap command.

MFS filesystems are constructed and mounted using the mount -f mfs option. Additional options can be specified with -o (the options must be separated by commas):

-s=size
The size of the filesystem in 512-byte blocks.
-p=nprocs
The number of processes that will be used to handle I/O for the filesystem. If the filesystem is used frequently, it can be processed more efficiently by multiple processes. The default for nprocs is 1.
[newfs_options]
As specified in newfs_ufs(1M).

An MFS device number must be associated with each MFS filesystem. To let the system choose a device number, use /dev/dsk/mfs as the device to be mounted. To specify a device number manually, use/dev/dsk/mfs[n], where [n] is the device number. For example, /dev/dsk/mfs3 is device number 3. While the filesystem is mounted, filesystem utilities such as dump and ff can access the raw filesystem through /dev/dsk/mfs[n] and /dev/rdsk/mfs[n].

MFS filesystems can be included in the /etc/vfstab file or mounted manually. Following are some sample vfstab entries.

/dev/dsk/mfs /dev/rdsk/mfs /mfs3 mfs - yes -s=60000,-p=6
/dev/dsk/mfs4 /dev/rdsk/mfs4 /mnt mfs - yes -s=60000,-p=6

To mount an MFS filesystem manually, use the mount command and specify -f mfs and the appropriate -o options. Following are some examples.

# mount -o -s=10000,-i=8192,-p=1 -f mfs /dev/dsk/mfs1 /mnt

# mount -o -s=40000,-p=8 -f mfs /dev/dsk/mfs /mnt2

REFERENCE
mount_mfs(1M)


CDFS Filesystem Now Includes Rock Ridge Extensions

Version 1.09 of the Rock Ridge Interchange Protocol (RRIP) has been implemented in V4.3. This protocol is an extension to the ISO 9660 format for CD-ROM. It provides CD-ROM support for POSIX filesystem semantics including UNIX-style filenames, file types, file permissions, and directory hierarchies. Sparse files are not supported.

The protocol defines a set of System Use Fields for recording the following:

The cdsuf command can be used to access the System Use Fields. See cdsuf(1M) for more information.


/etc/constab File Has Been Removed

In the previous release, the /etc/constab file was used to store a list of constructed devices. The constab entries are now maintained in shared memory and are no longer written to /etc/constab. The devbuild command (with no options) and the library function read_constab can be used to list the constab entries. See read_constab(3SEQ).


Changes to ptx/ADMIN


Software Management Menu

The Install Software Package option now invokes the ptx/INSTALL installation procedure. For details about this procedure, see the DYNIX/ptx and Layered Products Software Installation Release Notes. The Preview Software Package and Preload Software Package options have been removed.


Set Bootflags and Strings Option

The "Modify the Kernel and Dumper boot strings" form contains a new "per-quad" memory dump option that creates a separate dumplist for each quad. It also contains new options for specifying the permanent bootstring. For details, see the DYNIX/ptx System Administration Guide and the DYNIX/ptx V4.4 System Recovery and Troubleshooting Guide.


Printer Management Menu

The Printer Management menu contains a new option, Display Printer Definition, that lists the configuration of the printers you specify. It uses the lpstat -p and -l options to obtain the information.


Commands


New Stand-Alone Commands

The following stand-alone commands have been added to support NUMA-Q systems:

bootstrap
Load and start the stand-alone kernel. See bootstrap(8).
standload
Boot the operating system or a stand-alone utility from the stand-alone kernel. See standload(8).

New Operating-System Commands

The following commands have been added in the V4.3 release:

bcheckrcsau
Check the root filesystem on the stand-alone kernel during system initialization. See bcheckrc(1M).
buildmini
Create a custom miniroot. See the DYNIX/ptx System Recovery and Troubleshooting Guide and buildmini(1M).
cddevsuppl
Get or set the major and minor numbers of a device file on a CD-ROM. See cddevsuppl(1M).
cdsuf
Read the system use fields from the system use area of a file on a CD-ROM. See cdsuf(1M).
devctl
Configure, deconfigure, or rename devices. See the DYNIX/ptx System Configuration and Performance Guide and devctl(1M).
ffdbck
Check the consistency of the password, shadow, and group databases. See ffdbck(1).
ktexpire
Remove expired ktlog files. See ktexpire(1M).
maxrss
Adjust the maximum resident-set size for a process. See maxrss(1M) and proc_ctl(2).
mount_mfs
Construct, mount, and unmount memory-based filesystems. See mount_mfs(1M).
pwcat, grcat
Provide shell-level access to the password and group databases. See pwcat(1).
showquads
Display information about the quads in a NUMA-Q system. See showquads(1M).
top
Display and update information about the top CPU processes. See top(1).
top2
Display the most resource-intensive processes. See top2(1).

Changes to Commands

The following commands have been modified in V4.3. For details about these commands, refer to the appropriate man page.

bootflags
Assignments have been added to support NUMA-Q systems. See bootflags(1M).
cc
New -Wc,-P6 option performs optimizations specific to the Pentium Pro and generates code suitable for Pentium Pro processors. See cc(1).

New pragmas:

config
Supports kernel configuration on NUMA-Q systems.
debug
The syscall command has new options: -c count specifies the number of times a call must occur before the event is triggered; -t table is used to specify DYNIX/ptx-specific system calls. See debug(1).

debug can now read and execute the debugger commands specified in a startup file whenever a new process is created, grabbed, or executed. The debugger does not echo the commands before executing them. To use the startup file, set the %procrc variable to the name of the file. You can specify either a relative or full pathname. The following example sets the variable to the file newproc.cmd in the current directory.

set %procrc "./newproc.cmd"

diskid
The output has changed to reflect the autoconfiguration model. See pbayid(1M).
dump
The dump(1) command has been enhanced to extract more information from core files. A new -S option dumps core file segments. The option has the syntax -S number or -S number1, number2. It dumps core file segment number or the range of core file segments starting at number1 and ending at the number2. When the -v option is used with -S, core file segments that can be interpreted (such as the note segment) will be interpreted. The core file segment numbers appear in the dump of the program header in the core file (the -o option).

The output from -o now includes segment numbers when the program header in a core file is dumped. These segment numbers can be used with the new -S option.

dumpconf
The output format has changed to match the new autoconfiguration process. See dumpconf(1M).
format
No longer supports zd devices.
fsck
New-v vfstab_file option causes fsck to check the filesystems specified in vfstab_file. See fsck(1M).
fsck_ufs
The man page now defines the -o options specific to ufs filesystems. See fsck_ufs(1M).
infodev
The output has changed to reflect the new autoconfiguration model. See infodev(1M).
ld
New options: -Bexport exports global and weak symbols within dynamic executables by making them visible to shared objects; -Bhide hides global and weak symbols in a shared object so that they are not visible outside of that shared object; -z objlist:objfile gets the names of object or archive files from objfile. See ld(1).
lint
New -t option checks portability to an LP64 implementation of C. It assumes different sizes for basic data types, including 64 bits for long and pointers and 32 bits for int. See lint(1).
makealises
No longer creates a database for COFF man pages.
man
The -coff option is no longer supported.
monitor
New -q option specifies the quad number for which the system activity measures are to be displayed. New -s option displays streams activity. See monitor(1).
mountall
New -v vfstab_file option forces mountall to mount filesystems according to the specified vfstab_file instead of the standard /etc/vfstab. See mountall(1M).
pbayid
Only the device name now needs to be specified to display information for a specific Pbay. See pbayid(1M).
sar
The format of the data file has changed. See sar(1M).
showprocs
Displays the quad number and agent ID on NUMA-Q systems. See showprocs(1M).
strstat
For a description of how the changes to the NBLK* parameters are reflected in the output from srtstat, refer to the DYNIX/ptx System Configuration and Performance Guide.
vi
The man page now describes rvi, which is the restricted version of vi. See vi(1).
vmtune
New -F option allows parameters to be specified in a file. See vmtune(1M).

System Calls


New System Calls

The following system calls have been added in the V4.3 release:

cd_getdevmap
Get mappings of major/minor numbers for a device file on a mounted CD-ROM. See cd_getdevmap(2SEQ).
cd_setdevmap
Set mappings of major/minor numbers for a device file on a CD-ROM. See cd_setdevmap(2SEQ).
cd_suf
Read a system-use field for a specified system-use area for a file on a CD-ROM. See cd_suf(2SEQ).
cfg_ctl
Enable processes to request or change configuration information for a particular device. See cfg_ctl(2SEQ).
get_disk_stats
Get disk statistics information. See get_disk_stats(2SEQ).
get_ndisks
Get the number of disks configured in the system. See get_ndisks(2SEQ).
get_ntapes
Get the number of tape drives configured in the system. See get_ntapes(2SEQ).
get_tape_stats
Get tape statistics information. See get_tape_stats(2SEQ).
getkerndata
Obtain the contents of a kernel data structure. See getkerndata(2SEQ).
mmapq, mmap64q
Variants of mmap and mmap64 that restrict the set of quads upon which shared pages will be allocated for the given mapping. See mmap(2).
quademptyset
Initialize the specified quad set such that no quads are included in the set. See quademptyset(2SEQ).
quadfillset
Initialize the specified quad set such that all currently configured quads are included in the set. See quademptyset(2SEQ).
quadaddset
Add the specified quads to the set. See quademptyset(2SEQ).
quaddelset
Delete the specified quads from the set. See quademptyset(2SEQ).
quaddiffset
Find the members contained in the first quad set, but not the second set. See quademptyset(2SEQ).
quadismember
Test whether the specified quad is a member of the specified set. See quademptyset(2SEQ).
quadisemptyset
Test whether the specified quad set is empty. See quademptyset(2SEQ).
quadandset
Perform logical "and" operations on the specified quad sets. See quademptyset(2SEQ).
quadorset
Perform logical "or" operations on the specified quad sets. See quademptyset(2SEQ).
qexec
Execute a file. These routines are the similar to exec, but allow quad placement to be specified.
qfork, shfork, shqfork
Create a new process. See qfork(2SEQ).

quad_loc
Locate the quad set containing a specific resource. See quad_loc(2SEQ).
shmatvw
Attach a virtual window to a shared-memory segment. See shmatvw(2SEQ).
shmgetq
A variant of shmget that allocates pages on quads. See shmget(2) and shmgetq(2SEQ).
sysboot
Boot the uptime kernel from the stand-alone kernel on a NUMA-Q system. See sysboot(2SEQ).
virtwin
Create new virtually windowed address translations to a mapped object. See virtwin(2SEQ).
vm_getinfo
Examine system-memory information. See vm_getinfo(2SEQ).

Changes to System Calls

The following system calls have been modified in V4.3. For details, refer to the appropriate man page.

getprpsinfo
The prpsinfo_t structure now includes an entry for pr_maxrss, which specifies the maximum resident-set size per process.
mmap
The prototype definition has changed. All parameters of type caddr_t have been changed to void *.
mprotect
The prototype definition has changed. The first parameter of type caddr_t has been changed to void *.
msync
The prototype definition has changed. The first parameter of type caddr_t has been changed to void *.
proc_ctl
The command PROC_MAX_RSS has been added.
shmget
A new flag, SHM_VIRTWIN, has been added. This flag indicates that all pages in the hard-locked segment are to be "virtually windowed" by all processes that attach to the segment. See shmget(2).
sigaction
The prototype for sa_handler has been changed from void (*)() to void (*)(int) . See sigaction(2).
sysconf
New IOV_MAX variable specifies the maximum number of iovec structures that one process has available for use with readv() or writev().
tmp_ctl
New commands have been added to support quads: TMP_NQUAD, TMP_ENGTOQUAD, TMP_QUADNEXTENG, TMP_QUADTOENG.
umask
Now requires header file <sys/stat.h> instead of <sys/types.h>.

Library Routines


libxio Is Obsolete

The libxio library is obsolete and has been removed from the V4.3 release.


New Library Routines

The following library routines have been added in the V4.3 release:

basename
Return the last component of a pathname. See basename(3X).
boot
Boot the uptime kernel from the stand-alone kernel on NUMA-Q systems. See boot(3SEQ).
bsd_signal
Simplified signal facilities. See bsd_signal(3C).
cfg_graph
Routines that get a snapshot of the system configuration graph and perform various operations on it. See cfg_graph(3SEQ).
dirname
Return the parent directory name of a file pathname. See dirname(3X).
engdata_init
Establish access to the getengno and getquadno interfaces. See engdata(3SEQ).
expm1
Compute exponential functions. See expm1(3M).
getengno
Return the engine number on which the specified process is running. See engdata(3SEQ).
getquadno
Return the quad number on which the specified process is running. See engdata(3SEQ).
getprrssinfo
Obtain resident-set size information for a selected process. See getprrssinfo(3C).
getutx
Routines for accessing the utmpx database. See getutx(3C).
getwd
Get pathname of current working directory. See getwd(3C).
ilogb
Return an unbiased exponent. See ilogb(3M).
initstate
Restart the random-number generators. See random(3C).
insque
Insert an element in a queue. See insque(3C).
killpg
Send a signal to a process group. See killpg(3C).
len386
Compute the length of an instruction. See dis386(3SEQ).
_longjmp
Same as longjmp. See_longjmp(3C).
mkstempt
Make a unique filename. See mkstemp(3C).
mq_set_procs
Same as m_set_procs, but also specifies the quads on which the processes are to be initiated. See m_set_procs(3PPS).
random
Return random numbers. See random(3C).
realpath
Resolve path names. See realpath(3C).
re_comp
Compile regular expressions. See re_comp(3C).
re_exec
Execute regular expressions. See re_comp(3C).
remque
Remove an element from a queue. See insque(3C).
rint
Round to the nearest integral value. See rint(3M).
_setjmp
Same as setjmp. See _longjmp(3C).
setstate
Change the random-number generators. See random(3C).
siginterrupt
Allow signals to interrupt functions. See siginterrupt(3C).
srandom
Initialize the current state array for random-number generation. See random(3C).
strfmon
Convert a monetary value to a string. See strfmon(3I).
strptime
Convert dates and times. See strptime(3C).
wcsftime
Convert the date and time to wide character strings. See wcsftime(3C).

Changes to Library Routines

The following library routines have been modified in V4.3. For details, refer to the appropriate man page.

dev_to_ttyname
Now requires header files <sys/types.h> and <stdlib.h>. See dev_to_ttyname(3C).
getrpcent
The argument to getrpcbyname has been changed to const char *.

DYNIX/ptx Documentation

The following manuals are available on the HTML documentation CD distributed with DYNIX/ptx V4.4.10 and can be obtained in hardcopy:

DYNIX/ptx System Administration Guide
ptx/ADMIN Quick Reference Card
DYNIX/ptx System Configuration and Performance Guide
DYNIX/ptx Printer Management Guide
ptx/INSTALL Software Installation Guide
DYNIX/ptx User's Guide

The following manual is available at http://webdocs.numaq.ibm.com/. Note that an older version of this document, which should be disregarded, is distributed on the HTML documentation CD. IBM no longer provides this document in hardcopy. To obtain hardcopy, print the desired information directly from your web browser.

DYNIX/ptx V4.4 System Recovery and Troubleshooting Guide

The following manuals are only available on the HTML documentation CD distributed with DYNIX/ptx V4.4.10:

DYNIX/ptx Error Messages
ptx/C User's Manual
edb User's Guide
debug User's Guide
DYNIX/ptx V2.x to V4.x Porting Guide
DYNIX/ptx Programming Tools Guide
Assembly Language User's Manual
Link Editor (ld) Technical Reference
DYNIX/ptx STREAMS Programming Guide
DYNIX/ptx Network Programming Guide
DYNIX/ptx RPC Programming Guide
Extended Terminal Interface (ETI) Programming Guide
DYNIX/ptx Implementation Differences
POSIX Conformance Specification
BCS Conformance Specification
X/Open Conformance Specification
ptx/ADMIN Development Guide
DYNIX/ptx FACE User's Guide
DYNIX/ptx FMLI Programming Guide

The DYNIX/ptx Native Language Support Programming Guide has been discontinued. For information about programming for internationalization and locales, refer to the POSIX and X/Open documentation.