Oracle Solaris supports two properties, pool and cpus, to manage resources for tasks beyond network processes. Use the cpus property to assign specific CPUs to a datalink.
If you are managing resources while working with non-global zones, use the pool property instead. This property enables you to integrate network resource management with CPU allocation and zone administration.
For example, you use the zone commands zonecfg and poolcfg to configure a pool of resources for zones. To dedicate that same pool to also manage network processes, then you configure the datalink's pool property. When the datalink with the configured pool is assigned to a non-global zone's network interface, then the datalink is bound to the zone's pool. If you set the zone to be exclusive, then CPU resources in the pool can no longer be used by other links that are not assigned to the zone.
See Chapter 13, Creating and Administering Resource Pools Tasks in Administering Resource Management in Oracle Solaris 11.4 and the poolcfg(8) man page.
The following figure shows how pools work when the pool property is assigned to a datalink.
Figure 22 pool Property of a VNIC Assigned to a Zone
The figure shows a system with eight CPUs. When no pools are configured, all the CPUs belong to the default pool and are used by the global zone. In the figure, pool99 is created and consists of CPU 3 and CPU 4. The pool is associated with zone1, an exclusive zone. If pool99 is set as a property of vnic1, then pool99 becomes dedicated to also manage vnic1's networking processes. After vnic1 is assigned to be zone1's network interface, the CPUs in pool99 are reserved to manage both networking and non-networking processes of zone1.
The pool property is dynamic in nature. Zone pools can be configured with a range of CPUs, and the kernel determines which CPUs are assigned to the pool's CPU set. Changes to the pool are automatically implemented for the datalink. In contrast, assigning specific CPUs to the link by using the cpu property requires you to specify the CPU to be assigned. You have to set the cpu property every time you want to change the CPU components of the pool.
For example, suppose that the system CPU 4 in pool Property of a VNIC Assigned to a Zone is taken offline. Because the pool property is dynamic, the software automatically associates an additional CPU with the pool. Hence, the pool's original configuration of two CPUs is preserved. For vnic1, the change is transparent. The updated configuration is shown in the following figure.
Figure 23 Automatic Reconfiguration of the pool Property
When you display datalink property information for pool and cpus, the EFFECTIVE column in the output shows the corresponding pool and CPU resources that are used for network processes, as shown in this example:
$ dladm show-linkprop -p cpus LINK PROPERTY PERM VALUE EFFECTIVE DEFAULT POSSIBLE net0 cpus rw -- 0-63 -- -- $ dladm show-linkprop -p pool LINK PROPERTY PERM VALUE EFFECTIVE DEFAULT POSSIBLE vnic1 pool rw -- pool99 -- --
If you are configuring a non-global zone's resources, use the appropriate zonecfg or poolcfg commands rather than directly configuring the datalink's cpus or pool properties. When you bind the datalink to the zone and then reboot the zone, these datalinks are automatically set according to the zone configurations. These settings are then reported under the EFFECTIVE column, even though their VALUE column shows empty fields.