Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Dariusz Piatkowski

Pages: 1 [2] 3 4 ... 9
Storage / Best way to copy a volume?
« on: February 08, 2021, 03:55:43 pm »
The goal here is to move my OS2 install from the current 850 Evo SSD to the new 860 Evo SSD (250G to 500G).

In the past I've relied on the good ol' trusty XCOPY (/h /o /t /s /e /r /v), followed by the SYSINSTX, etc. The only downside to this approach is the fact that all the directory date/time-stamps are the CURRENT sysdate values and the old stuff is not preserved.

I'd like to avoid that outcome.

My thinking is that I could execute the XCOPY first (from within my maintenance partition) followed by a RSYNC run to get all the other stuff nice 'n' tidy. Haven't tried this yet on a test partition, most likely will though just to be sure.

I have seen people talk of archiving the source volume, so literally toss everything into a ZIP file and un-zip in the target drive. Yup, I could do this given that I have a couple of spare drives (that do nightly volume backups), but I'm thinking there must be some kind of ZIP file size limitation here to deal with...?

In the meantime, can anyone suggest an alternative and/or perhaps better way to go about this? Maybe DFSEE has an option I should pursue? The only caveat here is that the volume sizes are different (source is 250G and target is 500G).

Beyond that, at the hardware level, do we worry about the 4k alignment for the SSDs? The FS is JFS, but having tried this once before (when originally moving from a HDD to the SSD) and running into some major screwups (lost a volume that way but managed to re-cover from the nightly backup..yey!) I'm hesitant to try this again.


Storage / DANIS506 - SATA III capable or not?
« on: February 02, 2021, 06:34:37 pm » maybe this whole point I am about to make and therefore this post are pointless, but it is sort of bothering me so I'd like to understand whether the results I'm seeing are due to my specific hardware (which is a bit dated, circa 2010/2011) or are they due to some assumptions our equally dated software holds.

So the big Q: is the DANIS506 driver SATA III (6G/s) aware? Is it 66MHz PCI-bus aware? Is it smart enough to ramp up device timings to max out the usable hardware capabilities?

Why am I asking?

Well, I recently picked up a Samsung 860 Evo 500G on sale ($65 Canuck, man can't go wrong with that price!). I already have the 850 Evo in my rig and the sustained disk xfer rates bumped up to a steady 400M/s once I deployed it in a SATA III capable motherboard (previously in SATA II mode they would max out around 250M/s or thereabouts). Having said that, the cache/bus rates never really got any higher than 200 (based on previous tests) and really for reasons un-known to me today they are about 150-155M/s.

Here is an example of a test run:
Code: [Select]
Disk I/O disk 0-2: 238473 MB - Samsung SSD 850 EVO 250GB
   Avg. data access time :       --.---    milliseconds
   Cache/Bus xfer rate   :      155.318    Megabytes/second
   Track 0 xfer rate fwd :      395.163    Megabytes/second
   Middle trk rate fwds. :      400.412    Megabytes/second
   Last track rate bwds. :      367.077    Megabytes/second
   Average Transfer rate :      387.551    Megabytes/second
   Disk use CPU load     :        3.740    percent
   Total                 :       --.---    Disk I/O-marks

Bottom line being: it feels like the DANIS506 drivers allowed for higher performance when deployed to capable hardware.

Good off I go to install the new 860 Evo, find a SATA connector, yup, all good.

I boot up and run SysBench, now that shows the following results for my new 860 SSD:
Code: [Select]
Disk I/O disk 1-4: 476938 MB - Samsung SSD 860 EVO 500GB
   Avg. data access time :       --.---    milliseconds
   Cache/Bus xfer rate   :      407.757    Megabytes/second
   Track 0 xfer rate fwd :        8.146    Megabytes/second
   Middle trk rate fwds. :      405.977    Megabytes/second
   Last track rate bwds. :      401.950    Megabytes/second
   Average Transfer rate :      272.024    Megabytes/second
   Disk use CPU load     :        4.060    percent
   Total                 :       --.---    Disk I/O-marks

I'm not complaining, I know the 860 is faster than 850, but boy that cache/bux xfer rate is really a night and day type of a difference.

So off I went digging a little deeper into this.

1) DANIS506 device driver info for the SSD devices

Here is what the boot-up screen reports:
Code: [Select]
R1.8.15      /VLL /LPM:3 /APM:254 /PF:3
            Daniela's Bus Master IDE Driver for OS/2 Version 1.8.15
Controller:0  Port:9000 IRQ:13  Status:OK BusMaster Scatter/Gather
  ATI IXP SATA host (1002:4390 rev:40) on PCI 0:17.0#0
 Unit:0 Status:OK LBA BusMaster no speed BPB
  Model:Samsung SSD 850 EVO 250GB               EMT03B6Q
   OS2:log   phys   BPB/BIOS   IDE:log   phys     Total Sectors
  C  30401  65535                65535  16383   Avail  488397168
  H    255     16        255        16     16   OS2    488392065
  S     63     63         63        63     63   % Used     99.99


Code: [Select]
Controller:1  Port:7000 IRQ:13  Status:OK BusMaster Scatter/Gather
  ATI IXP SATA host (1002:4390 rev:40) on PCI 0:17.0#1
 Unit:0 Status:OK LBA BusMaster no speed BIOS
  Model:Samsung SSD 860 EVO 500GB               RVT04B6Q
   OS2:log   phys   BPB/BIOS   IDE:log   phys     Total Sectors
  C  60801  65535                65535  16383   Avail  976773168
  H    255     16        255        16     16   OS2    976768065
  S     63     63         63        63     63   % Used     99.99

...but lo and behold, the driver says "BusMaster no speed BPB", instead of providing some kind of a spec, and I honestly was expecting to see a 6.0GBit/s SATA III listed here.

2) DANIS506 device driver info for one of my traditional HDD devices (WD VelociRaptor)

Code: [Select]
Unit:1 Status:OK SMS:16 LBA NL:126 BusMaster 3.0GBit/s BPB
 Model:WDC WD3000HLFS-01G6U0                   04.04V01
  OS2:log   phys   BPB/BIOS   IDE:log   phys     Total Sectors
 C  36481  65535                65535  16383   Avail  586072368
 H    255     16        255        16     16   OS2    586067265
 S     63     63         63        63     63   % Used     99.99

Here you can clearly see the device being recognized as a BusMaster capable 3.0GBit/s drive.

Alright, so I went to DiskInfo utility and ran 'diskinfo 0m cviI' to pull the numbers for both devices, here is the kicker:

1) 850 Evo
Code: [Select]
0/m: Samsung SSD 850 EVO 250GB                EMT03B6QR S3PZNF0JB03446T
Port 9000/8002, Irq 19, SATA, Busmaster, PIO4, Ultra DMA6

ATA device, with non-removable media
        Model Number:       Samsung SSD 850 EVO 250GB
        Serial Number:      S3PZNF0JB03446T
        Firmware Revision:  EMT03B6Q
        Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5
        Used: unknown (minor revision code 0x0039)
        Supported: 9 8 7 6 5
        Likely used: 9

        LBA, IORDY(can be disabled)
        Queue depth: 32
        Standby timer values: spec'd by Standard, no device specific minimum
        R/W multiple sector transfer: Max = 1   Current = 1
        DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6
             Cycle time: min=120ns recommended=120ns
        PIO: pio0 pio1 pio2 pio3 pio4
             Cycle time: no flow control=120ns  IORDY flow control=120ns

        Enabled Supported:

           (bunch of stuff deleted)

           *    SATA-I signaling speed (1.5Gb/s)
           *    SATA-II signaling speed (3.0Gb/s)
           *    unknown 76[3]
           *    Native Command Queueing (NCQ)
           *    Phy event counters
           *    unknown 76[15]

2) 860 Evo
Code: [Select]
1/m: Samsung SSD 860 EVO 500GB                RVT04B6QR S598NJ0NA33886X
Port 7000/6002, Irq 19, SATA, Busmaster, PIO4, Ultra DMA6

ATA device, with non-removable media
        Model Number:       Samsung SSD 860 EVO 500GB
        Serial Number:      S598NJ0NA33886X
        Firmware Revision:  RVT04B6Q
        Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5
        Used: unknown (minor revision code 0x005e)
        Supported: 11 8 7 6 5
        Likely used: 11

        LBA, IORDY(can be disabled)
        Queue depth: 32
        Standby timer values: spec'd by Standard, no device specific minimum
        R/W multiple sector transfer: Max = 1   Current = 1
        DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6
             Cycle time: min=120ns recommended=120ns
        PIO: pio0 pio1 pio2 pio3 pio4
             Cycle time: no flow control=120ns  IORDY flow control=120ns

        Enabled Supported:

           (bunch of stuff deleted)

           *    SATA-I signaling speed (1.5Gb/s)
           *    SATA-II signaling speed (3.0Gb/s)
           *    unknown 76[3]
           *    Native Command Queueing (NCQ)
           *    Phy event counters
           *    unknown 76[15]

Both drives appear to be ONLY recognized as SATA-II, although both show "unknown 76[3]", which I suspect may in fact indicate a SATA-III capability.

And that is only part of the story.

Daniela wrote a pretty awesome device driver, and the DOCs she published were equally impressive. So I went looking at what may be causing this result. Eventually I focused on the PCI bus clock rate where the driver README has a pretty extensive section dealing with some adjustability. Back in the day the standard PCI clock was 33MHz, but some chipsets differed, so the /PCI parameter provides a way to deal with this.

Now with PCI 2.1 a 66MHz bus-clock was introduced, and your hardware will announce this to the driver if need be. In fact, runng PCI scan here produces the following stats for the SATA controller:

Code: [Select]
Bus 0 (PCI Express), Device Number 17, Device Function 0
Vendor 1002h Advanced Micro Devices, Inc. [AMD/ATI]
Device 4390h SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode]
Command 0107h (I/O Access, Memory Access, BusMaster, System Errors)
Status 0230h (Has Capabilities List, Supports 66MHz, Medium Timing)
Revision 40h, Header Type 00h, Bus Latency Timer 40h
Self test 00h (Self test not supported)
Cache line size 64 Bytes (16 DWords)
PCI Class Storage, type IDE (ATA)
PCI EIDE Controller Features :
  BusMaster EIDE is supported
  Primary   Channel is in native mode at Addresses 0 & 1
  Secondary Channel is in native mode at Addresses 2 & 3
Subsystem ID 76401462h Unknown
Subsystem Vendor 1462h Micro-Star International Co., Ltd. [MSI]
Address 0 is an I/O Port : 9000h..9007h
Address 1 is an I/O Port : 8000h..8003h
Address 2 is an I/O Port : 7000h..7007h
Address 3 is an I/O Port : 6000h..6003h
Address 4 is an I/O Port : 5000h..5007h
Address 5 is a Memory Address (0-4GiB) : FE4FF000h..FE4FF3FFh
System IRQ 19, INT# A
New Capabilities List Present:
  Message Signalled Interrupt Capability
    MSI is disabled
    MSI function can generate 64-bit addresses
  Unknown Capability (Code 12h)!!
  Unknown Capability (Code 13h)!!

The interesting part in the above is: "Status 0230h (Has Capabilities List, Supports 66MHz, Medium Timing)".

My interpretation of this says that the SATA controller is capable of executing at 66MHz PCI bus clock.

As such this begs the question: does the DANIS506 driver know anything about this capability, and if so, does it do anything with it? After all, if the hardware capability is there I sure want to use it.

Tying this back to my main point at the start of the post: is DANIS506 driver smart enough to adjust to the faster SATA-III and/or 66MHz bus timings?

Further on, has anyone else experimented with different /PCI values to account for the faster PCI bus clocks?

Applications / OpenOffice and web browser...what's the secret?
« on: February 01, 2021, 03:59:48 pm »

Of all things to have ran into a problem, I am unable to open up my Firefox browser from within AOO Calc. This is on a AOO 4.1.7 install.

So imagine the following: I have a spreadsheet cell which has a URL in it, clicking on that URL produces the following error:

"OpenOffice could not find a web browser on your system. Please check your Desktop Preferences or install a web browser (for example, Mozilla) in the default location requested during the browser installation"

OK, fair enough.

The AOO README states the following:

Code: [Select]
- Internet Application Integration (optional)

  You may download it from the author's website if needed:

  When configured properly, it is possible to use Thunderbird for sending
  your documents. To enable this feature, the Internet Application
  Integration tool must be installed and configured for your email client.
  In AOO options, Internet settings, set email program field to 'thunderbird'.
  The full path for executable and directories will be taken from your INI
  files (IAI settings).

  The default OS/2 browser will be used for opening web pages. To enable
  this feature, the Internet Application Integration tool must be installed
  and configured for your browser.

...and indeed I have the IAI v installed and the 'Web browser' is pointing to my current Firefox install.

I do not actually have IAI configured for email handling (to use Thunderbird), although I do have the AOO itself pointing to my PMMail (under Tools=>Options=>Internet=>E-mail).

By all accounts outside of AOO the WPS browser integration works fine otherwise, but I suspect that's more indicative of the WPS object setups (URL) than anything else. what am I missing? Our OS2World forum search did not net any answers, which I hope is a good sign, meaning: for everyone else this is flat out working out-of-the-box, so the root cause maybe just a small missing little setup on my part?

Applications / mplayer - how to position the playback window?
« on: January 29, 2021, 02:56:47 pm »
I admit that I've been living a spoiled life for a while now having deployed my dual-screen it, heck now I wish I could only add the 3rd LCD.

In the meantime, I have certain applications that always need re-sizing (because they insist on treating the whole 3840x1200 screen as a single physical screen and are coded to use proportional sizing - just my guess), or applications that flat-out do not handle the dual screen all that well.

Case in point, mplayer. Here are the contents of my configuration file:

Code: [Select]
# Write your default config options here!
double=yes # double buffering(recommended for subtitles)
autoq=100 # AUTO control the video quality
#vf=pp=de,hqdn3d # additional post-processing options
#vf=pp # additional post-processing options
#framedrop="1" # For slow machines
#hardframedrop="0" # Make sure hard frame drop is off but can turn on easily now




msglevel:all=5 # set the DEBUG level (5 = DEFAULT)
cache=8192 # set the TOTAL cache size
cache-min=25 # fill xx% of TOTAL cache before playback start
autosync=30 # sync up video/audio by adjusting the algorithm
#mc=1.0 # up to how many seconds/frame to adjust
priority=high # set the priority of mplayer (idle,belownormal,normal,abovenormal,high,realtime)

# Video Overlay Options and VIO Message Window Options
#really-quiet=yes # limit what the VIO window shows
#fixed-vo=yes # keep display output window open between different feeds
colorkey=0x000001 # change the background to off-black, instead of bright green

# Setting for Browser User Agent response

I am running in SNAP video mode and if you notice I have 'geometry=5%:5%' in place, which in theory should position that playback window in a certain spot on the screen.

This does not work.

The window always shows in the center of my dual-head display, which might be OK if it wasn't for the fact that the the 2nd screen is all BLACK, meaning, only half the video shows and that is only the video on head=1 of the dual-head setup.

And while that may be a SNAP only video mode problem (DIVE, VMAN both work) I need to be able to run in SNAP mode as opposed to the others. Either way, the playback screen positioning problem persists even with DIVE or VMAN.

So I'm curious, has anyone used the '-geometry' option successfully? Based on what on-line mplayer references state it may very well be that SNAP (or any other OS/2 video modes) do not support that option at all.

Setup & Installation / Pathmappers, HOME, ETC and oh my!!!
« on: January 20, 2021, 05:03:07 pm »
Dave's response to a question Rick posted in this thread (,2714.msg0.html#new) has reminded me of something.

A while back - as I was transitioning to RPM/YUM - I embarked on a house-cleaning project, meaning: try to reconcile the various application config with the new RPM/YUM/*nix porting approaches.

That has meant figuring out what to put where, and what really are the preferred/correct uses and the matching locations for things such as:

2) \ETC
3) \HOME

The 'kLIBC - Pathwrewriters' utility allows you to configure some of this stuff. Truth be told though, I am no longer certain whether what I have in there right now is part of the "default" install for stuff like RPM/YUM/ANPM, or was it perhaps tweaked by me at some point in time (maybe part of that transitioning effort I mentioned above?).

So here are the contents of my 'kLIBC - Pathwrewriters' utility:
1) /var/log => %LOGFILES%
2) /tmp => %TMP%
3) /etc => %YUM_RPM_ETC%

where these environment variables are in turn mapped to:

1) %LOGFILES% => \tmp\log
2) %TMP% => \tmp
3) %YUM_RPM_ETC% => \etc

The other, somewhat standard (for the most part I think) environment variables are:
1) %HOME% => \home
2) %ETC% => \mptn\etc
3) %TMPDIR% => ramdisk:\GCC (really for the single DEV purposes)
4) %TMP% => ramdisk:\tmp
5) %TEMP% => ramdisk:\tmp
6) %LOGFILES% => \tmp\log

Further on, even the RPM applications (the ported stuff) usually stores stuff into either %ETC% (which is \mptn\etc here), or %YUM_RPM_ETC% (which is \etc here) or %HOME% (which is \home here).

Soooo....yeah, to this guy here it still feels like stuff is "all over the place"  ???

Therefore, I am curious what strategies (if any) have others developed to reconcile this stuff and create a better, perhaps more consistent configuration?

Applications / Lotus 123 - macro to re-order worksheet columns...?
« on: January 15, 2021, 09:55:53 pm »
Alright...this is not a "OS/2 and application" type of a question, rather Lotus 123 specific inquiry and I'm posting it here in hopes that someone knows Lotus 123 well enough to answer it for me (on-line searches did not produce an answer so far). Most of what I found was on the topic of actual Marco functions, but unless you know what to look for it's hard to figure out where to even start.

OK, so how about this "new tech meets old tech" scenario: I have some vehicle data logs 2020 Subaru STI in CVS format. I need to pull that into 123 (which works just fine). However, the ordering of the columns is not to my liking, which means I manually shift stuff around, we are talking buckets and buckets of data here, so yeah, it's a little sllooooowwww! lol

I am therefore wondering if it's possible in Lotus 123 to write a marco which will basically re-order the existing worksheet columns to suit my needs? The goal here is to avoid the manual shifting of the columns of data.


Applications / PMView - converting ICO to OS/2 BMP...background options?
« on: January 06, 2021, 03:48:13 am »
I need to take a couple of ICO (icon) files and convert them to an OS/2 BMP format. Seems easy enough, right?

Well, my problem is that doing the conversion does not preserve the ICON's background transparency...why not?

Basically, the converted images all have WHITE background, which I need to avoid. I do know the actual colour of the background I need, but I would rather have a transparent background instead.

Any ideas? Is this caused by the OS/2 BMP format not supporting the alpha channel? (

So if transparent BMP is off the table, what's the easiest way for me to apply a particular colour as background to an ICO file so it's still preserved in the BMP image itself?

Programming / REXX: RxStartSession, what is wrong with this call?
« on: January 03, 2021, 11:37:25 pm »
In my NAS box periodic 'connectivity check' script I'm trying to do away with running a separate REXX cmd script to set the DEFAULT folder VIEW. I decided to just bring the calls in that one-off script directly into my main REXX script.

Here is what I have:

1) the stand-alone cmd script has a call to oo.exe to default the folder VIEW
Code: [Select]
/* Setup the default VIEW for the NAS Samba shares - FOLDERS */
'@g:\util\misc\oo.exe /a v:\photo "DEFAULTVIEW=XVIEW;"'
'@g:\util\misc\oo.exe /a v:\video "DEFAULTVIEW=XVIEW;"'
'@g:\util\misc\oo.exe /a v:\music "DEFAULTVIEW=XVIEW;"'
'@g:\util\misc\oo.exe /a v:\public\documents "DEFAULTVIEW=XVIEW;"'
'@g:\util\misc\oo.exe /a v:\public\syslog "DEFAULTVIEW=XVIEW;"'

2) the main connectivity check script is using this call
Code: [Select]
/* OK, now run the WPS settings utility */
api_rc=RxStartSession('g:\util\misc\oo.exe','/a v:\photo "DEFAULTVIEW=XVIEW;"','C','F',,'O','A')

Now this thing flat out fails all the time. I haven't been able to figure out why, all I can tell is that the stared session VIO window pops up with the following in it:

Code: [Select]
invalid or malformed path

Now, I cannot for the life of me tell what oo.exe is complaining. However, I've tried to successfully convert this in mulitple ways, even did a quick convert of REXX to EXE (REXX2EXE utiility) and strangely enough whenever I do actually get the oo.exe to execute the very same error message is displayed.

So I'm thinking there is some kind of a session issue here...???

I grabbed the oo.exe sources (which Rich Walsh included in his release) and found where oo is tossing that error. Will debug from there...

Programming / INCLUDE directory ordering: VACPP vs OS2_Toolkit vs GCC
« on: December 27, 2020, 11:42:33 pm »
I'm wondering if someone can provide references, pointers and/or explanation as to the correct setups when it comes to compiling a standard OS/2 program using the VACPP 3.65 release (3.08 should be fairly similar I think?) and the OS2_Toolkit?

Beyond this core concept, how should the GCC stuff tie into all of the above?

I think of the GCC stuff as replacing the VACPP compiler functionality, and therefore as such would still want to use the OS2_Toolkit includes I believe?

In my current configuration I have all three installed, haven't really done much other than basic compiles with all of them. They all seem to work fine. But once you start building the more complex stuff I'm running into difficulties figuring out which INCLUDE directories to use and specifically what order they should all come in?

Here is a very specific use-case as it applies to the DISKIO work I started:

1) TIME.H header file

a) VACPP install (\code\tools\Ibmcpp\include\TIME.H) shows the following

"11-08-00  1:16a         5,715      0 a---  time.h"

Code: [Select]
/*  <time.h> Header File                                            */
/*  IBM C and C++ Compilers for OS/2, AIX and for Windows NT,       */
/*  Version 3.6                                                     */
/*  Licensed Material - Property of IBM                             */
/*  (C) Copyright IBM Corp. 1991, 1997. All rights reserved         */
/*                                                                  */

b) OS2_Toolkit install (\code\tools\toolkit\h\libc\TIME.H) shows the following:

"1-27-16 11:42a         4,181      0 a---  time.h"

Code: [Select]
/*  <time.h> header file                                            */
/*                                                                  */
/*  (C) Copyright IBM Corp. 1991, 1995.                             */
/*  - Licensed Material - Program-Property of IBM                   */
/*  - All rights reserved                                           */
/*                                                                  */

The OS2_Toolkit stuff is the Netlabs release (Warp 4_52 Toolkit - - Sep_2017), I believe the is the most recent one that I should install.

My approach to upgrading has been to overlay the original OS2_Toolkit install with the Netlabs updates (all appropriate directory structure having been mapped to the original OS2_Toolkit structure as opposed to dumping the Netlabs stuff into the /usr/include/os2tk45...).

I've attached both versions of TIME.H so you can see the differences.

Programming / CFLOW - latest version?
« on: December 25, 2020, 10:14:08 am »
I grabbed CFLOW from Hobbes, v1.1, meanwhile the official release is now at v1.6.

Quick check on the possibility of an RPM packaged turned up nothing, nor was I able to find a RPM package that perhaps contained CLFOW (but that could have been just my screwup).

Does anyone know if we have anything more recent?

CFLOW btw is a neat little utility which parses your C source code and creates a handy map: what functions/procs are called, the hierarchy, etc....all in all a pretty quick and handy way to visualize what the code is doing.

This came up as I tried to make more sense of the DISKIO structure.


Storage / DISKIO - updated version in need of TEST
« on: December 20, 2020, 01:46:36 am »
Hi Everyone,

I figured I'd take a stab at resolving the annoying issue with DISKIO not reporting correct throughput rates for the modern hardware, i.e. stuff like the fast SSD devices, etc.

Alright, so to that end, here is a DEBUG run for my SSD (Samsung 850 Evo - OK, I said "modern", yes, it's a few years old  ;), but it's what pushed DISKIO over the edge on my box here):

Code: [Select]
Dhrystone 2.1 C benchmark routines (C) 1988 Reinhold P. Weicker
Dhrystone benchmark for this CPU: 2283670 runs/sec

Hard disk 2: 255 sides, 30401 cylinders, 63 sectors per track = 238472 MB
Drive cache/bus transfer rate:
 DEBUG => nData is: 1189762560
 DEBUG => nTime is: 10260
115961 k/sec
Data transfer rate on cylinder 0   :
 DEBUG => nData is: 3087028224
 DEBUG => nTime is: 10264
300762 k/sec
Data transfer rate on cylinder 30399:
 DEBUG => nData is: 2904620544
 DEBUG => nTime is: 10244
283543 k/sec
CPU usage by full speed disk transfers: 23%
Average latency time:
 DEBUG => nTime is: 10036.599360
 DEBUG => nCnt is: 85352.196980
0.1 ms
Average data access time: Disk read error.
Multithreaded disk I/O (4 threads): 121669 k/sec, 19% CPU usage

The stuff marked as "DEBUG => " is the raw data, if you're going to run this on your machine please report back the full output.

And here is the RETAIL output:

Code: [Select]
Dhrystone 2.1 C benchmark routines (C) 1988 Reinhold P. Weicker
Dhrystone benchmark for this CPU: 2088687 runs/sec

Hard disk 2: 255 sides, 30401 cylinders, 63 sectors per track = 238472 MB
Drive cache/bus transfer rate: 118449 k/sec
Data transfer rate on cylinder 0   : 332803 k/sec
Data transfer rate on cylinder 30399: 302953 k/sec
CPU usage by full speed disk transfers: 23%
Average latency time: 0.1 ms
Average data access time: Disk read error.
Multithreaded disk I/O (4 threads): 122717 k/sec, 23% CPU usage

As you can tell, the numbers are much better (no more overflow) and they for the most part jive with what I see in SysBench.

There are a few outstanding issues that I'm aware of:

1) this build is optimized for Pentium2, that's old stuff, I need to either remove or optimize for Pentium4, I just haven't looked up all the ICC flags & options, may be the reason why the Dhrystone value reported by this build is about 50% of what the official build has, not sure yet

2) the "Average data access time: Disk read error" is still here, this only fails on my SSD drive, I need to dig into the DosDevIOCtl API

3) "Drive cache/bus transfer rate:" shows a smaller rate than SysBench, not sure why that is, need to review further

4) RAMDISK numbers are still bad, or just flat out error out

ZIP attachment has two builds :

1) DEBUG - has the extra raw data dumps
2) RETAIL - if you just want an updated (hopefully correct) result and that's all you want

Feedback is welcome and appreciated!


Storage / FAT32 - Netlabs or AN?
« on: November 27, 2020, 08:35:47 pm »
The subject says it all...what have you picked/installed, and why?

I ask b/c I have had the Netlabs 0.9.13 release on my machine from quite some time now. It has worked for me quite well since the extent of using FATanything was to simply pull the pics off of my digital camera. That's a FAT32 card, easy to mount, easy to copy off of, done!

However, as storage capacities got larger and now it's somewhat easy to have a multi-gig FAT device I figured I should perhaps update my install.

Now, here is the decision point: run with the updated Netlabs release, or move over to AN one? If I understood the AN release notes, their goal is to have the basic FAT32 capability, no other fancy stuff. Seems simple enough....but that also appears to really narrow things down to just the stuff that's pure FAT32 as opposed to having capability to mount exFAT, etc.

So I'm curious how others have gone about this? What have you deployed, why and how is that working for you?


Programming / MAKEFILES suck!!!
« on: November 25, 2020, 04:51:23 am »
...alright, maybe not that badly, I have used them for much smaller projects in the past and they were great, but I'm attempting to compile the PUMonitor utility here and that provided makefile doesn't work with my VAC 3.6.5 install.

So help me out please, my eyeballs are red from reading about NMAKE32 (as opposed to NMAKE), but clearly I'm still confused...LOL!  :-\

Here is what I have:

1) structure of the project source files
Code: [Select]
Directory of G:\code\source\os2\pumonitor\src

11-24-20  9:25a         <DIR>      0 ----  .
 8-25-18  5:42p         <DIR>    369 ----  ..
 2-19-02  1:13p           302      0 a---  build.opt
 8-25-18  5:42p         <DIR>      0 ----  include
 2-19-02  1:13p           105      0 a---  library.rsp
11-23-20 11:50p         2,151     35 a---  makefile
 8-25-18  5:42p         <DIR>      0 ----  obj
11-24-20 10:24p         2,330     35 a---  pumonitor.mak
 8-25-18  5:42p         <DIR>      0 ----  source

Basically the *.c and *.cpp is all in source, *.h and *.hpp in include, and the remaining *.ico, *.rc and *.lib files are in source.

2) 'makefile' is the original makefile distributed with the project source, but despite the fact that it reads like it's meant to work with VAC, it doesn't work with my 3.6.5 setup here

3) 'pumonitor.mak' is my attempt at converting the project sources and the build process as I understand it to be structured in the original 'makefile' into a VAC 3.6.5 version

Sooo...having said that, when attempting to process with NMAKE32 I get the following error:

Code: [Select]
MAK3035: Do not know how to make target 'cell.cpp'.

Now this part is really confusing for me, because if I force the full path for the source files in the target, all works fine, here is the section we are talking about:

Code: [Select]
cell.obj    : cell.cpp .\include\cell.h .\include\cvars.h .\include\util.h

...substituting with

Code: [Select]
cell.obj    : .\source\cell.cpp .\include\cell.h .\include\cvars.h .\include\util.h allows me to pass that test but still fails with the following:

Code: [Select]
MAK3035: Do not know how to make target 'cell.obj'.

...which of course can be addressed if I provide an explicit command, such as:
Code: [Select]
$(CC) /c /Fo$@  $<

...then compiles, although it still producs a pile of errors:

Code: [Select]
icc.exe /c /Focell.obj .\source\cell.cpp
IBM* C and C++ Compilers for OS/2*, AIX* and for Windows NT**, Version 3.6
(C) Copyright IBM Corp. 1991, 1997   All Rights Reserved.
* registered trademarks of IBM Corp., ** registered trademark of Microsoft Corp.

.\source\cell.cpp(19:10) : error EDC3008: Source file <cell.h> cannot be opened.
.\source\cell.cpp(20:10) : error EDC3008: Source file <cvars.h> cannot be opened.

All of this begs the question: why isn't my Inference Rule working? It clearly spells out where to find all the *.h and *.hpp what gives?

Here is the Inference Rule section in my makefile:

Code: [Select]
# The Make utility looks in the directory specified by frompath for files with the fromext extension.
# It executes the commands to build files with the toext extension in the directory specified by topath.
# {frompath}.fromext{topath}.toext
# commands
# :

    $(CC) /c /Fo$@  $<
    $(CC) /c /Fo$@  $<
    $(CC) /c /Fo$@  $<
    $(RC) /r $< $@
    $(CC) /c /Fo$@  $<

    $(CC) /c /Fo$@  $<

This is far beyond anything I've tried obviously I'm lost!!! lol

Hardware / Multi core CPUs - how many are running > 4?
« on: November 20, 2020, 08:28:38 pm » many of your are running CPUs with more than 4 or 5 cores?

I ask b/c with the newer motherboard I can finally boot up with with the full 6 cores enabled on my AMD Phenom II X6 1100T CPU . This is with AOS ACPI 3.23.15 drivers.

The old motherboard would TRAP each time I attempted to do so.

However, my CPU monitors show on-going CPU spikes and I cannot for the life of me figure out where this is coming from. Basically, the ACPI Power Manager is disabled, which means the cores are running "all-out", no throttling back, etc...which is fine as this is my desktop box and running 24x7.

Therefore, if the ACPI PM is not active, than the only reason for CPUs to be spiking is either the ACPI driver itself, or something in the kernel???

So I'm curious if anyone else is seeing this?

Programming / REXX - RXLVM library - issue?
« on: November 16, 2020, 10:29:32 pm »
Hi Everyone,

I'm encountering an issue that suggests re-loading the RXLVM library is not successful, while several other REXX library are going through exactly the same process and are NOT showing this issue.

Please take a look at the below samples of my code and tell me where things may be going wrong?

1) load the REXX library
Code: [Select]
/* check if the RxLvm - RXLVM.DLL - is already loaded */
   rxlvm_api = RxFuncQuery('RxLvmLoadFuncs')
   msg_text = "RXLVM: API LOAD RC="||rxlvm_api
   CALL debug debug_flag calling_code msg_level msg_text
   If rxlvm_api <> 0 Then do
      Call RxFuncAdd 'RxLvmLoadFuncs', 'RXLVM', 'RxLvmLoadFuncs'
      Call RxLvmLoadFuncs
   msg_text = "RXLVM: Using version "||RxLvmVersion()
   CALL debug debug_flag calling_code msg_level msg_text

2) unload the REXX library
Code: [Select]
   /* check the RXLVM library */
   If rxlvm_api <> 0 Then
      Call RxLvmDropFuncs

I use the rxlvm_api variable to tell me whether I need to un-load the library when my code is done. The purpose is to avoid doing so if the library was already loaded prior to my code starting, presumably something else out there loaded it first and perhaps requires it to remain loaded.

Now, 1st time through running my script I'm getting rxlvm_api=1, which means I did not have the RXLVM library loaded already and therefore need to load it. OK, good stuff, it works and the version info call (RxLvmVersion) works fine. The program then ends and the RXLVM is completely un-loaded.

However, re-running this script in the very same CLI session the 2nd time around produces the following error:

Code: [Select]
[G:\code\source\rexx\os2utils]nas_check v:
DEBUG : MAIN => Initializing...
DEBUG :    ==> library_load => Initializing...
DEBUG :    ==> library_load => RXU: Using version v1.a
DEBUG :    ==> library_load => REXXUTIL: Using version 2.00
DEBUG :    ==> library_load => RXUTILEX: Using version 0.1.6
DEBUG :    ==> library_load => RXEXTRAS: API LOAD RC=0
DEBUG :    ==> library_load => RXEXTRAS: Using version 1.G
DEBUG :    ==> library_load => RXLVM: API LOAD RC=0
   242 +++     msg_text = 'RXLVM: Using version ' || RxLvmVersion();
REX0043: Error 43 running G:\code\source\rexx\os2utils\nas_check.cmd, line
242: Routine not found
    67 +++   Call library_load;

What's weird about this is that rxlvm_api is clearly set to 0, which implies that it's already loaded and perhaps the un-load call actually failed?

Either way, if it was already loaded, why does the call to RxLvmVersion fail?

BTW: the same process is repeated for several other libraries, they work fine.

Pages: 1 [2] 3 4 ... 9