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

Reply via email to