Running SMP for OS/2 Warp MCP2

March 2007: I use eCS and SMP is included, this page here for reference.
August 2004: I have tried the “replace 4 files” with ECS 1.2 and it does work!

What is this stuff?

This page is my way of combining all the sources I checked into before changing over to OS/2 SMP, how I swapped the system to SMP, and some problems I encountered. Most important, what I learned after I made it into the OS/2 SMP world. Why am I taking time to create this webpage? Easy, after searching the internet for answers I found that there is a lot of ambiguity. This might be due to the lack of persons who use SMP or possibly because once it works, like myself, we just move on to the next challenge. The second leads to somewhere down the road having to re-learn the lesson. I often ask myself, “How did I do that last year?”, either because I am re-learning or someone else is having the same problem. I am open to any comments: greenemk@cox.net.

So as a start here is the background. I have run the UNI kernels (Scott Garfinkle’s testcase kernels) for quite sometime on my MCP2 installed system, which was a AMD K6-III 450 based system. I purchased an Intellistation M Pro 6868 (40U) and installed OS/2 MCP2 (UPDCD) and Linux 2.6.X based operating systems. The system information is located here (not linked yet) if you are interested. Anyway, seeing that the machine ran me $200US and it was SMP capable I decide to search out a matched set of CPUs. I found 2 PIII 933 CPUs on EBAY for $140US and then started to research how to convert the MCP2 install to SMP without having to reinstall OS/2. First, I researched Google for any information on OS/2 SMP. In general, I learned that I would need to install the SMP kernel / loader, SMP DOSCALL1.DLL, and OS2APIC.PSD.

“If you have a multi-processor main board and only one processor installed, then you use the UNI kernel, else you’d be using the SMP kernel. All other mainboards you’d use the W4 kernel. If you’ve installed the UNI kernel, then the fixpack assumes that you have an SMP capable mainboard. Thus, it installs the SMP aware device drivers, even thou you do not have the license for the SMP version of OS/2. Personally I think that is an installer bug.”

This seems to be the answer except I am using the UNI kernel to install rather than just applying a fixpak. So, what is my point? You can try to just add the magic files, but your system may not run correctly if all the required SMP files are not installed. Consider this my disclaimer. One might try to modify the installation floppies with the UNI or SMP kernel and this might fool the installer to add SMP files.

Here are some of the main points that I came across during my Google searches:

1. MCP2 does not support SMP. Well, that is true and not true. I have not found OS2APIC.PSD on the MCP2 CD, but you can make MCP2 a stable SMP system. I can only assume the same holds true for MCP1.

2. An individual needs a license from IBM for the WSeB files to run SMP. Ok, I am not an expert on IBM licensing. This might be wrong headed, but I do not see IBM taking legal action against piecing together a SMP system. Let us face it, I do not think IBM cares. Just as a note, I saw on EBAY earlier this year an individual selling a stack of OS/2 (version unknown) paper license from a business that closed.

Something I found interesting from; a VOICE newsletter, An OS/2 History Lesson: OS/2 2.1 by Michal Necasek, about OS/2 2.11 SMP. This was the first SMP OS/2 version and gives a brief explanation as to how SMP was added to regular OS/2 2.11:

“Its authors took OS/2 2.11 – which was not really designed with SMP in mind – did some magic to key components (primarily kernel, loader and DOSCALL1.DLL) and ended up with one of the best SMP operating systems.”

I thought that was some historical reason these files are changed to enable SMP.

Putting it Together.

I was waiting for the CPUs to arrive, but decided to change the files and test the kernel with the system. Just as a precaution, and I do not know if it helped or hurt, I installed OS2APIC.PSD with the /p:1 or initialize with one CPU. Next I installed the SMP kernel (testcase smp20040330.zip). Finally, I installed the SMP DOSCALL1.DLL using repmod from Hobbes. Now came the reboot and it worked! During the boot, when OS2APIC.PSD loaded, I saw the message that 1 CPU had been initialized. So, far everything seemed in a working state and for the next couple days I ran SMP with one CPU. Please understand, I ran the SMP kernel in a one CPU system to verify everything was working correctly and I was expecting the matched set of CPUs to arrive. It is not recommended to run the SMP kernel on a single CPU system. Matter of fact, I have been told this would be “ridiculous”.

Next, the CPUs arrived and I jumped right into installing. Maybe a little more up front preparation would have helped. I did have the Linux kernel compiled as SMP and had booted to OS/2 to change the OS2APIC.PSD parameter to /p:2, but had I thought about it earlier I should have set the OS/2 hardware detection to full detect during next boot. Would that have helped? I do not know but it was something that came to mind after the fact. So, I replace the stock PIII 800EB with 2 PIII 933s and started the system. I first verified that both CPUs were detected in the BIOS. The system detected both CPUs so I reboot and start Linux, both CPUs initialized but Linux did hang on the first boot. The second try went great and KDE was up and running. Now what I was really looking forward to see – OS/2 SMP. I rebooted and started to load OS/2. I saw the message that 2 CPUs had been initialized and then I got that “damn! that’s not right feeling…”, I started getting strange messages about HPFS386 errors and disk problems. Then the system hung! Well, there was nothing left to do but power it off and try one more time. On the second boot OS/2 came up and my first indication, no matter what had gone wrong the first boot, that the system was running SMP was the CPU usage display on XCenter. That is all there is!! I have been running OS/2 SMP since that boot and I am very happy.

cpumeter

Here are some of the issues I encountered before and after going SMP.

1. It was rumored that SNAP did not play well running SMP. This might have been true but I had the SNAP 2.9.0 Beta install before switching to SMP and have had no SNAP related problems. I am a registered user of SDD / SNAP Graphics and have used it for a few years with very good luck.

2. There is an SIQ problem which causes WPS lockups. I thought I had this problem and was upset. I would be using Mozilla or Openoffice1.1.1 and the WPS would freeze. The mouse moved and I could tell the system was still working, just the WPS locked. A Ctrl+Alt+Del would cause a orderly shutdown and reboot without chkdsk running. A SIQ problem? I did not think so, rather I thought Mozilla or OO1.1.1 was causing the problem. After these reboots I would find a zero size file named ftlibex.log in the root boot directory. I was sure that some Innotek program was causing this problem. Maybe Font Engine or Runtime, I do not know for sure because I have everything Innotek releases installed. I tried to set OO1.1.1 as a single processor program using execmode and it did not help. Before I had a chance to try anything else Innotek released “InnoTek Runtime for OS/2 1.11 Build 18” and I installed it. Since this update I have had no WPS lockups. In fact, in the Innotek Runtime list of changes it states “several SMP fixes”.

3. Recently on USENET several debates have raged as to whether SMP is really worth installing. I do not know in a technical sense, but for me yes. Here are the SysBench results from my system –

All Tests: One CPU Results Two CPU Results

Ok, those are the benchmarks from my system. What is the important measure? I think it would be the HIF (How IT Feels) measurement which is a very a non-scientific test. From my perspective, after running the system as a single PIII 800 and during the short time I ran it with one of the PIII 933s offline, the system runs better as an SMP machine. My test programs for this measurement: First, Mozilla 1.7rc2 with browser, mail, and chatzilla open – snappy which is something I never imagined saying about Mozilla. Second, JEdit utilizing Innotek Java 1.4.2 – it makes Java programs usable. Last, not a program but OS/2 seems to run better / snapper / faster (what ever you would like to call it) than Linux SMP on the same system (Kernel 2.6.6 w/mm patch). Remember this measurement is very biased, so take it for what it is worth.

4. Problem running SMP and PEER. There seems to be a problem using PEER and SMP. The problem is addressed on the Tavi Systems (Bob Edgar) webpage, Notes on using SMP on MCP.

5. Misc stuff. A Google search found Dink telling you how not to install SMP on a Warp 4 Fixpak13 system. Remember what I said, you may need additional files and . Also, I found this in my searches and have been informed that it has not been fixed as of 2 June 2004:

Scott E. Garfinkle
Organization: NCSD OS/2 Service
Newsgroups: ecomstation.support.smp

 

do yourself a favor, though, and don’t use /APIC — it breaks stuff more
often than if helps, at the moment. This is on my list of stuff to do in August 2001.

 

Some SMP information.

Notes on using SMP on MCP by Bob Edgar
OS/2’s Symmetrical Multiprocessing Demystified Ted Waldron III (EDM/2)
OS/2 SMP on a dual Athlon PC by Julien Pierre (Voice)
Retrofitting OS/2 for SMP by Michael S. Kogan (Byte.com 1994)

Where to find the files.

SMP Kernel (http://www.os2site.com => Software => Upgrades => Kernel)

smp20040330.zip (TestCase SMP Kernal for WSeB FP3/ACP. 30th March 2004)

MCP Fixpak XR_C004 : OS2.2 Directory:

DOSCAL1S.DL_ => DOSCALL1.DLL (10-10-03 4:06p 144421)
DOSCAL1S.SY_ => DOSCALL1.SYM (10-10-03 4:06p 43828)

xr_e003.edk (ftp://service.boulder.ibm.com/ps/products/os2/fixes/v4.5warp/english-us/xr_e003)

OS2APIC.PS_ => OS2APIC.PSD (2-13-02 2:23p 31232)

 

How to Install SMP Files

The easy part:

1. Replace OS2LDR and OS2KRNL in the root boot directory.

attrib -r -h -s OS2LDR
copy the SMP OS2LDR to boot partition
attrib +r +h +s OS2LDR

 

attrib -r -h -s OS2KRNL
copy SMP OS2KRNL to boot partition
attrib +r +h +s OS2KRNL

Note: It seems to me that the UNI and SMP OS2LDR are the same, at least by simple compare.

2. Place OS2APIC.PSD in X:\OS2\BOOT directory, of course X: is your boot drive. Add the following as the first line in your CONFIG.SYS:

PSD=OS2APIC.PSD

3. Replace DOSCALL1.DLL with the SMP version. You can boot with floppy or CDROM and copy this into X:\OS2\DLL. I use REPMOD from hobbes because I can never find the CD or boot floppies when I need them.

Created 3 June 2004 (Updated 4 June 2004)