On Thu, Feb 25, 2021 at 5:00 AM 谢华伟(此时此刻) <huawei....@alibaba-inc.com> wrote: > >>> Is the 'outb_p' to 'outb' conversion intentional? And if so why? > >>> > >>> Same of the all 'outb_p', 'outw_p', 'outl_p'. > >> > >> There is no need to delay for virtio device, as we can see in virtio > >> legacy driver. > >> > >> IMO, the delay is for ugly old device. The device itself should > >> assure the previous IO completes when the subsequent IO instruction > >> arrives. > >> > > > > Can there be any virtio legacy device needing this? > > The pause version delays sometime by writing to 0x80 debug port. virtio > doesn't need this. virtio legacy PMD driver doens't use this. > > Any device relying on this i think is buggy. How could the device rely > on some uncertain cpu cycles to behave correct? > > > > > What is the downside of using "pause until the I/O completes" versions? > > The downside in virtio PMD is a small performance penalty when we use it > to notify backend. CPU executes unnecessary serializing IO instruction. > > I check kernel code, io wrapper for in/out doesn't use p version.
This change is a fix/optimisation. This is a separate topic from adding MMIO support with x86 ioport. I would split as a separate patch. -- David Marchand