On Mon, 4 Mar 2024 at 15:58, Sven Schnelle <sv...@stackframe.org> wrote:
>
> Peter Maydell <peter.mayd...@linaro.org> writes:
>
> > On Thu, 29 Feb 2024 at 20:44, Sven Schnelle <sv...@stackframe.org> wrote:
> >>
> >> HP-UX 10.20 seems to make the lsi53c895a spinning on a memory location
> >> under certain circumstances. As the SCSI controller and CPU are not
> >> running at the same time this loop will never finish. After some
> >> time, the check loop interrupts with a unexpected device disconnect.
> >> This works, but is slow because the kernel resets the scsi controller.
> >> Instead of signaling UDC, start a timer and exit the loop. Until the
> >> timer fires, the CPU can process instructions which might changes the
> >> memory location.
> >>
> >> The limit of instructions is also reduced because scripts running on
> >> the SCSI processor are usually very short. This keeps the time until
> >> the loop is exit short.
> >
> > "exited"
> >
> >>
> >> Suggested-by: Peter Maydell <peter.mayd...@linaro.org>
> >> Signed-off-by: Sven Schnelle <sv...@stackframe.org>
> >> ---
> >> Changes in v2:
> >> - update comment in lsi_execute_script()
> >> - reset waiting state and del timer in lsi_execute_script() to
> >>   handle the case where script processing is triggered via
> >>   register write, and not from the pending timer
> >> - delete timer in lsi_scsi_exit()
> >
> > Other than the s/host/guest/ comment fix,
> > Reviewed-by: Peter Maydell <peter.mayd...@linaro.org>
> >
> > I don't suppose anybody has a setup with the Windows drivers
> > to test this on? (commit ee4d919f30f13 suggests that at least
> > Windows XP and 2003 had this problem.)
>
> I have a Windows XP VM with lsi53c895a. I just fired it up and added
> a qemu_log() in the timer path, and seen it trigger once while copying
> a few files. It looks like Windows XP (or better the SCSI driver) also
> works with this patch.

Excellent; thanks for testing.

-- PMM

Reply via email to