IVORs are a BookE thing so only valid for sam460ex but not applicable for pegasso2, there are probably similar fixed exceptions for some of these (or they work differently on BookS PPC is closer to).
For 750, and probably G2 and G4 CPUs as well, check for example "Chapter 11 Performance Monitor" in https://www.nxp.com/docs/en/reference-manual/MPC750UM.pdf Registers required: MMCR0, PMC1, PMC2, SIA, MMCR1, PMC3, PMC4 and the read-only user level versions of them. That's even much closer to the features of performancemonitor.resource than BookE. The interrupt used is the Performance Monitor exception vector offset 0x00F00.
Not sure if performancemonitor.resources uses exception vector 0x00D00 (Trace) as well, or if it's only required by debuggers like gdb.
I've just tried Fedora 12 with qemu ppc and profiling is working correctly. I don't know how it works on linux the profiling but at least the CPU should be configured correctly. So most probably is something related to interrupts
Thanks for porting SonicCD-RSDK, I tested and played it briefly and it seems to work fine with EGL_Wrap and SDL2, full screen is a bit slow but still playable fine in window.
Thank you dear Amiga Community
Sonic under AmigaOs4.1:
MacStudio ARM M1 Max Qemu//Pegasos2 AmigaOs4.1 FE / AmigaOne A1222plus AmigaOs4.1 FE
@afxgroup I don't get what you've tried and what works. Could you please elaborate? Did you try gprof under Linux guest (so installing Fedora PPC veresion on emulated pegasos2) or running QEMU on Fedora Linux host or what exactly was different between when it worked and whtn it didn't?
I think to get function times for profiling just a periodic timer interrupt and getting a stack trace should be enough, not any of the performwance monitoring features @joerk has mentioned so it should probably work even with TCG but I'm lost about what you did and if there's still a problem to look at and if so what that is exactly.
When I watched your video I was surprised that you could watch YouTube in a pretty big window and smoothly.
I'm surprised too. I've just installed AmigaOS 4.1 on the Pegasos II using the amiga-news.de guide, and everything feels painfully slow compared to real hardware.
Are there any settings that you guys use for better performance? Or have things improved in the latest betas? I'm using the latest stable release (8.0.0.0).
Hans
If you're still not compiling your own QEMU and use binaries, maybe you could test the build from here: https://www.emaculation.com/forum/view ... 263c3193971d18ea417df5ecd which is known to work for running MacOS and MaciOS X and may be better then the "official" QEMU Windows builds from qemu.weilnetz.de that aren't even built from the upstream QEMU sources and did have some issues before. I at least know that the emaculation.com builds should work but maybe they aren't faster either.
I've installed Fedora 12 ppc under windows and I've tried gcc with -pg and gprof and everything is working correctly. But as I told you, I don't know how it works under linux. If it is using a timer, an interrupt or something else. I can only say that on linux (using windows) it is working.
I think to get function times for profiling just a periodic timer interrupt and getting a stack trace should be enough, not any of the performwance monitoring features @joerk has mentioned so it should probably work even with TCG but I'm lost about what you did and if there's still a problem to look at and if so what that is exactly.
Using a timer is possible as well, just not as precice, and maybe that's what Linux does (I don't know), but AmigaOS uses the Performance Monitor features of the PowerPC CPUs.
@joerg OK then what specific performance monitor info is needed? We probably can't do all of them but if the one needed here can be added that's a possibility otherwise add an option for AmigaOS gprof to do the same as Linux if the needed performance monitoring info cannot be implemented.
On the other hand profiling under emulation probably would not give results relevant to real machine anyway as things run differently so other than getting a general picture it probably won't help optimising for real hardware for which you also need to do profiling on the CPU you want to optimise for.
I have mentioned before the problem I have with the emulated pegasos2 I use from time to time. When I start streaming a radio station with amigaamp, after a few minutes the network collapses and this seems to be from qemu side because I can't bring it back by just rebooting the system, but I need to close qemu and restart it.
Today I was experimenting a little bit and I saw on Ranger that the status of the PCI ethernet device changed from "FastDevSel" to "int FastDevSel".
Now I am not aware what this is and what it means, but if I get it right, it proves that something changes on the device itself. Does anyone have any clue on why this happens?
Today I was experimenting a little bit and I saw on Ranger that the status of the PCI ethernet device changed from "FastDevSel" to "int FastDevSel".
Now I am not aware what this is and what it means, but if I get it right, it proves that something changes on the device itself. Does anyone have any clue on why this happens?
I am using rtl8139.device v53.4
The driver you are using is the right one, I have a little fewer problems with losing internet connection and it is stable most of the time. I can reproduce it when data is loaded up and down over the network via host and guest. Here too, the machine has to be restarted completely, as restarting AmigaOs4.1 doesn't help.
There were a few new patches, but for the AmigaOne emulation among other things for the correct PCI address assignment. Ac97 also works with this, but I haven't been able to test it yet and whether the network remains stable.
Basically it affects all AmigaOne/Pegasos2/Sam460 machines, so I suspect that something is not working properly within Qemu.
Nevertheless, this could be interesting and maybe help to solve the problem.
MacStudio ARM M1 Max Qemu//Pegasos2 AmigaOs4.1 FE / AmigaOne A1222plus AmigaOs4.1 FE
This way is a bit easier and modifying the AmigaOs4.1 install iso is not necessary. Important is that you use from AmigaOs4.1 Update 3 SiliconMotion chip for it. Because of newer kernel/driver versions the Silicon Motion Chip of Os4depot does not lead to any image output. You should only use this after updates 1 and 2 in order to be able to get FullHD resolutions.
MacStudio ARM M1 Max Qemu//Pegasos2 AmigaOs4.1 FE / AmigaOne A1222plus AmigaOs4.1 FE
Today I was experimenting a little bit and I saw on Ranger that the status of the PCI ethernet device changed from "FastDevSel" to "int FastDevSel".
Now I am not aware what this is and what it means, but if I get it right, it proves that something changes on the device itself. Does anyone have any clue on why this happens?
I am using rtl8139.device v53.4
In this topic you most likely have the answer. Checked Qemu emulation under AOS on native AOS and Linux recently. It seems that on Linux everything works.
Then the problem is not specific to pegasos2 but more likely something happens differently on QEMU with interrupts than on real hardware which gets the AmigaOS rtl8139 driver confused and stop. One can argue if it's a bug in driver or in emulation but unless we understand what exactly is happening in the driver in this case we can't really fix it. This probably needs somebody who knows how this AmigaOS rtl8139 driver works and can tell what could happen or what to test to find out. I can't do much from the QEMU side without that.
Is there an easy way to detect if AmigaOS 4.x is running on QEmu, something easier than checking the fake "QEMU" vendor strings in the emulated EDID monitor data or emulated HD SCSI Inquery data? I'm planning to do some SFS updates and want to disable usage of diskcache.library if SFS is running on emulations like UAE or QEmu.
joerg wrote:Is there an easy way to detect if AmigaOS 4.x is running on QEmu, something easier than checking the fake "QEMU" vendor strings in the emulated EDID monitor data or emulated HD SCSI Inquery data? I'm planning to do some SFS updates and want to disable usage of diskcache.library if SFS is running on emulations like UAE or QEmu.
What does the diskcache.library do together with SFS under AmigaOs4.1 ?
I only ask because I use a real hard disk "SSD" with AmigaOs4.1 under Qemu. I gave the harddisk to Qemu and partitioned and formatted it under AmigaOs4.1. It is no longer included in my main system and is only available to Qemu/AmigaOs4.1.
That they are working on SFS again is really great
Otherwise I couldn't find anything under AmigaOs4.1 that clearly shows that it runs over Qemu. Only that they already found about Ranger DDC Qemu Monitor and the Media ToolBox.
MacStudio ARM M1 Max Qemu//Pegasos2 AmigaOs4.1 FE / AmigaOne A1222plus AmigaOs4.1 FE
@joerg There should be no reliable way to detect it as it aims to emulate hardware so the guest should not care it's not running on real machine or emulation. Therefore you should not use EDID and make decisions for the user as you don't know what config they are using and things may change in the future.
So it's best to let them configure it via env or some other setting or if you want to disable cache for emulated disks (assuming the host has a cache already) then check for the vendor string of the HDD not some other device. But you still don't know if that emulated HDD is backed by a file or a disk partition on the host so maybe disk cache is stull useful. So maybe best is to have defaults working for real hardware and have an option to disable disk cache which the user can set if they are running in a config where this helps but can still leave it enabled for passed through hard disks or partitions. Don't try to be like Windows and be smarter than the user but leave them control which is more Amiga like.
What does the diskcache.library do together with SFS under AmigaOs4.1 ?
It's a disk cache, i.e. it keeps a copy of the most accessed sectors of the disk in RAM making accesses to cached data much faster. On emulation like UAE and QEmu it doesn't cache the contents of the disk, but the contents of the host system disk cache instead, which doesn't make any sense, makes it slower (only a little bit) and especially wastes a lot of RAM which could be used for something else. Especially on the Pegasos2 which doesn't support ExtMem and is therefore limited to only 2 GB RAM that's bad.