On 2021/2/25 17:52, David Marchand wrote:
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.
Hi David:
Maybe there is confuse? There is no change. The out/in is added. I don't
remove _p on purpose.