May be add something like profiling option with patch for implementing such feature? Best regards, Anton Kochkov.
On Sun, May 1, 2011 at 07:37, Scott Duplichan scott@notabs.org wrote:
Kevin O'Connor wrote:
] That's a great boot time! Do you have a breakdown of where the 640ms ] is spent? ] ] -Kevin
Hello Kevin,
I tried adding some serial logging to get an idea about where the time is spent. The logging adds 8 ms to the boot time:
Time in ms 0 cold reset 366 memory initialization complete 469 seabios: maininit(void) 483 seabios: vga_setup() called 604 seabios: vga_setup() returned 621 seabios: startBoot(void) 648 dos autoexec utility logs pmtimer value
It looks like the lengthy operations are memory init and VBIOS execution, which is consistent with past experience.
UEFI BIOS on this same hardware platform is taking more than 10 seconds.
Here seabios kconfig options I changed:
Build for coreboot y Hardware init during option ROM execution y Bootmenu n ATA controllers n AHCI controllers y Floppy controller n PS/2 port n USB UHCI controllers n Parallel port n PCIBIOS interface n APM interface n PnP BIOS interface n S3 resume n SMBIOS n Serial port debugging y Show screen writes on debug ports n
Thanks, Scott
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Антон Кочков wrote:
May be add something like profiling option with patch for implementing such feature?
Feel free to send a patch?
//Peter
Anton Kochkov wrote:
] May be add something like profiling option with patch for implementing ] such feature? ] Best regards, ] Anton Kochkov.
Hello Anton,
In the past I have seen such logging code added to a BIOS code base. It was for Phoenix legacy if I remember correctly. A challenge with this method is using it to exactly pinpoint a problem. For this board I have the luxury of a jtag debugging setup, the Sage SmartProbe. This arrangement is very handy for boot time reduction. I do a crude form of profiling by breaking in randomly during post. I still find it spending some time in lzma decode of ramstage. That time was reduced by the -flto compiler option.
Thanks, Scott
On Sat, Apr 30, 2011 at 11:11:37PM -0500, Scott Duplichan wrote:
Anton Kochkov wrote:
] May be add something like profiling option with patch for implementing ] such feature? ] Best regards, ] Anton Kochkov.
Hello Anton,
In the past I have seen such logging code added to a BIOS code base. It was for Phoenix legacy if I remember correctly. A challenge with this method is using it to exactly pinpoint a problem. For this board
There is a tool in the seabios repo - tools/readserial.py . It can be run on a separate host that reads the debug serial output - it provides timing info on each line read and can adjust the times to eliminate the cost of writing to the serial port.
It's not perfect, but it can provide a broad overview of where time is spent.
If you haven't already tried it, it's usage follows:
./tools/readserial.py /dev/ttyS0 115200
For this board I have the luxury of a jtag debugging setup, the Sage SmartProbe. This arrangement is very handy for boot time reduction. I do a crude form of profiling by breaking in randomly during post. I still find it spending some time in lzma decode of ramstage. That time was reduced by the -flto compiler option.
Thanks - I'll have to try that on my board (an old epia-cn machine). I found lzma to be time intensive.
-Kevin