OS_ClaimProcessorVector again
Clive Semmens (2335) 3276 posts |
Personally, I really don’t feel the need for a modern browser on RISCOS. NetSurf does for any browsing I do on RISCOS. I use a Mac for normal browsing. I don’t expect my Pi to do everything I use a computer for. The Pi is there to do the things RISCOS is good at. |
John Rickman (71) 646 posts |
Personally, I really don’t feel the need for a modern browser on RISCOS. It’s not all about you Clive:-) |
Clive Semmens (2335) 3276 posts |
8~) Of course; hence the “personally” bit! |
Colin Ferris (399) 1814 posts |
Note VRPC DL can run at least 4,5 and 6. |
George T. Greenfield (154) 748 posts |
5? Really? No mention of RO5 here: |
Rick Murray (539) 13840 posts |
I’d say about 5% the regular names on the forum, and about 95% the people actually doing the work. That’s why I said that I think the vector handling will likely be split out into it’s own source, and then a second copy updated with older machines getting the original (no longer updated) code.
The more one needs to switch systems to get stuff done, the less one will be favourable to RISC OS. I’ve not actually sat in front of RISC OS for a couple of weeks now. I write my blog articles on the tablet and do browsing on the tablet or phone. Because Firefox can cut it. Netsurf really cannot.
This. If people have to swap machines because of the limitations of one, how long until they simply stop using the limited one?
It’s still being developed and runs on contemporary machines. That’s better than most operating systems of its time.
Maybe he meant four and a half? ;) |
Clive Semmens (2335) 3276 posts |
Sure, I’d love to do everything on RISCOS. But is that really a realistic objective? But yes, I’m one of the regulars, not one of the workers. Don’t take any notice of me. |
George T. Greenfield (154) 748 posts |
Me too – and it’s an important distinction. I justify my interventions (to myself) by (a) a commitment to RISC OS lasting almost thirty years; (b) being a regular user with a practical, as well as emotional, commitment to the platform; (c ) that feedback based on experience might be useful occasionally. But I am well aware that the heavy lifting is being done by others, and I am very grateful to them for doing it. |
Peter Howkins (211) 236 posts |
The “we” that make the decisions are the people doing the work. Which as far as I can tell, means about one person talking in this thread (and quite likely a few others who aren’t interested in discussing it with the armchair experts on the forums). |
Clive Semmens (2335) 3276 posts |
Exactly. |
Rick Murray (539) 13840 posts |
Armchair? It’s posh you are then. (cue somebody pointing out that the ARM is in the Pi…) |
Jon Abbott (1421) 2651 posts |
Pretty much! It’s clear from the discussion above that some people still want to maintain older machines, so !System maintenance will have to stay for the forceable future. What I’m advocating is to drop them from the current OS kernel, so you don’t have to make compromises around modern standards and security to support them. In regard to the OP, I’m suggesting we follow ARM ARM and start addressing the user code elevation issue.
The “we” are the community and “we” don’t get to decide anything, all we can do is air our opinions on the forum. The OS devs make the decisions as they are doing all the work. In regard to the OP, I’ve added my view on the proposed change as someone that has good knowledge of Abort handlers, and someone that would have to change current code to support the changes. Why other “armchair experts” have joined in is probably because my comments have either stuck a chord or a nerve ;) I don’t have a problem with the armchairs myself, you don’t have to be coding the thing in question to offer an opinion on its direction. All of my own coding is community led after all. |
Stefan Fröhling (7826) 167 posts |
@ David Ruck
It might be time for RISC OS 7 that requires minimum ARMv7 so that it can be speed-optimized with NEON and hardware VP, maybe 3D GPU and video GPU support on the RK3399. When multi-threading is ready it is time for a new number and a new chapter of RISC OS. @Bryan Hogan
Right but do they want to run a desktop system? If we can get 0.01% of all Raspberry Pi 3 & 4 users that would be already a revolution for RISC OS and therefore that should be our aim (or one of them). @Jeffrey Lee
Forget about ARMv6! Everyone can buy a Raspberry Pi 4 for 50 UKP. If not we better get donations for them instead of leaving RISC OS unattended in the ICU. We need multi-threading soon (maximum 12 month) and not in some years. So please(!) focus on getting the job done and not getting stuck in side-features that nobody needs. |
Stefan Fröhling (7826) 167 posts |
We have Iris now which supports HTML5 and Javascript but the speed cannot compete yet with a Windows machine as it is only 1 core-powered. |
Chris Hughes (2123) 336 posts |
Stefan
Stefan, are you employing Jeffery at commercial rates. He is doing this work in his own spare time, for nothing and for the love of RISC OS. For which I thank Jeffery for all his hard work. So Stefan, its NOT up to you to dictate to Jeffery what he does with his time, or when its ready, it will be ready when its ready.
Here you go again! Iris is only configured to work on one core currently so would need more work at a cost. Once again you are pushing Jeffery here about multi-core, please stop Stefan. I know you had multi-core as part of your Cloverleaf roadmap which was not on a realistic timetable. |
Rick Murray (539) 13840 posts |
I trust that you understand, Stefan, that any multithreading will be a bolt on separate system that “compatible” tasks will be able to make use of. There will not be multiple core task sharing around the available processors within RISC OS as it stands. If you disagree, please explain how you plan to overcome things such as the numerous parts of the OS that are not reentrant (we already have to be really careful in service call or vector code) and also how you think things like Wimp_MessageRecorded would work when tasks are running asynchronously on multiple processors. I have advocated in the past that other cores are treated in a way similar to the Tube where the primary core (and RISC OS) is in control, and applications can pass code to the other cores to be executed. It’s not “proper” multi core, but perhaps the best we can expect without a rewrite of large parts of the OS (and the API). At least like that the extra processing power will be available in some manner.
Hmm, 1.x GHz ARM vs 3GHz x86? ;-) Right, I’m off to have a needle stuck in me by a nice woman who’s the daughter of somebody I work with. |
David Feugey (2125) 2709 posts |
You can do this and support older processors.
No. It’s easy to configure Chromium on Raspbian for 1 core… and see it still much faster than Iris.
… and it’s easy to use Chromium on a Pi4 to see it can’t compete with a Windows machine.
Correct. If we have the equivalent of light threads, I’ll consider us to be very lucky. Full SMP/PMT is really another thing.
Perfect… |
Jon Abbott (1421) 2651 posts |
We’re digressing from the OP here, but Iris’s performance issues will be down to a lack of multi threading and in particular the lack of a threaded file system. FileCore needs to be deprecated and replaced completely as there are too many issues with it, both with the Module and the FS. |
Stefan Fröhling (7826) 167 posts |
@ Chris Hughes This also change decisions if you do something for your own fun, or for 30 users or for x million of users. PS: I have no idea how long Jeffrey will need to implement all what is needed. But I know one thing for sure: Working on stuff to include old RISC OS machines will delay the release of the multi-threading and should be prevented. As time means lost new users and less old users (RIP). About !Iris: |
David J. Ruck (33) 1635 posts |
RISC OS has so many bottlenecks, there isn’t room the rest of the bottles. |
Jon Abbott (1421) 2651 posts |
In relation to the OP, you have to wonder how much time is spent on the SWI handler on apps such as Iris. Perhaps we need to modify CLib and the OS to replace CLib’s inefficient SWI handler with direct calls via a jump table? Just an idea. Iris needs profiling to find out where the delays are. The hardware vectors themselves are pretty efficient, I’ve clocked 6+ million Aborts per second on self-modifying code on a Pi1 and the game in question was still running at it’s expected speed. Any multicore compliant replacement would certainly slow things down a bit due to the abstraction, but that’s vastly offset by virtue of other cores continuing to run code. I’m assuming aborts are core specific of course, stalling the whole CPU for one core would be bonkers. |
Jeffrey Lee (213) 6048 posts |
CLib only uses SWIs for registering clients; the calls to the library functions have always been handled via a jump table. Compared to a normal function call, the only overhead is an extra LDR PC,[PC,#xxx] instruction. For frequently used functions on a modern CPU I’d expect the overhead to be one cycle or less.
Yes, aborts are core specific. |
Stuart Swales (8827) 1357 posts |
Is Jon talking about _swix() here – that is truly evil. |
Rick Murray (539) 13840 posts |
I have long railed against the horror of swix, but people seem to like the convenience and to hell with what’s going on under the bonnet… :/ |
Jeffrey Lee (213) 6048 posts |
Ah, sorry! _swix() could be implemented as a compiler intrinsic, giving it performance that’s close to more direct wrappers like OSLib. Direct calls (bypassing the kernel’s SWI dispatcher) would be tricky, since you’d still want to be able to do things like allow the target module to be killed (or replaced) in a safe manner, and for multi-core the kernel needs to spot when an unsafe SWI is being called so that it can force the system into single-threaded mode. And then for applications you’ve got the obvious things like needing to switch from user mode to a privileged mode, and dealing with callbacks & error raising on return. |