Ich arbeite an Intel-Rangeeley-Board. Ich möchte die Gesamtzeit messen, die zum Starten des Linux-Kernels benötigt wird. Gibt es einen möglichen und bewährten Weg dies auf Intel Board zu erreichen?So messen Sie die gesamte Boottime für Linux-Kernel auf Intel Range Board
Antwort
Versuchen Sie mit rdtsc
. Gemäß der Intel insn ref Handbuch:
der Prozessor den Zeitstempelzähler MSR jedem Taktzyklus und setzt es auf 0 monoton erhöht, wenn der Prozessor zurückgesetzt wird. Siehe "Zeitstempelzähler" in Kapitel 17 des Intel® 64 und IA-32 Entwicklerhandbuch für Architekturen, Band 3B, für spezifische Details des Zeitstempel-Zählerverhaltens ( ).
(siehe x86 tag Wiki für Links zu Handbüchern)
Normalerweise wird die TSC wird nur für Relativmessungen zwischen zwei Zeitpunkten verwendet wird, oder als Zeitquelle. Der absolute Wert ist offensichtlich sinnvoll. Es tickt bei der CPU-Nenntaktfrequenz, unabhängig von der stromsparenden Taktfrequenz, mit der es tatsächlich läuft.
Sie müssen möglicherweise sicherstellen, dass Sie den TSC von der Boot-CPU eines Multicore-Systems lesen. Die anderen Kerne haben ihre TSCs möglicherweise erst gestartet, nachdem Linux ihnen einen Interprozessor-Interrupt gesendet hat, um sie zu starten. Linux kann ihre TSCs mit dem TSC der Boot-CPU synchronisieren, da gettimeofday()
den TSC verwendet. IDK, ich schreibe Sachen auf, die ich überprüfen würde, wenn ich das selbst machen wollte.
Möglicherweise müssen Sie Vorkehrungen treffen, damit der Kernel den TSC nicht ändert, wenn Sie ihn als Zeitquelle verwenden. Wahrscheinlich über eine Boot-Option, die Linux zwingt, eine andere Zeitquelle zu verwenden.
- 1. Gesamte Netzwerktransferzeit von Servlets messen
- 2. So messen Sie die Besuchszeit eines Benutzers
- 3. So erstellen Sie einen Rahmen für die gesamte Tabelle
- 4. So messen Sie die Gesamtleistung von parallelen Programmen (mit Papi)
- 5. Messen Sie Netzwerkverkehr programmgesteuert auf dem iPhone
- 6. Messen Sie die Textlänge vor dem Rendern
- 7. So messen Sie die Zeit von WebSocket zu reagieren
- 8. So messen Sie die Zeit in Millisekunden-Genauigkeit nach Thread
- 9. So messen Sie Sails.js Anfragen/Antwortzeit
- 10. So messen Sie den Fortschritt der Softwareentwicklung
- 11. Android: So messen Sie die Gesamthöhe von ListView
- 12. So messen Sie die Größe eines C# -Programms
- 13. Ändern Sie die gesamte Benutzeroberfläche auf Orientierungsänderung
- 14. Intel Atom oder ARM für schwere Signalverarbeitungslast
- 15. So laden Sie eine GESAMTE Webseite vorab
- 16. So wählen Sie die gesamte Spalte auf Header Klicken Sie auf Vaadin Tabelle?
- 17. Messen Sie die Aussprechbarkeit eines Wortes?
- 18. Kann ich Fehler bei der Verzweigungsvorhersage auf einer modernen Intel Core CPU messen?
- 19. Cookie für die gesamte Website?
- 20. Board nicht richtig drucken
- 21. Messen Sie Zeit für Android-Anwendungen
- 22. Wie messen Sie die Java-Ausführungszeit?
- 23. Ändern Sie die TastaturApparent für die gesamte App
- 24. Scrum-Board/Task-Board und Farbcodierung
- 25. Messen Sie die Pfadlänge in Blender Script?
- 26. So messen Sie die benötigte Größe für eine Schaltfläche in Java
- 27. Wie genau messen Sie die Zeichenbreite?
- 28. So messen Sie den Kontrast in OpenCV + Visual C++
- 29. Wie messen Sie die Laufzeit in web.py?
- 30. So messen Sie CPU und Speicher während des Belastungstests
Welche Distribution verwenden Sie, Ubuntu dh, mit einigen schönen Profiling-Graphen. – xvan
Es gibt Bootchart (http://www.bootchart.org/), aber ich denke, das beginnt nach dem Start von init. –
Danke Brian Cain, gibt es eine Möglichkeit, die volle Startzeit – anikhan