In your .bochs.cfg file, modify the following line to look like this:Nable wrote:How can I tell Bochs to generate more data about the interrupts?
Code: Select all
debug: action=ignore, cpu0=report
In your .bochs.cfg file, modify the following line to look like this:Nable wrote:How can I tell Bochs to generate more data about the interrupts?
Code: Select all
debug: action=ignore, cpu0=report
Silly hacks like that are never a valid solution. You need to find the actual cause of the problem (which may just be a previous silly hack that you've forgotten about now).kemosparc wrote:Simply I set the RTC frequency through output to port 0x70 after every time I send the IPI.
So, you've tested on 3 different virtual machines (Bochs, Qemu+KVM and Qemu without KVM) and it doesn't work on 2 of them.kemosparc wrote:I have removed the flag --enable-kvm from qemu and the RTC works like a charm.
How can I make it work with --enable-kvm ?
No, actually it probably doesn't "work" on anything (and only gives the illusion of working on some systems sometimes).kemosparc wrote:No, actually it works perfectly on Bochs and Qemu without --enable-kvm, but does not work when I use --enable-kvm; so it does work on 2 and fail on one.
Okay, originally it did not work on any of the above, but I have worked on the code and did some incremental updates, and the main fix that made it work on Bochs and Qemu without --enable-kvm, is that I used to enable the PIC before starting up the APs, so I have moved this code to execute after starting up the APs and this did the trick; while I am playing around with the code as I said in one of my past replies within this post, I used to reinit RTC after each IPI and this fixed it on Bochs only, but I have removed that and applied the other fix which is starting the PIC after starting the APs.
Regarding my ~6 questions for one line of code; do I need to post ~6 questions for every other line of code too?kemosparc wrote:Regarding your question about the v->setPosition it just sets 2 private data members x_pos and y_pos of the object v which is of type Video, and this v is declared local to the RTC, and the RTC fire method is invoked as an interrupt handler and hence interrupts are disabled, so this code cannot happen to execute concurrently especially as the RTC is only configured on the BSP.