Re: duplicate output when dumping from ddb

From: Andriy Gapon <avg_at_FreeBSD.org>
Date: Mon, 15 Aug 2011 15:59:55 +0300
on 15/08/2011 13:24 Sergey Kandaurov said the following:
> On 10 August 2011 23:04, Navdeep Parhar <nparhar_at_gmail.com> wrote:
>> "dump" or "call doadump" from within ddb display duplicate output.
>> This is with a serial console.  I have  console="comconsole,vidconsole"
>> in /boot/loader.conf and  "-D -S115200"  in /boot.config.
>>
>> db> dump
>> Dumping 1883 out of 12255 MB:Dumping 1883 out of 12255
>> MB:..1%..1%..11%..11%..21%..21%..31%..31%..41%..41%..51%..51%..61%..61%..71%..71%..81%..81%..91%..91%
>>
>> Dump complete
>> Dump complete
>> db>
>>
>> Something seems to have changed in the last couple of months or so.
>>
> 
> Just to confirm with my "Same here". I use a serial console with same
> settings, too. I am out of ideas how to fix it though.
> 

Let me try to guess... do you have PRINTF_BUFR_SIZE defined?
If you look at vprintf() in sys/kern/subr_prf.c, then it's possible that one
message is printed by putchar() repeatedly called in kvprintf and the duplicate
message is printed by cnputs() under PRINTF_BUFR_SIZE.

Indeed, pca.flags is set to TOCONS | TOLOG in vprintf(), so putchar() would
output a character (via cnputc) when kdb_active is true and also it would add the
character to a buffer (via putbuf), because TOLOG is set.

Maybe try to add !kdb_active condition for cnputs() call in vprintf().
-- 
Andriy Gapon
Received on Mon Aug 15 2011 - 10:59:59 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:16 UTC