I/O space write barriers
The answer, according to Jesse Barnes is the addition of a new type of memory barrier to force the ordering of writes to the device. Jesse's patch adds a new function, mmiowb(), which implements this barrier. He has also updated the qla1280 driver to make use of it.
Authors of PCI drivers are accustomed to coding a different sort of
barrier: reading from a device register to ensure that all writes have
actually been posted to the device. mmiowb() is a different,
lighter-weight mechanism. After a call to mmiowb(), writes might
still have not reached the device. Writes are not forced out; they
just have their ordering with respect to subsequent writes guaranteed. In
many situations, that sort of guarantee is all that is needed.
| Index entries for this article | |
|---|---|
| Kernel | I/O memory |
| Kernel | mmiowb() |
