Changes to UART ns8250
Ian Lepore
ian at FreeBSD.org
Mon Oct 7 20:26:34 UTC 2013
On Mon, 2013-10-07 at 13:15 -0700, Adrian Chadd wrote:
> Hi,
>
> You should add:
>
> *[snip]
> * a DELAY(1) or something.
>
Why? Why oh why do people write
while (!read_some_status_register())
DELAY(n);
when DELAY() is implemented as, roughly:
while (read_some_counter_register() < something)
continue;
The whole point of DELAY() is to busy-wait.
What might be nice is some function that we can call in such a loop such
as cpu_busywait(), so that when running in an emulated or virtualized
environment the emulator or hypervisor could use that as a hint to do
something smart.
-- Ian
More information about the freebsd-current
mailing list