Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Themen - mh1962

Seiten: [1]
1
Lowlevel-Coding / Herausfinden, ob ein MSR implementiert ist
« am: 17. June 2019, 08:54 »
Ich bin jetzt schon zum zweiten Mal über die Frage gestolpert: Wie kann ich eigentlich herausfinden, ob ein bestimmter (beliebiger) MSR auf einem vorliegenden Prozessor implementiert ist?

Beim ersten Mal dachte ich, mach halt "rdmsr" und implementiere einen Exception-Handler. Ich hatte damals aber den Eindruck, dass ein nicht existierender MSR keine Exception auslöst (wobei ich nicht ausschließen will, dass ich damals da was falsch codiert habe und der Eindruck falsch ist). Da ich das damalige Problem dann irgendwie ganz anders gelöst habe, bin ich der Sache dann aber doch nicht weiter nachgegangen.

Jetzt stehe ich wieder vor derselben Frage.

Was ist also der richtige Weg?
2
Lowlevel-Coding / Manipulation TSC-Register - No-Go?
« am: 19. March 2019, 04:34 »
Vor einiger Zeit ist mir schon aufgefallen, dass Linux auf eine Veränderung des TSC-Registers sehr "empfindlich" reagiert.

Dieses Register wird ja üblicherweise mit "rdtsc" gelesen, ist aber als MSR realisiert und kann daher auch mit "rdmsr" gelesen und mit "wrmsr" auch geändert werden. Der Index für dieses Register ist 0x10, also kann man bei Linux auf der Kommandozeile sowas wie "wrmsr 0x10 0x..........." machen.

Ich würde ja naiv erwarten, dass sich damit einfach nur die Systemzeit verändert. Tatsächlich passieren aber sehr interessante Dinge, wie ich jetzt ein bisschen systematischer vertestet habe. Es hängt auch ein wenig davon ab, welche "Clocksource" in Linux ausgewählt ist.

Also, ich erhöhe den Wert von TSC und es ist auch tatsächlich "tsc" als Clocksource ausgewählt. Dann springt die System-Zeit tatsächlich in die Zukunft, aber das System verhält sich von da an seltsam, was das Timing angeht - komische Responsezeiten usw. Muss ich noch etwas näher untersuchen.

Bei anderen Clocksources, u.a. bei "xen" in eben einer Xen-VM passiert auch was Interessantes: Das System "friert" für die angegebene Zeit ein (führt auch keine Timer-Interrupts mehr aus) und danach hat es wieder die korrekte Uhrzeit...

Meine Frage: Ist eine Manipulation am TSC-MSR ein generelles No-Go und wenn ja, warum? Oder ist es nur Linux, was empfindlich darauf reagiert? Auch hier: Warum?
3
Lowlevel-Coding / Bochs-Timing
« am: 11. March 2019, 15:48 »
Als Test-Plattform für meinen Hypervisor habe ich Bochs samt Debugger durchaus schätzen gelernt.

Mit einer Sache komme ich aber bei Bochs nicht zurecht und ich finde auch beim Googlen nicht wirklich die Antwort darauf: Das Timing.

Wenn ein System unter Bochs erst mal fertig gebootet hat und "idle" ist, scheint die Zeit in Bochs zu "rasen". Das macht es auch schwierig, sich da einzuloggen, da das Login schneller auf Timeout läuft als ich tippen kann...

Wenn ich in der bochsrc den Wert für ips bei cpu erhöhe, ist es nicht ganz so schlimm - aber dann wird das Booten in Bochs "noch langsamer" als es ohnehin schon ist. Im Moment benutze ich einen empirisch ermittelten Wert, wo beides sich im erträglichen Bereich befindet, aber so richtig zufrieden bin ich nicht.

Sicher mache ich nur einen dummen Fehler und habe irgendwas noch nicht richtig verstanden. Nur was?

Für Tiipps wäre ich sehr dankbar!
4
Offtopic / Vorstellung
« am: 11. March 2019, 15:41 »
Hallo!

Erst mal vielen Dank für die Freischaltung meines Accounts.

Mein Name ist Manfred. Ich beschäftige mich zwar schon lange mit Betriebssystemen und Hypervisoren, wenn auch mehr als Admin (und Benutzer), bin aber seit einiger Zeit dabei, mich fleißig mit den Grundlagen zu beschäftigen.

Zum "Üben" habe ich in den letzten Wochen mal einen einfachen Hypervisor für den x86_64 geschrieben, der zumindest schon mal ein Linux als Client anbooten kann. Veröffentlichungsreif ist der nicht wirklich, aber ich habe eine Menge dabei gelernt, was ich vielleicht mal in anderen Projekten gebrauchen kann.

Da ja hier viele Leute mit ähnlichen Interessen und sicherlich einem größeren Wissen als bei mir versammelt sind, denke ich, dass ich die eine oder andere Frage hier mal los werden kann...
Seiten: [1]

Einloggen