cpu_spinwait in cngetc

Julian Elischer julian at freebsd.org
Sun Sep 23 05:55:43 UTC 2012


On 9/22/12 10:46 AM, Andriy Gapon wrote:
> 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.
>
>

looks like the right thing to do


More information about the freebsd-hackers mailing list