NetWare 4.x MPS14.PSM not detecting SMP on Vbox

Discussions about using non Windows and Linux guests such as FreeBSD, DOS, OS/2, OpenBSD, etc.
Kumba
Posts: 44
Joined: 2. Aug 2011, 05:48
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: WinNT4, Win2k, Win2k3, Win2019, Win11, Devuan, OpenBSD, MS-DOS 7.10, NW312, NW42SP9, NW65SP8, OmniOS

NetWare 4.x MPS14.PSM not detecting SMP on Vbox

Post by Kumba »

Time to ressurect the venerable old NetWare from the grave once more.

It's well known (via past posts of mine here) that NetWare SMP support in Vbox is basically a no go, because NetWare did some reportedly screwy things that were non-standard to do SMP. But, that, I am hoping, is for NetWare 5.x and up, which appears to rely on the ACPIDRV.PSM module for handling SMP.

So I thought, what about NetWare 4.x? That uses the old MPS v1.4 stuff to do SMP, via MPS14.PSM. So I threw 6 CPUs into my working/stable NW42 VM (yeah, yeah, I know, 6 CPUs is overkill for NW), booted into MS-DOS first, then ran "SERVER -ns" to abort STARTUP.NCF, and then attempted to load MPS14.PSM manually. This is the output I get:

Code: Select all

Loading module MPS14.PSM
  Platform Support Module for NetWare 4.11 SMP and MPS v1.4 compliant systems.
  Version 1.00u   April 8, 1999
  Copyright (C) 1987-1999 Novell, Inc.  All Rights Reserved.
System is not MPS Compliant
FATAL: errors getting MPS hardware configuration
  SERVER-4.11-1553: Module initialization failed.
  Module MPS14.PSM NOT loaded
I looked at the Vbox debug log, and it says this:

Code: Select all

00:00:01.708666 PcBios: [SMP] BIOS with 6 CPUs
00:00:01.708755 PcBios: MPS table at 000e1300
So...why can't NW42's old MPS14.PSM module read Vbox's MPS table? AFAIK, MPS v1.4 was the last before ACPI became the defacto standard. Is this something that could potentially be addressed from the VBox end, seeing as whoever owns Novell now is very unlikely to patch a 17-year old OS? Is there some setextradata widget that can be frobbed to play with MPS settings? I'm finding it very difficult to locate a list of all available setextradata switches, so, not ruling it out. I can open a bug for this, but would first like to know what the VBox devs would want to see in such a bug report that could help them track this one down, if they're bored enough.

After all, this is NetWare 4 we're talking about here. One of the most legendary OSes ever crafted by the hands of mere mortals. Such systems could run for *years* without a single patch and never suffer any kind of problems...


PS, SMP is still broke on NetWare 6.5. Parity error from the system board...which given this is a VM, seems rather odd. Wouldn't mind helping to chase that one down, since I have working VM's, but I need to know what info is needed. May have to try 5.1 at some point...
michaln
Oracle Corporation
Posts: 2973
Joined: 19. Dec 2007, 15:45
Primary OS: MS Windows 7
VBox Version: PUEL
Guest OSses: Any and all
Contact:

Re: NetWare 4.x MPS14.PSM not detecting SMP on Vbox

Post by michaln »

6 CPUs is probably a bad idea. Start with something more realistic, like two.

I don't know what NetWare doesn't like -- NT, OS/2, Solaris, Linux, etc. all work with the MPS tables provided by VirtualBox. Unless you can convince NetWare to provide better diagnostics, the only way would be to take the PSM module and disassemble it.

Does NW SMP actually work on a ~Core 2 class system, or does it expect some older Pentium/P6 style hardware?

I think I was able to get some older NetWare to run with SMP, but don't remember the details. Hmm, looks like 4.2, the interesting NLMs are apparently MPDETECT, SMP, and MPDRIVER.
Kumba
Posts: 44
Joined: 2. Aug 2011, 05:48
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: WinNT4, Win2k, Win2k3, Win2019, Win11, Devuan, OpenBSD, MS-DOS 7.10, NW312, NW42SP9, NW65SP8, OmniOS

Re: NetWare 4.x MPS14.PSM not detecting SMP on Vbox

Post by Kumba »

michaln wrote:6 CPUs is probably a bad idea. Start with something more realistic, like two.

I don't know what NetWare doesn't like -- NT, OS/2, Solaris, Linux, etc. all work with the MPS tables provided by VirtualBox. Unless you can convince NetWare to provide better diagnostics, the only way would be to take the PSM module and disassemble it.

Does NW SMP actually work on a ~Core 2 class system, or does it expect some older Pentium/P6 style hardware?

I think I was able to get some older NetWare to run with SMP, but don't remember the details. Hmm, looks like 4.2, the interesting NLMs are apparently MPDETECT, SMP, and MPDRIVER.
Well, per TID10052541, it looks like NW4 can support 4+ CPUs, though it appears to be rare. The default license gives you up to 4 CPUs, but you have to purchase additional SMP licenses beyond that. I do recall there was a particular IBM machine that allowed up to six Pentium 2 CPUs in it, so definitely in the realm of "realistic". Anyways, my "yeah, yeah" comment was implying I knew that 6 CPUs was silly, it was just for a quick test. I've already tried two CPUs and that didn't work either.

That TID, however, goes into some additional detail (emphasis is mine):
1. Make sure you have a compatible Platform Support Module(PSM). Most servers will use the MPS14.PSM file that ships with NetWare 4.11. The major exception to this is Compaq servers which will use the CPQSMP.PSM module. The MPDETECT.NLM (automatically called by INSTALL.NLM when the SMP option in install is chosen) will usually select the correct PSM. Other machines with proprietary PSM modules include CBUS_II.PSM For Corollary, Inc. C-bus II systems, NFPSM.PSM for NetFrame MP systems, and TRI_SMP.PSM for Tricord MP systems.

In order to use the MPS14.PSM file, the hardware must be STRICTLY compliant with the Intel MP 1.4 specification. Any deviation from this specification can cause problems when using the MPS14.PSM module.

2. The BIOS must also comply with the specifications. Because the MultiProcessor table is created by the BIOS, it is critical that the BIOS comply completely with the Intel MP specification. Version 1.4 of the Intel MP specificaton extended the configuration table. The revions were made 7/1/95. If the BIOS is not at least several months newer than this, then it is guranteed not to be completely compatible with the specification. If the motherboard, and especially the BIOS are not 100% compatible with the specification, then NetWare SMP will not operate properly. The BIOS on most MP machines has an option to enable or disable additional processors. In order for SMP to work, the additional processors must be enabled. Compaq machines require that the operating system be specified in the configuration. NetWare SMP must be selected in the configuration for the Compaq machine to work properly with NetWare SMP. If you are having trouble getting NetWare SMP to recognize additional processors, often a newer BIOS or configuration utility will help to resolve the problem.
So going by that, my guess is NW is very fickle about deviations on specifications, and maybe there's some wibbly bit in the way VBox presents the MPS table that works fine for all other OSes, but which the MPS14.PSM module takes issue with. Without the MPS module loaded, it appears that SMP.NLM and MPDRIVER.NLM aren't even in the equation right now, as attempting to load SMP.NLM w/o MPS14.PSM throws an unknown symbol error for "DoRealModeHalt", and MPDRIVER.NLM throws a bunch more unresolved symbols. And, if I try to load MPDETECT.NLM without the PSM loaded, it simply returns 1 processor.
michaln
Oracle Corporation
Posts: 2973
Joined: 19. Dec 2007, 15:45
Primary OS: MS Windows 7
VBox Version: PUEL
Guest OSses: Any and all
Contact:

Re: NetWare 4.x MPS14.PSM not detecting SMP on Vbox

Post by michaln »

"Strictly compliant" is useless, unfortunately. Are the other OSes which work not strictly compliant? It would be much more useful if there was a clear statement of what it is that NetWare requires or rejects. It's not like the specification itself doesn't allow any variation.

In the Pentium Pro/Pentium II days, dual processor servers were not unheard of but quad-CPU systems were rare (and super expensive), and only a few custom designs went past that. Software can be assumed to have gotten minimal testing on systems with lots of CPUs.

Anyway, what's the full output of 'load mpdetect' in your VM? 2 VCPUs please, going for more only makes sense if two work. I get a few lines ending with 'MPDetect: Number of Processors: 2'. That's MPDETECT.NLM version 1.0, 1996.
Kumba
Posts: 44
Joined: 2. Aug 2011, 05:48
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: WinNT4, Win2k, Win2k3, Win2019, Win11, Devuan, OpenBSD, MS-DOS 7.10, NW312, NW42SP9, NW65SP8, OmniOS

Re: NetWare 4.x MPS14.PSM not detecting SMP on Vbox

Post by Kumba »

michaln wrote:Anyway, what's the full output of 'load mpdetect' in your VM? 2 VCPUs please, going for more only makes sense if two work. I get a few lines ending with 'MPDetect: Number of Processors: 2'. That's MPDETECT.NLM version 1.0, 1996.
This is what I get:

Code: Select all

Loading module MPDETECT.NLM
  NetWare Multi-Processor Detection Module
  Version 1.00    July 1, 1996
  Copyright 1996 Novell, Inc.  All rights reserved

MPDetect: Number of Processors: 1
VM Setup is:
  • Vbox 5.0.20
  • NetWare 4.2 w/ 4.11 SP9
  • Boot is MS-DOS 7.10
  • 2 VCPUs
  • 512MB RAM
  • PIIX3 Chipset
  • IO/APIC is checked
  • PAE/NX is unchecked
  • VT-x/AMD-V is checked
  • Nested Paging is checked
  • 16MB VRAM
  • 3D is unchecked
  • Primary disc is SCSI/BusLogic
  • No audio/serial/USB
I'd be interested in how you got 2 CPUs detected? What NetWare did you test on? And, supposedly, MPDETECT also informs which PSM is suitable for use, as it appears to contain rather generic/agnostic detection logic to discover available CPUs and it's what is used by INSTALL.NLM to select/guess the right PSM module.

I also discovered that MPS14.PSM has a few optional parameters, but I tried several combinations and there wasn't any change. I can drop into the NetWare debugger with the '-d' switch upon module load, so there might be some low-level debugging that can be done to work out why MPS14.PSM isn't picking up the additional VCPUs. Though, debugging 32-bit IA-32 is not my strong point (I'm a *little* better at old-school MIPS).
Kumba
Posts: 44
Joined: 2. Aug 2011, 05:48
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: WinNT4, Win2k, Win2k3, Win2019, Win11, Devuan, OpenBSD, MS-DOS 7.10, NW312, NW42SP9, NW65SP8, OmniOS

Re: NetWare 4.x MPS14.PSM not detecting SMP on Vbox

Post by Kumba »

I'll also add, it appears that SMP was very new for NW4. Most of the core OS NLMs are not SMP-aware and always execute on CPU0, regardless of the number of CPUs. Novell apparently added enough logic to allow NLM's that were built for SMP to run on additional processors as needed. True multi-threading and SMP capabilities weren't realized until NW5.0, when the core OS NLMs were rebuilt for SMP, along with SERVER.EXE and the CLIB. I suspect they discovered that MPS14.PSM was a bit finnicky, which is why they wrote real ACPI detection via ACPIDRV.PSM with the 5.0 release. I tried a 5.1 copy of ACPIDRV.PSM on NW4 and got a bunch of unresolved symbol errors, though (sometimes, newer NW NLMs happen to be backwards-compatible). I may have to try and hunt down an NW50 copy and try that out, just to see if it's old enough to play with NW4.
michaln
Oracle Corporation
Posts: 2973
Joined: 19. Dec 2007, 15:45
Primary OS: MS Windows 7
VBox Version: PUEL
Guest OSses: Any and all
Contact:

Re: NetWare 4.x MPS14.PSM not detecting SMP on Vbox

Post by michaln »

What I tested with is NetWare 4.11/4.20. I don't remember exactly what it is or how I set it up, the VM is too old. I know next to nothing about NetWare anyway. If you want to know the timestamp/file size of certain files, let me know.

My VM has 128 MB RAM, MS-DOS 6.22, and I'm using IDE rather than SCSI. None of that should make any difference, except possibly the amount of RAM.

Here's what it looks like (that's with the 'SMP' module already loaded):
NetWare 4.20 SMP
NetWare 4.20 SMP
nw-4.20-smp.png (8.39 KiB) Viewed 12507 times
Kumba
Posts: 44
Joined: 2. Aug 2011, 05:48
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: WinNT4, Win2k, Win2k3, Win2019, Win11, Devuan, OpenBSD, MS-DOS 7.10, NW312, NW42SP9, NW65SP8, OmniOS

Re: NetWare 4.x MPS14.PSM not detecting SMP on Vbox

Post by Kumba »

michaln wrote:What I tested with is NetWare 4.11/4.20. I don't remember exactly what it is or how I set it up, the VM is too old. I know next to nothing about NetWare anyway. If you want to know the timestamp/file size of certain files, let me know.

My VM has 128 MB RAM, MS-DOS 6.22, and I'm using IDE rather than SCSI. None of that should make any difference, except possibly the amount of RAM.

Here's what it looks like (that's with the 'SMP' module already loaded):
nw-4.20-smp.png
And, I assume, MPS14.PSM is loaded as well? What's the version/datestamp/filesize on that module?

Can you posted or upload the CONFIG.SYS and AUTOEXEC.BAT files of your underlying MS-DOS instance? AFAIK, NetWare somehow unloads DOS when SERVER.EXE loads up, and reloads it back upon exit. So in theory, that shouldn't matter, either. But seeing as I am running a rare MS-DOS version (7.10 is what Win95 ran on top of), I can't rule out that's doing something a bit odd that may block NW from detecting the CPUs.
michaln
Oracle Corporation
Posts: 2973
Joined: 19. Dec 2007, 15:45
Primary OS: MS Windows 7
VBox Version: PUEL
Guest OSses: Any and all
Contact:

Re: NetWare 4.x MPS14.PSM not detecting SMP on Vbox

Post by michaln »

Kumba wrote:And, I assume, MPS14.PSM is loaded as well? What's the version/datestamp/filesize on that module?
MPS14.PSM is 14,254 bytes, dated 08-02-96 7:41p. I assume it got implicitly loaded but don't know how to check. Certainly none of the other PSMs would apply.
Can you posted or upload the CONFIG.SYS and AUTOEXEC.BAT files of your underlying MS-DOS instance? AFAIK, NetWare somehow unloads DOS when SERVER.EXE loads up, and reloads it back upon exit. So in theory, that shouldn't matter, either. But seeing as I am running a rare MS-DOS version (7.10 is what Win95 ran on top of), I can't rule out that's doing something a bit odd that may block NW from detecting the CPUs.
I thought DOS remained loaded by default (which is why DOWN/EXIT can go back) but yes, if DOS somehow overwrote the MPS tables then NetWare couldn't find/use them.

Anyway, I hardly have anything in the DOS configuration:
NetWare 4.20 DOS
NetWare 4.20 DOS
nw-4.20-dos.png (5.95 KiB) Viewed 12504 times
And yes, I think the benefits of SMP in NetWare 4.x are a bit underwhelming, but then again it typically got used as a file server and not an application server, so the servers were typically I/O bound and not CPU bound. Still, it's fun.
Kumba
Posts: 44
Joined: 2. Aug 2011, 05:48
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: WinNT4, Win2k, Win2k3, Win2019, Win11, Devuan, OpenBSD, MS-DOS 7.10, NW312, NW42SP9, NW65SP8, OmniOS

Re: NetWare 4.x MPS14.PSM not detecting SMP on Vbox

Post by Kumba »

Can you send me your MPS14.PSM somehow? I do appear to have a newer version, 04/08/1999 1:52pm, 16,071 bytes. This file is typically stored in the C:\NWSERVER folder (or wherever you're launching SERVER.EXE from).

You can check its version by CD'ing into the NWSERVER folder, running "SERVER.EXE -ns", which prevents the STARTUP.NCF file from loading, then type "load mps14" from the server prompt. It should load (if you're getting the second CPU detected), and spit out its version info. Mine is Version 1.00u.
Kumba
Posts: 44
Joined: 2. Aug 2011, 05:48
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: WinNT4, Win2k, Win2k3, Win2019, Win11, Devuan, OpenBSD, MS-DOS 7.10, NW312, NW42SP9, NW65SP8, OmniOS

Re: NetWare 4.x MPS14.PSM not detecting SMP on Vbox

Post by Kumba »

Btw, STARTUP.NCF and AUTOEXEC.NCF both live in the NWSERVER directory on C:\, and they're basically CONFIG.SYS and AUTOEXEC.BAR for NetWare. STARTUP.NCF is what loads up the PSM and other early initialization bits, then the rest loads out of SYS:\SYSTEM once the file system is up and running.
michaln
Oracle Corporation
Posts: 2973
Joined: 19. Dec 2007, 15:45
Primary OS: MS Windows 7
VBox Version: PUEL
Guest OSses: Any and all
Contact:

Re: NetWare 4.x MPS14.PSM not detecting SMP on Vbox

Post by michaln »

Kumba wrote:Can you send me your MPS14.PSM somehow? I do appear to have a newer version, 04/08/1999 1:52pm, 16,071 bytes. This file is typically stored in the C:\NWSERVER folder (or wherever you're launching SERVER.EXE from).
Looks like mine is 1.00l. PM me your e-mail address and I'll send it.

My guess is that that's probably not the problem. Have you tried stripping down your DOS configuration? Booting with F5 is worth a try. When I do LOAD SMP / LOAD MPS14 / LOAD MPDRIVER the secondary CPU gets activated.
Kumba
Posts: 44
Joined: 2. Aug 2011, 05:48
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: WinNT4, Win2k, Win2k3, Win2019, Win11, Devuan, OpenBSD, MS-DOS 7.10, NW312, NW42SP9, NW65SP8, OmniOS

Re: NetWare 4.x MPS14.PSM not detecting SMP on Vbox

Post by Kumba »

michaln wrote:Looks like mine is 1.00l. PM me your e-mail address and I'll send it.

My guess is that that's probably not the problem. Have you tried stripping down your DOS configuration? Booting with F5 is worth a try. When I do LOAD SMP / LOAD MPS14 / LOAD MPDRIVER the secondary CPU gets activated.
Per a Novell TID I came across (but no longer have the tab open for), MPS14.PSM should be loaded first, followed by SMP.NLM, and then "MPDRIVER ALL", where "ALL" specifies to activate as many CPUs as it can find. If I attempt to load SMP.NLM before MPS14.PSM, I get a missing/unresolved symbol error for "DoRealModeHalt". SMP.NLM is Version 1.31, March 20, 1997.

Edit, it's TID 10052541, the same one I quoted from earlier, duh...
michaln
Oracle Corporation
Posts: 2973
Joined: 19. Dec 2007, 15:45
Primary OS: MS Windows 7
VBox Version: PUEL
Guest OSses: Any and all
Contact:

Re: NetWare 4.x MPS14.PSM not detecting SMP on Vbox

Post by michaln »

Kumba wrote:If I attempt to load SMP.NLM before MPS14.PSM, I get a missing/unresolved symbol error for "DoRealModeHalt". SMP.NLM is Version 1.31, March 20, 1997.
Interesting, I don't get that. SMP NLM version 1.20, August 23, 1996.

The files I'm using seem to be from a "4.11 SMP" package/addon. Yours are from SP6A or so. Let me try the newer files...

The newer MPS14.PSM also loads. It is however version 1.00t from May 18, 1998, even newer than yours? I can't just load the newer SMP.NLM because it can't resolve some symbol and I don't know which one.
Kumba
Posts: 44
Joined: 2. Aug 2011, 05:48
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: WinNT4, Win2k, Win2k3, Win2019, Win11, Devuan, OpenBSD, MS-DOS 7.10, NW312, NW42SP9, NW65SP8, OmniOS

Re: NetWare 4.x MPS14.PSM not detecting SMP on Vbox

Post by Kumba »

michaln wrote:Interesting, I don't get that. SMP NLM version 1.20, August 23, 1996.

The files I'm using seem to be from a "4.11 SMP" package/addon. Yours are from SP6A or so. Let me try the newer files...
SP9, actually. I believe there's a guide out there that provided the exact upgrade procedure to get from 4.11 to 4.2, but I may have to look at doing a re-install just to figure this one out. Also switch to DOS-6.22, just in case there's something funny with 7.10. Your MPS14.PSM didn't work for me, either, and I doubt that without a Novell engineer hanging around (if they even exists anymore), one would need to learn the NW debugger and locate the bit of code that prints error string I'm getting, then backtrace from there through raw x86 assembler.

michaln wrote:The newer MPS14.PSM also loads. It is however version 1.00t from May 18, 1998, even newer than yours? I can't just load the newer SMP.NLM because it can't resolve some symbol and I don't know which one.
I've got the latest MPS14.PSM, 1.00u, from August 1999. did you try loading the newer SMP.NLM after SERVER.EXE -ns? If so, the unresolved symbols are probably from the CLIB that wouldn't have loaded up if you bypassed STARTUP.NCF.
Post Reply