number between 1 and 60.

GCPARM=n

A value affecting the amount of data moved during the garbage collectors space
recovery routine. The garbage collector determines an amount of space to move
based on the ratio of free space to used space in an emulation file and on the num-
ber of free spacesin the file. The garbage collector wants to reduce the free space
to used space ratio and the number of free spaces.

The value is logarithmic; a value of 8 means moving 2
8
the selected value while a
negative value similarly decreases the amount to be moved. Normally, 256K will be
moved for a file in an interval. Specifying a value of 8 can increase the amount to
64M. At least 64K will be moved. Specifying a large value (such as 8) may not in-
crease the garbage collection efficiency correspondingly. The default is 0. You can
specify a number from -8 to 8.

NOSTRESS=n

Indicates whether stress writes will occur or not. A track or block group may be
written under stress when a high percentage of the cache is pending write or when
a device I/O thread is waiting for a cache entry. When a stressed write occurs, the
compression algorithm and/or compression parm may be relaxed, resulting in faster
compression but usually a larger compressed image.

If NOSTRESS is set to one, then a stressed situation is ignored. You would
typically set this value to one when you want create the smallest emulation file
possible in exchange for a possible performance degradation. The default is 0. You
can specify 0 (enable stressed writes) or 1 (disable stressed writes).

FREEPEND=n

Specifies the free pending value for freed space. When a track or block group
image is written, the space it previously occupied is freed. This space will not be
available for future allocations until n garbage collection intervals have completed.
In the event of a catastrophic failure, previously written track or block group images
should be recoverable if the current image has not yet been written to the physical
disk.

By default the value is set to -1 which means that if FSYNC is specified then the
value is 1 otherwise it is 2. If 0 is specified then freed space is immediately avail-
able for new allocations. The default is -1. You can specify a number from -1 to 4.

FSYNC=n

Enables or disables FSYNC. When FSYNC is enabled then the disk emulation file
is synchronized with the physical hard disk at the end of a garbage collection inter-
val (no more often than 5 seconds though).

This means that if FREEPEND is non-zero and a catastrophic error occurs, the
emulated disks should be recovered coherently. However, FSYNC may cause pe-
rformance degradation depending on the host operating system and / or the host
operating system level. The default is 0 (fsync disabled), you can specify 0 (disable
FSYNC) or 1 (enable FSYNC).

TRACE=n

Specifies the number of CCKD trace entries. You would normally specify a non-
zero value when debugging or capturing a problem in CCKD code. When the prob-
lem occurs, you should enter the "k" Hercules console command which will print the
trace table entries. The default is 0. You can specify a number between 0 and
200000. Each trace entry represents 128 bytes. Normally, for debugging, it is re-
commended to use 100000.

LINUXNULL=n

If set to 1 then tracks written to 3390 CCKD volumes that were initialized with the
-linux option will be checked if they are null (that is if all 12 4096 byte user records
contain zeroes). This is used by the DASDCOPY utility. The default is 0.

GCSTART=n

If set to 1 then space recovery will become active on any emulated disks that have
free space. Normally space recovery will ignore emulated disks until they have
been updated. The default is 0.

Notes:

raq should be at least as large as ra. Read ahead threads are scheduled from entries in the read
ahead queue. Likewise rat should not exceed raq because only raq tracks or block groups can be
queued at any time.
The number of writer threads wr should usually be 1 more than the number of host processors.
This is because one writer thread could be CPU-bound (compressing a track or block-group
image) and the other could be i/o-bound (writing the compressed image).
The garbage collection interval governs the maximum time in seconds an updated track or block
group image will reside in storage before being written to the emulation file. A large value may
mean more data loss if a catastrophic error occurs. A small value may mean that more CPU time
is spent compressing images.

For example, suppose that a particular image is updated several times each second. If the inter-
val is changed from the default 5 seconds to 1 second, then that image will be compressed and
written 5 times more frequently. A large value may cause more cache flushes within a garbage
collection interval. These kinds of flushes mean that a read will wait because there are no avail-
able cache entries, slowing the emulated operating system. A large value will also cause more
pending free space to build up (since free space is flushed each interval). This may mean that the
garbage collector space recovery routine will perform more work and the resulting emulation file
may be larger.
Specify fsync=1 and gcint=5 if you are seriously concerned about your data being lost due to a
failure. fsync will ensure your data on disk is coherent. However, fsync may cause a noticeable
performance degradation. Note that an fsync will not be performed more often than every 5
seconds.

8.24.4 Examples

Example 1:

Display the CCKD options panel.

HHC00013I Herc command: 'cckd opts'

HHC00346I cckd opts: comp=-1,compparm=-1,ra=2,raq=4,rat=2,wr=2,gcint=10

HHC00346I gcparm=0,nostress=0,freepend=-1,fsync=0,linuxnull=0,trace=0

Figure 47: CCKD OPTS command

Example 2:

Display the CCKD help panel.

HHC00013I Herc command: 'cckd help'

HHC00345I Command parameters for cckd:

HHC00345I help Display help message

HHC00345I stats Display cckd statistics

Previous Page Next Page