Browse Prior Art Database

Method and System for Soft Partitioning a System and Dynamically Performing Load Balancing by Assigning Tasks onto Different Partitions

IP.com Disclosure Number: IPCOM000202335D
Publication Date: 2010-Dec-14
Document File: 5 page(s) / 95K

Publishing Venue

The IP.com Prior Art Database

Abstract

A method and system for soft partitioning a system and dynamically performing load balancing by assigning tasks onto different partitions is disclosed.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 21% of the total text.

Page 01 of 5

Method and System for Soft Partitioning a System and Dynamically Performing Load Balancing by Assigning Tasks onto Different Partitions

Typically, a system running on Linux* Operating System (OS) may be soft partitioned wherein hardware resources of the system, such as a Central Processing Unit (CPU) and a memory, may be logically partitioned into two or more logical partitions. These logical partitions are called cpusets. Thereafter, one or more tasks may be assigned to these logical partitions to achieve better performance or to achieve resource guarantee. However, tasks within a cpuset do not migrate to other cpusets even if resources in other cpusets are free. For example, consider two mutually exclusive cpusets, cpuset A and cpuset B. Initially cpuset A and cpuset B may have sufficient tasks to keep CPUs associated with both the cpusets busy. The tasks directly assigned to cpusets are called as native tasks. However, at a later stage, a CPU of cpuset B may finish processing all the native tasks assigned to it. Whereas at the same time another CPU of cpuset A may still be busy processing another set of native tasks assigned to it. In current scenario, tasks from cpuset A are not allowed to migrate to cpuset B in spite the fact that the CPU of cpuset is idle.

In order to overcome this problem, a method and system is disclosed for soft partitioning a system and dynamically performing load balancing by assigning tasks onto different partitions. As such, tasks assigned to a cpuset are allowed to migrate on another cpuset, when this cpuset is idle. In continuation with the example described earlier, the method and system allows the native tasks of cpuset A to migrate to cpuset B in case the CPU of the cpuset B has processed all its native tasks and is currently idle. These tasks, that are native tasks (i.e. originally assigned) of cpuset A and are migrated to cpuset B, may be called foreign tasks with respect to cpuset B. Thereafter, in a scenario the CPU of cpuset B may be assigned fresh tasks while it is busy processing the foreign tasks. In such a scenario, the CPU of cpuset B may push the foreign tasks back to the CPU of cpuset A in order to handle the freshly assigned tasks.

A user may attach a new property to a cpuset to notify the OS that the cpuset may process foreign tasks as well as send its native tasks to other cpusets for processing. As such, a file soft

_cpuset may be created under a cpuset directory. Thereafter, a user

_cpuset file in order to transform the cpuset as a soft-cpuset. The

soft-cpuset is then capable of transmitting its native tasks to other soft-cpuset for processing, provided native workload in the other soft-cpuset is less. In such a case, the other soft-cpuset is called a foreign cpuset. In addition, the soft-cpuset is also capable of processing foreign tasks from other soft-cpusets. Once the foreign cpuset's native workload increases, foreign tasks in the foreign cpuset may be pushed back to their...