VM Shared Kernel Support
Note: 11 May 2009
The VM Share Kernel Support procedure documented on this page was created a few years ago for use with an older Linux Kernel.
For documentation about NSS, see "Device Drivers, Features, and Commands" book on the developerWorks documentation page. The 'Shared kernel support' chapter describes how you can create and maintain a Linux NSS. |
If your Linux distribution supports the "VM shared kernel support" configuration option, the Linux kernel can be generated as a shareable NSS (named saved system). Once generated with this option, the system must be IPLed, stopped at location x'10000' and saved (from a class E user) with something like the following example from a 64M machine:
DEFSYS LXSHR 0-FF EW 100-2FF SR 300-4FF EW MINSIZE=64M
SAVESYS LXSHR
Once this is done, any VM user can IPL LXSHR and about 1.5M of the kernel is shared among all users. Obviously, the more Linux virtual machines running, the greater the benefit of using the shared system.
Note:
Every virtual machine that IPLs your shared
system must have the same disk configuration as the system that was
saved. That is, the disks must be at the same addresses and be the
same sizes as the virtual machine that issued the SAVESYS command.
An example of how to use VM Shared Kernel Support
Below is a sample EXEC that can be used to help you create a shared Linux NSS. Once you have generated a kernel with the "VM shared kernel support" config option and have that kernel ready to IPL from a device, the EXEC can be used as follows:
Userid Class
The VM userid that will run the EXEC should be a class E VM userid.
Storage size
The userid virtual machine
storage should be defined to whatever size you want as the minimum
size of the virtual machine to IPL your shared system. At least 64M is
recommended.
Invoking the SAVELX EXEC
SAVELX system_name device_number
- system_name
- is the name you want to give to your shared system (e.g. lxshr)
- device_number
- is the device number that you usually IPL to start your Linux system.
I system_name
Sample SAVELX EXEC
/* SAVELX EXEC */
/* get the system name and device to ipl */
/* figure out the line end character */
/* figure out the storage size */
/* construct the defsys command */
doipl = 'i' devnum
/* all set, issue the ipl */
|
Disclaimer:
Information provided has been developed as a collection of the experiences
of technical services professionals over a wide variety of customer and
internal IBM environments, and may be limited in application to those
specific hardware and software products and levels.
The information contained in this document has not been submitted to any formal IBM test. The use of this information or the implementation of any of these techniques is a customer responsibility and depends on the customer's ability to evaluate and integrate them into the customer's operational environment. While each item may have been reviewed by IBM for accuracy in a specific situation, there is no guarantee that the same or similar results will be obtained elsewhere. Customers attempting to adapt these techniques to their own environments do so at their own risk, and in some environments may not achieve all the benefits described.
The following paragraph does not apply to the United Kingdom or any other country where such provisions are inconsistent with local law: International Business Machines Corporation provides this publication "as is" without warranty of any kind, either express or implied, including, but not limited to, the implied warranties of non-infringement, merchantability or fitness for a particular purpose. Some states do not allow disclaimer of express or implied warranties in certain transactions, therefore, this statement may not apply to you.
This information could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes will be incorporated in new editions of this publication. IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time without notice.
IBM may not offer the products, services, or feature discussed in this document in all countries. Consult your local IBM representative for information on the products and services currently available in your area. Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM product, program, or service may be used. Any functionally equivalent product, program, or service that does not infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to evaluate and verify the operation of any non-IBM product, program, or service.
IBM may have patents or pending patent applications covering subject matter described in this document. The furnishing of this document does not give you any license to these patents. You can send license inquiries, in writing, to: IBM Director of Licensing, IBM Corporation, North Castle Drive, Armonk, NY 10504-1785 U.S.A.
Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products.
COPYRIGHT LICENSE:
This information contains sample application programs in source
language, which illustrates programming techniques on various operating
platforms. You may copy, modify, and distribute these sample programs in
any form without payment to IBM, for the purpose of developing, using,
marketing or distributing application programs conforming to the
application programming interface for the operating platforms for which
the sample programs are written. These examples have not been thoroughly
tested under all conditions. IBM, therefore, cannot guarantee or imply
reliability, serviceability, or function of these programs.