|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH URGENT] common/vsprintf: Fix signed->unsigned error, causing glacial performance.
On 12/11/13 16:23, Jan Beulich wrote:
>>>> On 12.11.13 at 17:10, Andrew Cooper <andrew.cooper3@xxxxxxxxxx> wrote:
>> The original patch for
>>
>> c/s 67a3542c5bc356e6452d8305991617c875f87de4
>> "common/vsprintf: Refactor string() out of vsnprintf()"
>>
>> specifically used signed integers, identical to the code copied out of
>> vsprintf.
>>
>> When committed, these had changed to unsigned integers, which causes a
>> functional change. This causes glacial boot performance and an excessive
>> quantity of spaces printed to the serial console, as we loop to the upper
>> bound of a 32bit integer.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> Considering that I had changed those on the fly while committing,
> I committed this one without waiting for an ack. But ...
>
>> --- a/xen/common/vsprintf.c
>> +++ b/xen/common/vsprintf.c
>> @@ -239,7 +239,7 @@ static char *number(
>> static char *string(char *str, char *end, const char *s,
>> int field_width, int precision, int flags)
>> {
>> - unsigned int i, len = strnlen(s, precision);
>> + int i, len = strnlen(s, precision);
> ... this just looks _so_ wrong (and whenever I'll come across
> this again, I'll just be tempted again to adjust it)!
>
> Jan
>
I agree in general, and do err on the side of unsigned whenever
possible. In this case, I went with exactly what was present before.
~Andrew
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |