cpu_spinwait in cngetc

Andriy Gapon avg at FreeBSD.org
Sat Sep 22 17:46:17 UTC 2012


on 18/09/2012 16:25 Andriy Gapon said the following:
> 
> (Why[*]) Would anyone object to a change like this?
> 
> diff --git a/sys/kern/kern_cons.c b/sys/kern/kern_cons.c
> index 5346bc3..d17846a 100644
> --- a/sys/kern/kern_cons.c
> +++ b/sys/kern/kern_cons.c
> @@ -384,7 +384,7 @@ cngetc(void)
>  	if (cn_mute)
>  		return (-1);
>  	while ((c = cncheckc()) == -1)
> -		;
> +		cpu_spinwait();
>  	if (c == '\r')
>  		c = '\n';		/* console input is always ICRNL */
>  	return (c);
> 
> [*] :-)
> 

I would to re-ping with this question.
Is there any architecture where a cpu_spinwait could cause a surprise?
Or is universally safe?

The most visible place which this change can affect is ddb prompt.


-- 
Andriy Gapon


More information about the freebsd-hackers mailing list