Author Topic: DISKIO - updated version in need of TEST  (Read 17536 times)

Dariusz Piatkowski

  • Hero Member
  • *****
  • Posts: 1317
  • Karma: +26/-0
    • View Profile
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!

-Dariusz


Martin Iturbide

  • OS2World NewsMaster
  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4713
  • Karma: +41/-1
  • Your Friend Wil Declares...
    • View Profile
    • Martin's Personal Blog
Re: DISKIO - updated version in need of TEST
« Reply #1 on: December 20, 2020, 02:40:40 am »
Hi Dariusz

I give it a quick try on a ArcaOS VM. The VM is running on a Win10 host with an SDD drive.

- Can it be possible to release it as 1.19? so it can not get confused with 1.18z
- Is it possible to share the source code to update the github repository? - once you produce the final release.

It seems to me that tthe program runs fine (diskio and debug)
But when I try to create an output file this way, I get this error?
Quote
[C:\HOME\DOWNLOADS\DISKIO_FIX_1]diskio-debug >debug.txt

SYS1808:
The process has stopped.  The software diagnostic
code (exception code) is  009B.

Is there any other way you recommend you get the output file?

Regards
« Last Edit: December 20, 2020, 02:46:48 am by Martin Iturbide »
Martin Iturbide
OS2World NewsMaster
... just share the dream.

David McKenna

  • Hero Member
  • *****
  • Posts: 742
  • Karma: +24/-0
    • View Profile
Re: DISKIO - updated version in need of TEST
« Reply #2 on: December 20, 2020, 03:01:29 am »
 Hi Dariusz,

 I gave the retail diskio a shot (diskio > diskio.txt) and got this:

DISKIO - Fixed Disk Benchmark, Version 1.18z
(C) 1994-1998 Kai Uwe Rommel
(C) 2004 madded2

Number of fixed disks: 5
Number of CD-ROM drives: 2

Dhrystone 2.1 C benchmark routines (C) 1988 Reinhold P. Weicker
Dhrystone benchmark for this CPU: 4009371 runs/sec

Hard disk 1: 255 sides, 60801 cylinders, 63 sectors per track = 476937 MB
Drive cache/bus transfer rate: 86400 k/sec
Data transfer rate on cylinder 0   : 277997 k/sec
Data transfer rate on cylinder 60799: 260108 k/sec
CPU usage by full speed disk transfers: 48%
Average latency time: 0.0 ms
Average data access time: Disk read error.
Multithreaded disk I/O (4 threads): 138280 k/sec, 41% CPU usage

Hard disk 2: 255 sides, 60321 cylinders, 127 sectors per track = 953855 MB
Drive cache/bus transfer rate: -107190 k/sec
Data transfer rate on cylinder 0   : 185943 k/sec
Data transfer rate on cylinder 60319: 87011 k/sec
CPU usage by full speed disk transfers: 35%
Average latency time: 0.0 ms
Average data access time: 15.3 ms
Multithreaded disk I/O (4 threads): 45298 k/sec, 28% CPU usage

Hard disk 3: 255 sides, 650 cylinders, 63 sectors per track = 5098 MB
Drive cache/bus transfer rate: -142336 k/sec
Data transfer rate on cylinder 0   : Disk read error.
Data transfer rate on cylinder 648 : Disk read error.
CPU usage by full speed disk transfers: 93%
Average latency time: 0.0 ms
Average data access time: Disk read error.
Multithreaded disk I/O (4 threads): Disk read error.
-34014 k/sec, 64% CPU usage

Hard disk 4: 12 sides, 512 cylinders, 9 sectors per track = 27 MB
Drive cache/bus transfer rate: Disk read error.
Data transfer rate on cylinder 0   : Disk read error.
Data transfer rate on cylinder 510 :
____________________________________________________

 It gave an error on the command line, I'm guessing because it detected 5 drives, but there are really only 3 (Disk 1 is an SSD, Disk 2 is a rotating hard drive, Disk 3 is a RAM drive) but the other 2 are possible USB drives. CDROMs there is only 1 (empty) and the other is also a possible USB drive. Not sure what to make of the results otherwise....

Regards,
« Last Edit: December 20, 2020, 04:13:21 pm by David McKenna »

Dariusz Piatkowski

  • Hero Member
  • *****
  • Posts: 1317
  • Karma: +26/-0
    • View Profile
Re: DISKIO - updated version in need of TEST
« Reply #3 on: December 20, 2020, 03:59:37 am »
Hi Martin,

...
- Can it be possible to release it as 1.19? so it can not get confused with 1.18z
- Is it possible to share the source code to update the github repository? - once you produce the final release.

Yes, absolutely. For now my focus is on getting as many samples of different hardware as possible. I suspect the really big drives (well, one should not think of a 1T that as being that big anymore...LOL, but David's example below still shows an issue there).

Once the little tweaks are behind us this is of course going out there. My changes are really tiny things, and quite honestly very simple changes from 'int' to 'long' or ULONG variables for the most part.

...
It seems to me that tthe program runs fine (diskio and debug)
But when I try to create an output file this way, I get this error?
Quote
[C:\HOME\DOWNLOADS\DISKIO_FIX_1]diskio-debug >debug.txt

SYS1808:
The process has stopped.  The software diagnostic
code (exception code) is  009B.

Aha...so I wasn't getting this in my tests because I was individually testing just my SSD or HDD devices, but running it just like you did eventually produced the same result. What I found is the following in my POPUPLOG.OS2:

Code: [Select]
12-19-2020  20:49:36  SYS3184  PID 0819  TID 0001  Slot 0125
Y:\TMP\DISKIO.EXE
c000009b
00022182
EAX=00000000  EBX=00000000  ECX=000402ec  EDX=00000000
ESI=00000090  EDI=00000090 
DS=0053  DSACC=f0f3  DSLIM=ffffffff 
ES=0053  ESACC=f0f3  ESLIM=ffffffff 
FS=150b  FSACC=00f3  FSLIM=00000030
GS=0000  GSACC=****  GSLIM=********
CS:EIP=005b:00022182  CSACC=f0df  CSLIM=ffffffff
SS:ESP=0053:00092440  SSACC=f0f3  SSLIM=ffffffff
EBP=000924fc  FLG=00210246

DISKIO.EXE 0002:00002182

...and SYS3184 is a "Divide by Zero".

Looking at where my output from DISKIO stopped it looks like the un-mounted USB removable drive is what caused the problem here. I'm running the DEBUG version right now to see the raw data but I'm sure that pesky 0 (zero) will show up.

In the meantime: thank you for the test and feedback!

Dariusz Piatkowski

  • Hero Member
  • *****
  • Posts: 1317
  • Karma: +26/-0
    • View Profile
Re: DISKIO - updated version in need of TEST
« Reply #4 on: December 20, 2020, 04:07:40 am »
Hi David,

...
Hard disk 2: 255 sides, 60321 cylinders, 127 sectors per track = 953855 MB
Drive cache/bus transfer rate: -107190 k/sec
Data transfer rate on cylinder 0   : 185943 k/sec
Data transfer rate on cylinder 60319: 87011 k/sec
CPU usage by full speed disk transfers: 35%
Average latency time: 0.0 ms
Average data access time: 15.3 ms
Multithreaded disk I/O (4 threads): 45298 k/sec, 28% CPU usage

Can you run the DEBUG version for this drive?

The 'cache/bus transfer rate' shows overflow and I'm curious what the raw counters actually are.

... It gave an error on the command line, I'm guessing because it detected 5 drives, but there are really only 3 (Drive C: is an SSD, Drive D: is a rotating hard drive, Drive Z: is a RAM drive) but the other 2 are possible USB drives. CDROMs there is only 1 (empty) and the other is also a possible USB drive. Not sure what to make of the results otherwise....

Yeah, I think this is the same issue Martin reported and which I was able to reproduce here. This happens when I run the full DISKIO and it kicks off a test for each storage device without me explicitly specifying which device it should be testing.

Truth be told changing the code to automatically exclude a USB drive (when it's not mounted) is probably beyond my OS/2 coding skillset...but I'll investigate it to learn a thing or two!

Much appreciate the feedback David! Thanks...

Dave Yeo

  • Hero Member
  • *****
  • Posts: 4787
  • Karma: +99/-1
    • View Profile
Re: DISKIO - updated version in need of TEST
« Reply #5 on: December 20, 2020, 05:20:41 am »
Hi, thanks for working on this. About optimization, i686 or Pentium II should be best for the vast majority of current CPU's.
Redirecting output seems to make the divide by zero crash worse here, which doesn't make it to the log. So I started up EPM, created a cmd shell and ran it in that.
Disk 1 is a fast 1TB drive on a SATA3 port, Disk 2 is the SSD on a SATA2 port, Disk 3 a regular HD on a SATA2 port, Disk 4 the ram disk, disk 5 is a USB stick, disk 6 is a 2TB external drive plugged into a USB2 port (like the stick). Note that the size of the 2TB is expressed as a negative. Really need to use 64bit variables I guess.
Code: [Select]
epm: H:\tmp >diskio
DISKIO - Fixed Disk Benchmark, Version 1.18z
(C) 1994-1998 Kai Uwe Rommel
(C) 2004 madded2

Number of fixed disks: 12
Number of CD-ROM drives: 2

Dhrystone 2.1 C benchmark routines (C) 1988 Reinhold P. Weicker
Dhrystone benchmark for this CPU: 2778159 runs/sec

Hard disk 1: 255 sides, 60321 cylinders, 127 sectors per track = 953855 MB
Drive cache/bus transfer rate: -96336 k/sec
Data transfer rate on cylinder 0   : 178456 k/sec
Data transfer rate on cylinder 60319: 86168 k/sec
CPU usage by full speed disk transfers: 4%
Average latency time: 0.0 ms
Average data access time: 15.6 ms
Multithreaded disk I/O (4 threads): 45709 k/sec, 1% CPU usage

Hard disk 2: 255 sides, 29185 cylinders, 63 sectors per track = 228934 MB
Drive cache/bus transfer rate: 93543 k/sec
Data transfer rate on cylinder 0   : 123821 k/sec
Data transfer rate on cylinder 29183: 181134 k/sec
CPU usage by full speed disk transfers: 4%
Average latency time: 0.1 ms
Average data access time: Disk read error.
Multithreaded disk I/O (4 threads): 52275 k/sec, 2% CPU usage

Hard disk 3: 255 sides, 30394 cylinders, 63 sectors per track = 238417 MB
Drive cache/bus transfer rate: 145126 k/sec
Data transfer rate on cylinder 0   : 91842 k/sec
Data transfer rate on cylinder 30392: 49640 k/sec
CPU usage by full speed disk transfers: 4%
Average latency time: 0.1 ms
Average data access time: 17.9 ms
Multithreaded disk I/O (4 threads): 20850 k/sec, 3% CPU usage

Hard disk 4: 255 sides, 1138 cylinders, 63 sectors per track = 8926 MB
Drive cache/bus transfer rate: 40175 k/sec
Data transfer rate on cylinder 0   : 20746 k/sec
Data transfer rate on cylinder 1136: 20531 k/sec
CPU usage by full speed disk transfers: 9%
Average latency time: 0.0 ms
Average data access time: Disk read error.
Multithreaded disk I/O (4 threads): 20092 k/sec, 10% CPU usage

Hard disk 5: 255 sides, 985 cylinders, 63 sectors per track = 7726 MB
Drive cache/bus transfer rate: 18272 k/sec
Data transfer rate on cylinder 0   : 15544 k/sec
Data transfer rate on cylinder 983 : 16830 k/sec
CPU usage by full speed disk transfers: 1%
Average latency time: 1.9 ms
Average data access time: 1.8 ms
Multithreaded disk I/O (4 threads): 15958 k/sec, 1% CPU usage

Hard disk 6: 255 sides, 60085 cylinders, 255 sectors per track = -189423 MB
Drive cache/bus transfer rate: 21755 k/sec
Data transfer rate on cylinder 0   : 21658 k/sec
Data transfer rate on cylinder 60083: 21590 k/sec
CPU usage by full speed disk transfers: 1%
Average latency time: 1.8 ms
Average data access time: 20.3 ms
Multithreaded disk I/O (4 threads): 21787 k/sec, 2% CPU usage

Hard disk 7: 12 sides, 512 cylinders, 9 sectors per track = 27 MB
Drive cache/bus transfer rate: Disk read error.
Data transfer rate on cylinder 0   : Disk read error.
Data transfer rate on cylinder 510 : Disk read error.
CPU usage by full speed disk transfers: Disk read error.
Average latency time: Disk read error.
Average data access time: Disk read error.
Multithreaded disk I/O (4 threads):
SYS1808:
The process has stopped.  The software diagnostic
code (exception code) is  009B.

epm: H:\tmp >diskio-debug
DISKIO - Fixed Disk Benchmark, Version 1.18z
(C) 1994-1998 Kai Uwe Rommel
(C) 2004 madded2

Number of fixed disks: 12
Number of CD-ROM drives: 2

Dhrystone 2.1 C benchmark routines (C) 1988 Reinhold P. Weicker
Dhrystone benchmark for this CPU: 2299450 runs/sec

Hard disk 1: 255 sides, 60321 cylinders, 127 sectors per track = 953855 MB
Drive cache/bus transfer rate:
 DEBUG => nData is: 3407777792
 DEBUG => nTime is: 10246
-86588 k/sec
Data transfer rate on cylinder 0   :
 DEBUG => nData is: 1761370112
 DEBUG => nTime is: 10259
171690 k/sec
Data transfer rate on cylinder 60319:
 DEBUG => nData is: 889398272
 DEBUG => nTime is: 10268
86618 k/sec
CPU usage by full speed disk transfers: 4%
Average latency time:
 DEBUG => nTime is: 10019.599360
 DEBUG => nCnt is: 135755.196980
0.0 ms
Average data access time:
 DEBUG => nTime is: 10045.599344
 DEBUG => nCnt is: 644.196980
15.5 ms
Multithreaded disk I/O (4 threads): 45620 k/sec, 1% CPU usage

Hard disk 2: 255 sides, 29185 cylinders, 63 sectors per track = 228934 MB
Drive cache/bus transfer rate:
 DEBUG => nData is: 946132992
 DEBUG => nTime is: 10242
92377 k/sec
Data transfer rate on cylinder 0   :
 DEBUG => nData is: 1221276672
 DEBUG => nTime is: 10240
119265 k/sec
Data transfer rate on cylinder 29183:
 DEBUG => nData is: 1857397248
 DEBUG => nTime is: 10253
181156 k/sec
CPU usage by full speed disk transfers: 5%
Average latency time:
 DEBUG => nTime is: 10027.599360
 DEBUG => nCnt is: 61825.196980
0.1 ms
Average data access time: Disk read error.
Multithreaded disk I/O (4 threads):
SYS1808:
The process has stopped.  The software diagnostic
code (exception code) is  009B.
« Last Edit: December 20, 2020, 05:23:31 am by Dave Yeo »

walking_x

  • Full Member
  • ***
  • Posts: 101
  • Karma: +0/-0
    • View Profile
Re: DISKIO - updated version in need of TEST
« Reply #6 on: December 20, 2020, 08:26:56 am »
Well, about the ramdisk.
All delays in it are produced by the i/o subsystem. The smarter i/o you use, the worse speed you get :)

Problem is that the fastest method is supported only by FAT and HPFS. JFS, HPFS386, FAT32 - all will fail with it (older FAT32 versions even cause a trap).
Try adding /1 to the HD4DISK command line and test the speed, especially when copying files to "nul" - this is the real value.

David McKenna

  • Hero Member
  • *****
  • Posts: 742
  • Karma: +24/-0
    • View Profile
Re: DISKIO - updated version in need of TEST
« Reply #7 on: December 20, 2020, 04:15:46 pm »
 Dariusz,

Here are the results of diskio-debug -hd 2 > debug.txt:

DISKIO - Fixed Disk Benchmark, Version 1.18z
(C) 1994-1998 Kai Uwe Rommel
(C) 2004 madded2

Number of fixed disks: 5
Number of CD-ROM drives: 2

Dhrystone 2.1 C benchmark routines (C) 1988 Reinhold P. Weicker
Dhrystone benchmark for this CPU: 4117153 runs/sec

Hard disk 2: 255 sides, 60321 cylinders, 127 sectors per track = 953855 MB
Drive cache/bus transfer rate:
 DEBUG => nData is: 3628144128
 DEBUG => nTime is: 10250
-65055 k/sec
Data transfer rate on cylinder 0   :
 DEBUG => nData is: 1905008128
 DEBUG => nTime is: 10247
185908 k/sec
Data transfer rate on cylinder 60319:
 DEBUG => nData is: 892714496
 DEBUG => nTime is: 10256
87043 k/sec
CPU usage by full speed disk transfers: 3%
Average latency time:
 DEBUG => nTime is: 10017.599360
 DEBUG => nCnt is: 153431.196980
0.0 ms
Average data access time:
 DEBUG => nTime is: 10008.599344
 DEBUG => nCnt is: 655.196980
15.2 ms
Multithreaded disk I/O (4 threads): 45095 k/sec, 2% CPU usage

 No error this time...

Regards,

David Graser

  • Hero Member
  • *****
  • Posts: 870
  • Karma: +84/-0
    • View Profile
Re: DISKIO - updated version in need of TEST
« Reply #8 on: December 20, 2020, 08:05:42 pm »
Hi Martin,

...
- Can it be possible to release it as 1.19? so it can not get confused with 1.18z
- Is it possible to share the source code to update the github repository? - once you produce the final release.

Yes, absolutely. For now my focus is on getting as many samples of different hardware as possible. I suspect the really big drives (well, one should not think of a 1T that as being that big anymore...LOL, but David's example below still shows an issue there).

Once the little tweaks are behind us this is of course going out there. My changes are really tiny things, and quite honestly very simple changes from 'int' to 'long' or ULONG variables for the most part.

...
It seems to me that tthe program runs fine (diskio and debug)
But when I try to create an output file this way, I get this error?
Quote
[C:\HOME\DOWNLOADS\DISKIO_FIX_1]diskio-debug >debug.txt

SYS1808:
The process has stopped.  The software diagnostic
code (exception code) is  009B.

Aha...so I wasn't getting this in my tests because I was individually testing just my SSD or HDD devices, but running it just like you did eventually produced the same result. What I found is the following in my POPUPLOG.OS2:

Code: [Select]
12-19-2020  20:49:36  SYS3184  PID 0819  TID 0001  Slot 0125
Y:\TMP\DISKIO.EXE
c000009b
00022182
EAX=00000000  EBX=00000000  ECX=000402ec  EDX=00000000
ESI=00000090  EDI=00000090 
DS=0053  DSACC=f0f3  DSLIM=ffffffff 
ES=0053  ESACC=f0f3  ESLIM=ffffffff 
FS=150b  FSACC=00f3  FSLIM=00000030
GS=0000  GSACC=****  GSLIM=********
CS:EIP=005b:00022182  CSACC=f0df  CSLIM=ffffffff
SS:ESP=0053:00092440  SSACC=f0f3  SSLIM=ffffffff
EBP=000924fc  FLG=00210246

DISKIO.EXE 0002:00002182

...and SYS3184 is a "Divide by Zero".

Looking at where my output from DISKIO stopped it looks like the un-mounted USB removable drive is what caused the problem here. I'm running the DEBUG version right now to see the raw data but I'm sure that pesky 0 (zero) will show up.

In the meantime: thank you for the test and feedback!

I have the same error message.


[E:\]diskio-debug > debug.tx

SYS1808:
The process has stopped.  The software diagnostic
code (exception code) is  009B.

My popup.log shows

12-20-2020  12:58:22  SYS3184  PID 005a  TID 0001  Slot 00bc
E:\DISKIO-DEBUG.EXE
c000009b
000221a2
EAX=00000000  EBX=00000000  ECX=000402ec  EDX=00000000
ESI=00000090  EDI=00000090 
DS=0053  DSACC=d0f3  DSLIM=5fffffff 
ES=0053  ESACC=d0f3  ESLIM=5fffffff 
FS=150b  FSACC=00f3  FSLIM=00000030
GS=0000  GSACC=****  GSLIM=********
CS:EIP=005b:000221a2  CSACC=d0df  CSLIM=5fffffff
SS:ESP=0053:00092440  SSACC=d0f3  SSLIM=5fffffff
EBP=000924fc  FLG=00210246

DISKIO-DEBUG.EXE 0002:000021a2

I presently have no removable USB drive attached.

Dariusz Piatkowski

  • Hero Member
  • *****
  • Posts: 1317
  • Karma: +26/-0
    • View Profile
Re: DISKIO - updated version in need of TEST
« Reply #9 on: December 20, 2020, 10:27:49 pm »
Hi David,

I have the same error message.

[E:\]diskio-debug > debug.tx

SYS1808:
The process has stopped.  The software diagnostic
code (exception code) is  009B.
...
I presently have no removable USB drive attached.

Hmm, interesting...so another device is causing this as well.

Can you provide the output of the run that was created before the error occured? So basically whatever are the contents of the debug.tx that was created?

The last storage device that's logged is most likely where the issue occured...some early output should still be visible, such as: disk ID, sizing, preliminary cache/bus xfer rates (if successful, etc.).

BTW and/or FYI:
The previous version of DISKIO shows the same behaviour here, so point being: this is an existing issue which I'm going to try to chase down.

Thanks!

David Graser

  • Hero Member
  • *****
  • Posts: 870
  • Karma: +84/-0
    • View Profile
Re: DISKIO - updated version in need of TEST
« Reply #10 on: December 20, 2020, 10:32:14 pm »
The text file contains no information.  It is blank.

Dariusz Piatkowski

  • Hero Member
  • *****
  • Posts: 1317
  • Karma: +26/-0
    • View Profile
Re: DISKIO - updated version in need of TEST
« Reply #11 on: December 23, 2020, 10:01:29 pm »
I'm curious everyone, does anyone actually want/need the Win32 version of the code?

It seems the whole logic is re-implemented twice in DISKIO, once for OS/2 and once for Win32, that also means the same variables, funcs and procs are defined twice, which generally just makes the whole thing a mess to keep up with.

I get the idea of main entry points being named the same, but I do not understand why the remaining codebase follows the same naming convention.

Anyways, I'm thinking of completely dropping the Win32 functionality and therefore changing the package to leave out the Win32 source as well, as such, will this cauase anyone a problem?

So I am far from understanding the stipulation with this particular codebase, can anyone advise if there is anything in here that necessitates the continuation of Win32 support? If so, I think I would need to fork my changes...is that generally how things get done?

I do not like the idea of forking it, but see no point to maintaining a dead codebase either.

Thanks!

Dave Yeo

  • Hero Member
  • *****
  • Posts: 4787
  • Karma: +99/-1
    • View Profile
Re: DISKIO - updated version in need of TEST
« Reply #12 on: December 24, 2020, 04:19:29 am »
Well, ideally would be to keep the Win32 codebase and binaries so people can do comparisons. Of course if you have no motivation to do that, you could remove them, while leaving them in history in case someone wants to resurrect them, and do a major version jump to ver 2 or fork by renaming your binary. You're the one taking on the maintainer-ship.
Hopefully you're using something like Git to maintain history.
BTW, which compiler are you using? I tried VACPP 3.08 with no joy, didn't even like the CPLUS type comments. It did build fine with OpenWatcom with this patch.
Code: [Select]
From a1cf054f2665f861b537300e70f183bb447b136c Mon Sep 17 00:00:00 2001
From: Dave Yeo <dave.r.yeo@gmail.com>
Date: Sun, 20 Dec 2020 16:42:12 -0800
Subject: [PATCH 2/2] Fix compilation on OpenWatcom This macro is declared in
 the OW headers

---
 sources/perfutil.h | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/sources/perfutil.h b/sources/perfutil.h
index 9cb9800..238051b 100644
--- a/sources/perfutil.h
+++ b/sources/perfutil.h
@@ -57,11 +57,12 @@ typedef HOOKDATA * PHOOKDATA;
   *
 */
 
-#define   CMD_KI_RDCNT    (0x63)
+#define   CMD_KI_RDCNT    0x63
 
 /* note: on SMP machine DosPerfSysCall() will return an array of */
 /* CPUUTIL structures, by number of processors. */
-
+
+#ifndef __WATCOMC__
 typedef struct _CPUUTIL
 {
     ULONG ulTimeLow;     /* Low 32 bits of time stamp      */
@@ -73,6 +74,7 @@ typedef struct _CPUUTIL
     ULONG ulIntrLow;     /* Low 32 bits of interrupt time  */
     ULONG ulIntrHigh;    /* High 32 bits of interrupt time */
 } CPUUTIL;
+#endif
 
 typedef CPUUTIL *PCPUUTIL;
 
--
2.11.0

Tried a few things to find the divide by zero without luck and I'm not sure how to use the debugger in OW, I think I might have the HLL experimental linker screwing up wdw. Have to revisit.
Hmm, reviewing my patch, a related change got in, does VACPP need those brackets? OW didn't like them.

Martin Iturbide

  • OS2World NewsMaster
  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4713
  • Karma: +41/-1
  • Your Friend Wil Declares...
    • View Profile
    • Martin's Personal Blog
Re: DISKIO - updated version in need of TEST
« Reply #13 on: December 24, 2020, 04:26:02 am »
Hi

I have no interest for the Win32 version.

Regards
Martin Iturbide
OS2World NewsMaster
... just share the dream.

Andreas Schnellbacher

  • Hero Member
  • *****
  • Posts: 827
  • Karma: +14/-0
    • View Profile
Re: DISKIO - updated version in need of TEST
« Reply #14 on: December 24, 2020, 12:01:13 pm »
I tried VACPP 3.08 with no joy, didn't even like the CPLUS type comments.
BTW: No, that can't be the reason. "//" is defined in VAC 3.0.8 as single-line comment string, as well as C-Set/2 supports this.