On Wednesday, 09/18/2002 at 06:34 ZE2, Bernd Chris Ziemann <[EMAIL PROTECTED]> wrote: > Hello > How do I identify the R/O and R/W parts after the recompile with 'VM Shared > Kernel Support'? > Is there a map produced that can be used for this purpose? > Bernd
IBMer Steve Shultz, the developer of the shared kernel support, provided the following information which was distributed in hardcopy form at SHARE. Steve will soon place this information on LINUXVM.ORG. (I don't know how Steve determined the segment ranges. When you specify CONFIG_SHARED_KERNEL=y, the first executable instruction is ORGed to 1M and the Makefile is done using arch/s390/vmlinux-shared.lds, which aligns the data segment to the next MB. I don't think there are symbols to represent start/end of code and start/end of data. :-( Alan Altmark Sr. Software Engineer IBM z/VM Development --------------------------------------------------------------------------------------------------- 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: 1) You should be on a class E userid. 2) Your storage should be defined to whatever size you want as the minimum size of the virtual machine to ipl your shared system. I believe it would be unwise to define it smaller than 64M. 3) The exec should be issued as follows: SAVELX2 system_name device_number (SAVELX2 EXEC is below) where system_name is the name you want to give to your shared system (e.g. LXSHR1) and device_number is the device number that you usually ipl to start your linux system. CP may take a couple minutes to save your system. When its done, you'll be in CP READ and you or anyone else will be able to issue "CP IPL system_name" to start up your shared system. One caveat. 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 SAVELX2. SAVELX EXEC /* */ parse arg lxname devnum lxname = strip(lxname) devnum = strip(devnum) 'pipe cp q term | var termout' parse var termout one myend three myend = strip(myend) 'pipe cp q v stor | var storout' parse var storout one two storsize parse var storsize mystor 'M' numpages = (256 * mystor) - 1 hexpages = D2X(numpages) DODEF = 'CP DEFSYS' lxname '0-FF EW 100-2FF SR 300-4FF EW' dodef = dodef 'MINSIZE=' || storsize say dodef dodef SETSAVE = 'CP TRACE I R 010000 CMD SAVESYS' lxname setsave = setsave || myend 'TRACE END ALL' say setsave setsave doipl = 'CP IPL' devnum say doipl doipl exit
