Browse Prior Art Database

Lightweight Run-Time Conditional Switches on IA64

IP.com Disclosure Number: IPCOM000013403D
Original Publication Date: 2000-Oct-01
Included in the Prior Art Database: 2003-Jun-18
Document File: 1 page(s) / 39K

Publishing Venue

IBM

Abstract

Disclosed is a method for managing conditional paths in performance critical code on the IA64* architecture. The disclosure specifically addresses the need in an operating system kernel to have highly optimized code paths yet allow for flexibility as key features of the operating system are enabled or disabled. The method employs existing technologies provided in the IA64 architecture including special purpose kernel registers and predication.

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

Page 1 of 1

Lightweight Run-Time Conditional Switches on IA64

Disclosed is a method for managing conditional paths in performance critical code on the IA64* architecture. The disclosure specifically addresses the need in an operating system kernel to have highly optimized code paths yet allow for flexibility as key features of the operating system are enabled or disabled. The method employs existing technologies provided in the IA64 architecture including special purpose kernel registers and predication.

In software in general, especially operating systems and performance critical code, it is desirable to streamline code paths as much as possible by avoiding compare and branch sequences in performance critical code. In an operating system, especially one where a single binary image of the operating system supports all possible platforms, modes, and settings, it becomes difficult to streamline this code and at the same time conditionally support all of the various features.

The invention is specific to software running on the IA64 architecture, and is described in the context of how it was implemented which was for kernel level conditional switches. A kernel flag word is maintained that contains a bit for any run-time decision that might need to be made in performance critical (state management, system call, etc.) code. An example of these bits are for Performance Tracing Enable/Disable, System Trace Enable/Disable, Lowlevel Kernel Tracing Enable/Disable, System Call Tracing...