QNX/Pentium Extreme SMP Question

I’m at wit’s end here, folks, and I could really use some advice. My QNX install’s performance is vexing me and I can’t figure out how to resolve the issue. At work I’m running some extremely powerful big iron and grew sick of Windows. Our IT staff gave me the go-ahead to switch operating systems since I do embedded development not tied to the Windows OS, so I made the leap to QNX 6.2.1. Before I go on, let me share my system’s specs:

* 4x 3.4 GHz Pentium 4 Extreme Edition w/ 2MB L2 cache
* 4,096MB PC3200 DDR SDRAM (4 DIMMs)
* 300GB 7200RPM SATA Maxtor 6B300SD hard drive

After having read about how efficient the Neutrino kernel was, I was sold. I had QNX on my system within an hour and rebooted into root. At first I was pleased with the interface and bundled apps, but I noticed something that unnerved me.

I first suspected that QNX was only using one of my four processors when I took off my case cover to do a routine dusting. Only one of the CPU heatsinks was hot (very hot, actually) while the other three were only warm to the touch. Running the system profiler program confirmed that only one CPU was being recognized. Under Windows XP all four chips had been in use and I could confirm this by feeling the heatsinks as well as viewing the task manager program. After reading that QNX supported multi-processor configurations, I was stoked. Now here I am running a uniprocessor system because of QNX. What gives?

I upgraded to QNX 6.3 but this didn’t make a difference at all. (I’ll be going back to 6.2.1 anyway since my thirty days with 6.3 are almost up.) My system’s supposed to be fast and I have three blazing processors just waiting to be put to work. For now, they just sit idle and usless. This problem has to be a configuration option somewhere, specifically to do with SMP support. Can anyone throw some ideas my way?

Thank you.

cp /.boot /.altboot
cp /boot/fs/qnxbasesmp.ifs /.boot

This will give you the smp kernel.

Rick…
ps. If the machine still fails to work, send it to me and I will send you a machine which works. ;-)

Also, the 30 period is only for a few developer tools not the whole OS. I wouldn’t be heading back to 6.2.1 so quickly.

Where in the QNX 6.2.1/6.3 documentation is this? I searched all over the net and my QNX install for something like this and never saw it. Shouldn’t there be a control panel with a couple radio buttons for this purpose?

hmm, I just did a “qnx smp how” search on this site, and the answer is right there …

I dunno… If you are going to be building embedded systems with QNX, you need to learn how to create custom boot images, and this is just a real small subset of that.

I agree it might be nice to have the ability to support SMP machines as a development box highlighted somewhere in the docs (Steve are you reading this?)

Don’t hold your breath waiting for a GUI control panel to do this for you either (and I certainly don’t think that is required either).

Rick…

I can certainly write a shell script to copy the files and also two switch between uni/multiprocessor kernels as well as report which is in use at the moment. I’m sure I could distribute it under the GPL but what are the chances of getting it in the official distribution? We shouldn’t have to turn to a community site to learn how to do this; it should be a feature in the system somewhere even if it’s just a little command-line utility.

You’ve already got the shell command, you can’t do much simpler than a single file copy. The only sensible improvement is adding it to the prefs. However, I suspect the original idea was to make the default .boot image an SMP one as soon as everyone was confident it is completely stable and therefore having no need for switching back and forth.

But the SMP kernel can’t run on a single processor, can it?

Of course it can. It’ll just find one CPU only. In fact I’ve just changed over to it. :slight_smile:

Okay, I’ve gone back to QNX 6.1 and this doesn’t work. There isn’t such a file, however in boot/build/ there is a similar one called qnxbasesmp.build. Any idea what’s going on in 6.1? How do I enable SMP support in this version of QNX?

Read up on mkifs

Hopefully you understand by reading the comments in this thread that the SMP support is NOT stable in early versions of QNX 6 (6.1 and even 6.2x). If you still want to test it, you can rebuild a new SMP boot image from the qnxbasesmp.build file using the command “mkifs”.

Well would going back to an earlier version be more stable – less bells and whistles? I have an official QNX 6.0 CD here I borrowed from a friend. I have dual Pentium Pro which if I understand correctly are supported with optimisations in QNX for great efficiency because they were the industrial Intel line for years. Also they are overclocked to 266 MHz.

“early versions” means all early versions.

If you are looking for improvements then 6.3.0 is the one to get.

Are there ways to get 6.3 to run on older hardware that is slower than 700 MHz?

Sure, there is no specific limit on the low end. If you are building a development system, and you want to use the IDE, it will be pretty slow (given the IDE is java based), but if you have enough ram/disk space, you can easily install the whole system on just about any processor.

I know of no specific reason you still couldn’t target a 386ex, but you wouldn’t want to be using graphics or anything.

Rick…

Is there a way to get QNX 6.3.0 to run on older hardware that is slower than 700 MHz? There must be a config file somewhere to hack.

So if I just want to use it as a regular old desktop OS and forget about developing for it, I could run QNX 6.3 on, say, a system with dual Pentium Pro chips overclocked to 266 MHz and 1 MB L2 cache each?

You really should take those recomendations with a grain of salt.

The biggest factor is memory, both HDD and RAM sizes must be met. That said, the HDD size can be reduced to 500 MB and RAM down to 128 MB if you choose not to install the development tools. If you have the memory then developing will not be a problem.

CPU is only a speed issue, QNX like any other OS can run on slow CPUs, it’s just a matter of what you are happy with.