I have one more questions regarding the oprofile extension to work in xenppc guests.

The plain linux implementation sets !always! the vector for the performance interrupt 0xf00 to the function "performance_monitor_exception" in head32.S/head64.S. Depending on wether linux starts profiling this function is set to a dummy or the "real" handler of e.g. oprofile. Now in the virtualized environment each guest set's its own interrupt handler for 0xf00 (Performance monitor interrupt). Because we are running with LPSE[1]=0 as Jimi wrote before the performance interrupt while a Dom is running should be handled from the domain because nothing sets MSR[HV] to 1.

My question is now if the address translation & virtualization ensures that each perf interrupt will be a) served by the right function adress and b) in the domain. Maybe there is some exclusive part involved and the different writes of the 0xf00 vector may overwrite each other or something similar - that's why I want to ask to be sure.

Example of a system with two DomU guests that enabled the performance counters.
0xf00 -> undef?
0xf00 -> default_pmc_irq
0xf00 ->    pmc_irq_handler1
0xf00 ->    pmc_irq_handler2

If now interrupts occur in all those domains (I know we don't set it up but hypothetical) will the system behave the expected way:
Occur in:
Xen -> skip
Dom0 -> call default_pmc_irq in Dom0
DomU1 -> call pmc_irq_handler1
DomU2 -> call pmc_irq_handler1


Grüsse / regards, Christian Ehrhardt

IBM Linux Technology Center, Open Virtualization
+49 7031/16-3385

IBM Deutschland Entwicklung GmbH
Vorsitzender des Aufsichtsrats: Johann Weihen Geschäftsführung: Herbert Kircher Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294

Xen-ppc-devel mailing list

Reply via email to