"Maciej W. Rozycki" wrote:
> On Mon, 13 Aug 2001, Gleb O. Raiko wrote:
> > DBE is treated as ACK* on write. Some HW design manuals advise to use
> > this fact even.
> And what is the use of ACK*?
Acknowledge. It's used to indicate current transaction has been
processed successfully. If you are interested in details, I would
suggest you read a MIPS hardware manual, for example, IDT's one.
The most intriguing feature is:
"Write transactions terminated by BusError* do not require the assertion
of Ack*. BusError* can be asserted at at any time the processor is
looking for Ack* to be asserted, up to and including the cycle in which
the memory system does signal Ack*."
> Note that that the state of the CPU at the moment of a write is
> completely unrelated to the action that triggered the write. Therefore
> any reporting of a write failure is hardly useful -- possibly as a kind of
> an MCE only, i.e. report the event and kill the current process or panic
> if none.
I consider external signaling of write failures may be useful for kernel
debugging purposes. I agree it's hard (or even impossible) to achieve
proper behaviour on write failures for user space. There is a small
chance to kill another process, for example, write transactions may
delay due to write buffer. So, the kernel may only print something.