On 10/02/2011 10:36 PM, Blue Swirl wrote:
On Sun, Oct 2, 2011 at 8:31 PM, Avi Kivity<a...@redhat.com>  wrote:
>
>>  >
>>  >  In fact these aren't problems.  The packet may be sent or data
>>  >  written, as long as they aren't corrupted.  A device is allowed to
>>  >  "delay" a reset (but not indefinitely).
>>
>>  Oh, but corruption could easily happen. Consider for example a disk
>>  controller waiting for DMA ready signal a device separate from the
>>  DMA
>>  controller. Due to reset glitches in the device or signal chain, the
>>  DMA ready signal arrives but the DMA controller still contains old
>>  information, writing the data to disk from wrong memory location.
>
>
>  Would not this corruption also happen on real hardware?  If reset to the 
disk controller is delayed by a slow gate or extra capacitance on a line?

Maybe, but the delays are probably too short on real HW before any
packets are sent or disk gets written. On QEMU, I/O can be
instantaneous.

As an anecdote, while reading a chip errata I came upon this:



15. CPU May Record Signal Glitches When MCH is Being Reset

Problem: When the MCH is reset via RSTIN# the CPU may record any one or more of the following errors: address strobe glitch (MSR IA32_MCi_STATUS bit 23), data strobe
glitch (MSR IA32_MCi_STATUS bit 22), P/N data strobes out of sync (MSR
IA32_MCi_STATUS bit 21), PIC & FSB data parity (MSR IA32_MCi_STATUS bit 19), RSP parity (MSR IA32_MCi_STATUS bit 18), or FSB address parity (MSR IA32_MCi_STATUS bit 16). This can happen when the MCH asserts CPURST# just after the MCH drives an
FSB transaction.  This may happen because RSTIN# and CPURST# maintain an
asynchronous relationship with each other.

Workaround: None.

Status: No Fix

(of course the situation there is different, there is no global reset signal)

--
error compiling committee.c: too many arguments to function


Reply via email to