Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
Release Notes for HP-UX 11.0: HP 9000 Computers > Chapter 2 Major Changes and Features of HP-UX 11.0

Uniprocessor Emulation, Driver Binding and Per-Processor Callouts

» 

Technical documentation

» Feedback
Content starts here

 » Table of Contents

Uniprocessor (UP) Emulation and Driver Binding is required to properly execute non-multithreaded drivers and other non-threaded kernel functionality on a symmetric multiprocessing (SMP) system. The current HP-UX Uniprocessor Emulation and Driver Binding is implemented through a combination of the up_io_sema and the spl_lock. These are both global locks with high contention rates. To meet scalability requirements for upcoming platforms, HP will be removing the spl_lock and replacing the up_io_sema with a binding mechanism. This design is a shift towards a multiprocessor (MP) centered design which will no longer stall out MP processing to accommodate uniprocessor (UP) modules. If the performance impact incurred by a UP module as a result of this model shift is determined to be unacceptable, then that module should be made MP-SAFE.

Impact

There are no driver or module changes required as a result of implementing this new model. The changes required to implement this feature are contained within what would typically be considered the kernel framework or infrastructure.

The design being implemented will bind the uniprocessor driver/module to a single processor, eliminating the need for the up_io_sema/spl_lock combination. In addition to the global lock removal, the overhead associated with checking for a uniprocessor module will be removed from the primary code path. A secondary advantage to the design will be the simplification of the spl code path.

The binding mechanism is being leveraged from existing interfaces put in place for processor affinity. The processor affinity interface will be extended to introduce binding functionality. The streams subsystem will be modified to place binding calls instead of acquiring the up_io_sema, and a new callout interface will be created to address streams requirements. To enhance the callout processing and facilitate the design of the new callout interface, per-processor callouts will be introduced.

The existing uniprocessor specific message passing infrastructure will have to be modified to support message forwarding. This code path will be modified to ensure that messages destined for uniprocessor modules will be forwarded to the correct processor in the correct order.

The only user level visable manifestation of this change will be the possibility of a mpctl() system call failing an affinity request due to bound driver requirements. This will only occur if the user specified a mandatory binding. If an advisory binding was requested the affinity will be overtaken if necessary.

Performance

Uniprocessor drivers and modules executing on an MP system will most likely experience a performance decrease. Uniprocessor systems will not be affected. MP systems might show a small performance increase.

Configuration

This feature will be available in both 32- and 64-bit environments.

Obsolescence

Two kernel internal global locks are being removed, the up_io_sema and the spl_lock.

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1998 Hewlett-Packard Development Company, L.P.