Ref: 18960004
Title: 3+Backup Fails With "!!Unable to get tape buffer from CIOSYS."
Date: 02/14/90

Copyright 3Com Corporation, 1991.  All rights reserved.

If 3+Backup is unable to obtain server memory for buffers, a backup
will fail immediately, displaying the message "See Log File(s)" on the
server LCD.  The backup log, C:\3PLUS\3BACKUP\BACK_LOG.1, will show the
failure as "!!Unable to get tape buffer from CIOSYS."  The following
paragraphs explain how the failure can occur and suggest ways to
avoid it.

When a backup is initiated, 3+Backup will ask CIOSYS for 720 KB of
expanded memory.  This memory must come from a single CIOSYS buffer pool.
If that request fails, 3+Backup will ask for 528 KB, then 336 KB.  If
there is no buffer pool large enough to satisfy those requests, 3+Backup
will ask CIOSYS for 384 KB of conventional memory.  CIOSYS will only
grant this request if there are CIOSYS buffers in conventional memory.
3+Backup will decrement the conventional memory request by 24 KB each
time until it gets down to a minimum of 48 KB.

When CIOSYS gives space in the buffer pool to 3+Backup, it always reserves
at least two buffers.

When the server is booted, CIOSYS will build buffer pools in expanded
memory aligned on a 16 KB boundary.  However, when 3+Backup asks for a
buffer in expanded memory, CIOSYS will try to allocate the memory space
aligned on a 64 KB boundary.  Thus, in the worst case, CIOSYS will be
unable to give 3+Backup 48 KB of the buffer pool.  To avoid the problem,
the buffer pool should be 336 KB + 48 KB + two buffers.

When 3+Backup asks CIOSYS for a block of memory, CIOSYS will search the
buffer pools sequentially (by drive ID) until it finds a pool large enough
to satisfy the request.

CIOSYS buffer pools are configured in 3OPT.  When the server is booted,
CIOSYS reads the configuration and allocates buffers from expanded memory
as the user requested.  Afterward, if any expanded memory is left and there
is room in the CIOSYS data area for buffer descriptors, CIOSYS will attempt
to double the size of each buffer pool (sequentially by buffer pool) until
it runs out of expanded memory or CIOSYS data area.  This means that 3+Backup
MAY run, even though there are not enough buffers configured in 3OPT.

To guarantee enough buffer space for 3+Backup, configure any buffer pool
to a size of 384 KB, plus two buffers.  For example, if you
use a sector size of 512 bytes per sector, and 4 sectors per cluster, each
buffer is 2048 bytes (512 * 4 = 2048).  To get 384 KB of buffer space, you
need 192 buffers (384k / 2k = 192), plus the two that CIOSYS always
reserves, to equal 194.  Since CIOSYS aligns the buffer pools on a 16 KB
boundary, round the buffer pool size up to the next multiple of
16 KB so as not to waste expanded memory.  400 KB is the next multiple of
16 KB, so use 200 buffers.

Note:  Sometimes smaller buffer pool sizes will work.  One reason is that
any leftover EMS will first be used to try to double the size of the first
buffer pool.  Also, you should assume that up to 48 KB of the buffer pool
may be wasted.  Depending on how CIOSYS actually lays out expanded memory,
smaller buffer pools may work.

