While doing more testing of this animal, I found that a random kernel oops
would occur.  It never seemed to happen when using the DIAG driver for swap
space (my original intent).  Only when using the driver for a standard file
system.

It took a while to track down and I decided to rework the original patch
while I looked for it.

The problem was (what I believe to be) an incorrect comparison in ccwcache.c
that would cause storage passed the ccw_cache[] array to be referenced if
the size being searched for was equal to the maximum cache size.

It also caused the wrong cache line to be selected if the needed size
equaled the size of the line.  Not really much of a concern, but in my
testing it did occur about 2% of the time and meant that the wrong cache was
searched (and stolen from) for an available entry.

I've run many copies, Bonnies, Bonnie++s, memhogs, as well as other
sundries, and it appears to be working fine.

The SG246926 Redbook (what got me started on this mess) said the DIAG
discipline was faster, but I didn't really believe it until I saw it
compared to the FBA driver.

Anyway, the new version is over at:

http://www.homerow.net/projects/zlinux/64bit-diag.htm

Have fun,

Leland

Reply via email to