On Sat, Jun 19, 2010 at 12:38 PM, Kris Buelens <kris.buel...@gmail.com> wrote:

> For CP, the translations it has to perform for the IO's issued by a guest
> are a bit less complex if it is a fullpack minidisk.  Simply said: it
> doesn't have to check the guest reads/writes to just that part of a volume.
> And, when a target minidisk doesn't start at cylinder 0, CP must change all
> cylinder numbers to apply an offset.

Channel Program translation must create a real channel program, lock
the guest pages, change the address in the CCW to point to the real
page, etc. Adding an offset to the seek is the least of that trouble.
I have not checked the code, but I would not be surprised if CP were
just adding 0 to them...  And don't forget the "untranslate" to
present the device status to the guest again. Fortunately, the CCHR is
virtual, or relative to the start of the mini disk.
It's the Control Unit that verifies that the channel program does not
go beyond the edge or does not write on a R/O disk. CP puts a Define
Extent CCW at the start of the Channel Program that reflects the size
of the mini disk. It also has other info for the CU, so it's also
there for full pack...

Only V=R and V=F guests could take a shortcut because CP did not need
to lock the guest pages.

Rob

Reply via email to