|
|
and a correction
Supplying one of the blocking inputs directly, the seventy-eight corpus builds had never
been run on the card. Sweeping them behaved differently from the twelve in use, and
chasing why produced both a new trigger and a correction to earlier work.
The new trigger is parameter-driven: one application's command completes with a larger
declared command-buffer length and hangs with a smaller one, so a command whose output
does not fit the host-declared window hangs the processor rather than returning an error.
This is the first trigger driven by an ordinary caller-chosen parameter at a plausible
value, and it explains why earlier sweeps at different declared sizes disagreed about
which command was at fault.
It also settles a question in the safe direction, since the response to an undersized
window is a hang rather than an out-of-bounds write, consistent with every such test here
returning negative.
The correction is that the earlier out-of-bounds sweep had no timing check, so a stalled
invoke merely returned an error and the sweep continued against a wedged processor. One
application's row there was recorded after it had already hung and two later load failures
in that batch are the same wedge, so those rows are void and that application's result is
marked not established.
|