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.


Messages - Dariusz Piatkowski

Pages: 1 2 [3] 4 5 ... 96
31
Networking / inetcfg.ini - window size, but why this result?
« on: March 03, 2025, 05:13:19 am »
So a couple of days ago the AOS testers list was asked with giving some new SEND & RECEIVE window sizes a try.

Ever since I went to a 1Gig fibre line I had tweaked my inetcfg.ini to use the max allowable value for both TCP & UDP windows.

However this request prompted me to test and surprisingly enough I found that the smaller window size actually caused a repeatable 20-25% improvement when doing a speedtest run.

OK, nice...so I permanently updated my inetcfg.ini with these values, and carried along.

Today I needed to reboot my machine, all was good. The box re-started fine, I brought up my regular apps: PMMail, Thunderbird, RDP, Firefox...but whoa...hang on...why isn't Firefox taking me anywhere????

Yeah, it just sat there, spinning, "connecting..." but it would never go anywhere.

So I check the other apps: PMMail is good, but TB...nope, same story as FF.

I whip up the speedtest CLI...nope, not going anywhere either.

After numerous trials I determined that the window sizing was impacting certain apps. Further on, I found that on my machine anything smaller than 131,072 (so 128K) would cause the above described "stall", while anything bigger consistenty 'just works'!!! ugh???

Can anyone explain this please?

Here are the contents of my inetcfg.ini:

Code: [Select]
#Inetcfg:       CURRENT DEFAULT MINIMUM MAXIMUM

keepalive       60      7800    0       7800    KeepAlive (sec)
tcpswinsize     131072  32768   1024    246723  TCP SendWindow Size
tcprwinsize     131072  32768   1024    246723  TCP RecvWindow Size
udpswinsize     131072  9216    1024    246723  UDP SendWindow Size
udprwinsize     131072  41600   1024    246723  UDP RecvWindow Size
lingertime      120     120     0       65535   Linger Time (sec)
probecnt        8       8       1       8       Number Of KeepAlive Probes
ipforward       0       0       0       1       IP Forwarding flag ON/OFF
mtudiscover     1       1       0       1       TCP Path MTU Discovery ON/OFF
arpkillc        1200    1200    180     15300   ARP Complete TimeOut (sec)
arpkilli        180     180     60      1200    ARP InComplete TimeOut (sec)
lipcstswinsize  10240   10240   1024    246723  LIPC Stream SendWindow Size
lipcstrwinsize  10240   10240   1024    246723  LIPC Stream RecvWindow Size
lipcdgswinsize  2048    2048    1024    246723  LIPC Dgram SendWindow Size
lipcdgrwinsize  4096    4096    1024    246723  LIPC Dgram RecvWindow Size
synattack       0       0       0       1       SYN Attack Flag ON/OFF
syncookie       0       0       0       1       SYN Cookie Flag ON/OFF
firewall        0       0       0       1       FIREWALL ON/OFF
multidefrt      1       1       0       1       Multiple Default Routes ON/OFF
winscale        1       1       0       1       TCP Window Scale ON/OFF
timestmp        1       0       0       1       TCP TimeStamps ON/OFF
realslow        20      20      1       100     TCP TW Q Slow Timeout ticks
perfhttp        1       1       0       1       Fast Path HTTP ON/OFF
tcpttl          64      64      1       255     TCP  TTL (hops)
udpttl          64      64      1       255     UDP  TTL (hops)
icmpttl         64      64      1       255     ICMP TTL (hops)
fragttl         60      60      1       255     Fragment TTL (sec)
reusetw         1       1       0       1       Reuse Time Wait ON/OFF
msl             30      30      1       16384   TCP MaxSegLifeTime (sec)
cc              0       0       0       1       TTCP function ON/OFF
sack            1       0       0       1       Selective ACK ON/OFF

32
Programming / Re: stopping cpus
« on: March 02, 2025, 04:44:27 pm »
Hi Doug!

When running ACPISTAT my Ryzen 5/MSI motherboard shows no thermal information available, while the Intel i5 8th gen/HP machine does shows thermal information.  The Ryzen also doesn't support throttling or performance control; the i5 supports throttling.

So the 'throttling' functionality is something that used to be the orginal/default way of enabling power savings: after all if you were to tell the CPU to get down to just 25% of it's TOTAL output, you would subsequently see less voltage and current draw, less W being produced, and less thermal output.

Today however this functionality has been obsoleted by Power States, where the CPUs themselves are sophisticated enough to calculate the right combination of CPU frequency, voltage needed to support execution at that frequency, and the monitoring of the resulting temperature being generated. Now all that still has to be tied into/with with actual OS level execution and that's where the various ACPI methods come in, and in our case this is why the OS/2 implementation of ACPI uses the PowerManager daemon.

I am curious Darius what ACPISTAT shows on your Ryzen.

So in my case I'm actually using an older AMD CPU, FX-8370, which is a Vishera release of the Bulldozer architecture.

This box is heavily overclocked, which means higher CPU voltage, higher frequency (5GHz as opposed to the default 4GHz and 4.3GHz (boost) frequencies, which in turn requires me to implement specific BIOS settings required to support such an overclocked state. This means that in the BIOS itself I actually turned OFF AMD's C1E function, I shut off the CPU Phase Control function (which is normally motherboard specific as that allows the hardware to dynamically figure out how much power the CPU requires to support execution at a specific user-driven power level) and a few other power control functions.

In the end I do not use the ACPI PowerManager functionality since even if it wanted to control my CPU it wouldn't be able to do so since I had disabled all such BIOS level functionality. Subsequently I have no temperature readout even if I temporarily turn on PowerManager:

Code: [Select]
This system does not support CPU Performance Control via ACPI.

This system supports CPU Throttling. Current=100%

Thermal information:
  No Thermal information is available for this computer

No AC status is available for this computer

No Battery information is available for this computer
Power Manager is Enabled

33
Programming / Re: An XWorkplace CPU Temperature Widget for AMD CPUs
« on: March 02, 2025, 04:25:52 pm »
Hey Lars!

I am using XWorkplace 1.0.17 and recently I added the "CPU temperature" widget to XCenter to keep track of CPU temperature.
Unfortunately, it will always display 0 °C.
I am using an AMD CPU and I suppose, that is the problem. Needless to say that I have ACPI installed and working (but ACPI power management turned off, see below).

So as I understood the whole ACPI ecosystem it is not necessary for things like power management to be activated in order for the hardware to report runtime metrics.

Whether it is Intel, AMD or others (CPUs or chipsets) so long as the motherboard vendor implements the proper ACPI functionality, the subsequent OS or APP software should have the ability to query the various ACPI components.

Take a look at the officials specs https://uefi.org/specifications, ACPI is at 6.5a level now. They also show a good number of technical/whitepaper docs on there that help with digesting all of this.

I have no clue what widget DLL implements the CPU temp widget and I don't know where I can find the source code.
1) can someone point me to the source code ? That could be my starting point of implementing a widget

OK, so when installing ACPI support you have the option of installing the ACPI Toolkit. In my case the stuff sits in \acpi\toolkit where you'll find the header files, libs, some docs and a good measure of sample code.

2) does the existing widget build upon ACPI functionality to query temperature ? If yes, then I would suspect that this functionality does not work for AMD CPUs but I don't know. Does anyone have any insight ?

Great topic, so in the other thread (CPU shutdown) I mentioned that I was trying to digest the ACPI framework in order to expose this information, basically thinking along the lines of what you articulated in your post here.

So far here is how all of it appear to glue together using the TEMPERATURE topic as an example (this is very much WIP on my part, so I'm sure I'm missing some stuff and most likely misunderstanding things):

1) in the \acpi\toolkit\samples directory look at the acpitree.c code, where you'll find this section:

Code: [Select]
    if (DevInfo->Type == ACPI_TYPE_THERMAL)
    {
         printf(" Thermal State:\n");
         AcpiTkWalkResources(ObjHandle,
                           "_TMP",
                           internal_PrintResourceInfo,
                           (void *) NestingLevel);
    }

    if (DevInfo)
    {
        AcpiTkOsFree(DevInfo);
    }
    return AE_OK;

In particular the key here is that reference to "_TMP" in the AcpiTkWalkResources API call, which the toolkit docs explain as:

Code: [Select]
Parse an ACPI Resource List.

AcpiStatus = AcpiTkWalkResources(Device, &Name, UserFunction, &UserContext);
 
PARAMETERS
Device (ACPI_HANDLE) - input
A handle to the Device for which one of the resource lists will be walked:

Name (char *) - input
Name of a resource method (either a _CRS or _PRS method.)

UserFunction (ACPI_WALK_RESOURCE_CALLBACK *) - input
A pointer to a user-written function that is invoked for each resource object within the resource list. (See the interface specification for the user function below.)

UserContext (void *) - input
A value that will be passed as a parameter to the user function each time it is invoked.
 
RETURN VALUE

Status (ACPI_STATUS) - output
Exception code that indicates success or reason for failure.
 
Functional Description:

This function is equivalent to the AcpiWalkResources function described in the Intel ACPI Component Architecture User Guide and Programmer Reference.   

In other words, that "_TMP" is the "Name of a resource method" that you are interested in obtaining information about/from. Further on, if you look this up in the official ACPI docs you'll find that following:

11.4 (Thermal Objects) => 11.4.18 (_TMP Temperature)

...with the following (rather criptic details being shown):

Code: [Select]
11.4.18 _TMP (Temperature)
This control method returns the thermal zone’s current operating temperature.

Arguments:
None

Return Value:
An Integer containing the current temperature of the thermal zone (in tenths of degrees Kelvin)
The return value is the current temperature of the thermal zone in tenths of degrees Kelvin. For example, 300.0K is represented by the integer 3000.

OK, but not all is lost. There are other "resouce methods" you can use to obtain all the information you need, these are nicely listed in the main table at the start of 11.4 (Thermal Objects) section.

Soooo...I am thinking that what AOS (DavidA in particular) provided us with is the ability (through ACPI framework) to access such "resource methods". What I am not sure is whether ALL such ACPI currently defined methods are available, or just a subset.

With ACPI framework there is that whole notion of motherboard firmware (BIOS) needing to support the various ACPI calls, which in fact are pseudo-code (similar to how the JVM stuff works) and which the OS/APP layer issues and the firmware understands and is capable of responding to.

This is well documented in CH19 of that ACPI Specs document, as well as CH20 which talks about "ACPI MACHINE LANGUAGE (AML) SPECIFICATION".

What I am unclear about at this point in time is as to whether the ASL & AML stuff is completely transparent to us (at the API level for example)? I think the answer is YES, but yet our ACPI package ships with iasl.exe, which is:

Code: [Select]
Intel ACPI Component Architecture
ASL+ Optimizing Compiler/Disassembler version 20210331
Copyright (c) 2000 - 2021 Intel Corporation

Supports ACPI Specification Revision 6.3

Usage: iasl [Options] [Files]

....so the plot thickens!!! lol

NOTE: I think ASL is used to actually dynamically define & create the whole ACPI set of tables which can then be loaded into BIOS at runtime, thus allowing the OS to further customize the particular behaviour/functionality present on specific hardware. That way you could in fact "patch" faulty motherboard hardware and have the BIOS execute this stuff. This is a pure stipulation on my part though as I honestly do not understand this enough at this point in time...

34
Programming / Re: stopping cpus
« on: March 02, 2025, 12:10:07 am »
Thank you everyone for your responses. 

What utility are you using to get real-time temperatures of the processors?

NONE...and that's the problem on our platform Doug, although there were chipset specific drivers released in the past, but I believe today that's pretty much 'ancient history'.

Well, I should clarify the above statement: I do not have AOS installed, and so there may in fact be some functionality in various utils that are part of AOS.

It is for this reason that I mentioned in my earlier post me currently looking into the ACPI API functionality that perhaps might expose this, assuming our ACPI implementation handles that, which I simply have no idea.

35
Programming / Re: stopping cpus
« on: February 28, 2025, 04:51:02 pm »
Hi Doug!

...
3- Dave/Darius - I am afraid to turn off power management after reading the warnings in the ACPI docs - which basically say thermals may become a problem if you mess with power settings.  I did download the ACPI sdk and look through the documentation and I didn't see any function that seemed to address turning on or off processors.  But I might have missed something.
...
I suspect, like Darius, that either the processors aren't getting turned off, or something is turning them back on.  This appears to happen on both Ryzen and Intel processors. One using SNAP and the other using Panaroma.

From a 'good to know how to configure this' perspective the easiest way to TEST this on your machine is to DISABLE the ACPI PowerManager (as per the note that Dave posted, see acpid.cfg file). I believe ACPI daemon dynamically picks this up, so no reboot is necessary.

Then you can shut OFF the cores you do not need running and test your WIN-OS/2 use.

If this work, you know precisely HOW to get this working when you need it working. After all, re-enabling the ACPI PowerManager is just as easy as disabling it. You could literally have a little pm_off.cmd & pm_on.cmd scripts that simply replace the appropriate acpid.cfg files, which ACPI PM then recognizes.

In my experience the big CPU temperature spikes only occur when you really start pushing the machine. We are talking here heavy FLOAT ops such as running the SYSBENCH FLOAT benchmark, etc.

For example: as I play around with this stuff on my end I find that the 48C idle temp of my AMD FX-8370 CPU (8 core, 5GHz) goes up to 51C...which is a pretty tiny amount of just 3C increase. But make note that this is only achieved by deploying the Noctua NH-15D CPU cooler, which is very much in the realm of the overclocking domain.

Prior to installing this cooler I was running a Corsair A70 setup, which was showing 55C at idle and when running the SYSBENCH FLOAT tests the temp would spike all the way to 64C. Heck, a couple of times (as I was screwing around with both CPU frequency and core voltage) I actually had the whole box automatically shut-down.

Soooo....with today's systems there is a good amount of protection built-in...but it's always good to review your specific specs to know exactly what your MAX values are.

Ultimately the experimentation is what will give you the true answers.

EDIT
====

HERE (https://man.netbsd.org/acpicpu.4) is a good summary of all of these C/P/T-states, how they relate to each other, etc.

36
Programming / Re: stopping cpus
« on: February 28, 2025, 04:33:51 pm »
Dave, everyone...

Don't forget that you can disable/enable PowerMan by changing one line in \mptn\etc\acpid.cfg,
Code: [Select]
[PowerMan]

; Enable: 1=enabled, 0=disabled, default=1
Enable = 1

Correct, that is exactly how I control whether PowerManager is running, although in my case it is permanently turned OFF.

...And the ConfigCheckInterval can be changed from the default of 10 secs if you want a faster result from changing the enabled line.
Personally, my little computer will get too hot with PowerMan disabled though disabling for a while may be acceptable.
Also there is the ACPI sdk, which I've never looked at, IIRC it can be installed from the acpi.wpi.

Yeah, good point here. There certainly are numerous available parameters that one can tweak in order to get a more "fitting" configuration enabled. In my case, much like what Lars' comment highlighted, having spent a good amount of time working through these I was simply unable to get that balance. The system was always lagging in turning on the CPU/cores when I needed the extra power, this resulted in that "why are things running so slow?" kind of a feel.

I did actually reach out to DavidA (AOS) to work through this, but following several back'n'forth exchanges I was simply told "that's how it works, nothing to change here, it is correct". It is not that he is wrong, I understood all his points but perhaps the ACPI implementation on our platform just can't provide the sort of seamless power transition experience we normally see on other platforms?

37
Programming / Re: stopping cpus
« on: February 28, 2025, 04:12:50 am »
Ahhh...so I'm going to float an idea here that I have arrived at having personally fought through symptoms such as what you just described, and eventually figure out the relationships at play.

The modern day combination of OS/2 software to support/enable SMP most likely has us all using the ACPI driver, and that by default also means that we have the ACPI daemon managing the CPU/cores according to how you actually configure the system.

What this means is that APCI will attempt to use it's fairly sophisticated logic to enable things such as CPU power saving modes (think of the different CPU Cx states here). Basically these are the PowerManager settings in the acpid.cfg file sitting in \mptn\etc.

Now by DEFAULT the ACPI install has the PowerManager enabled and that also means that ACPI and NOT YOU are deciding what a particular CPU/core should be doing. Heck, on the surface acpid.cfg has enough settings there for you to almost set it up for a nearly seamless "power on when I need it" type of an experience.

....BBBUUUUTTTTT.....that also means that ACPI will insist on being the one who controls your CPU/cores and so subsequently when you are attempting to power off/disable a CPU core using an API call such as DosSetProcessorStatus, it most certainly will, but in the background ACPI will immediately take over and either undo what you just did, or if the system is nearly IDLE it may in fact let that CPU/core stay in disabled status.

This very thing caused me a boat-load of problems b/c on my OS/2 box (4.52, so non AOS install but using the same ACPI release) I occasionally have an OS/2 application that will lock my box (soft freeze, CTRL+ALT+DEL still works to power down) during app startup (I have been told maybe SNAP driver related, I think it is something else), and so I took to using a REXX wrapper to always disable all but a single CPU core before I needed to run such a program. Well, as you can imagine when I moved over to ACPI I all of a sudden was plagued by these soft locks 'once again'...I worked and worked through numerous iterations of configs until I finally discovered that the default ACPI PowerManager settings were occasionally flipping ON one of the just disabled cores and BAM...yup, the lock-up would occur.

Soooo....bottom line here is that on this 24x7 box of mine I do not care at all about how much power that sucker eats up, it is backed up by a 1500W UPS box and stays on all the time, running at full 5.2GHz core speed across all eight of it's cores!

Happy with what I have, combination works for me, but it did require me to disable the ACPI PowerManager.

So what I'm curious about Doug is what that specific error message is that you are seeing? Could it be that DosSetProcessorStatus API was patched to sync it up with the ACPI daemon's logic which is driven by the PowerManager??? That would be fancy, although I doubt that is the case.

Food for thought - I am actually trying to understand the whole ACPI system b/c I'd like to create a little utility that tells us a lot more about what the current hardware configuration, and specifically CPU runtime readings are like, we are talking the Cx core states, the actual frequency different cores are running, heck ACPI is even supposed to give you the ability to see the CPU L1/2/3 cache hit ratios, etc....cool stuff!

38
Hello Alfredo!

The topic you raise here is equally applicable to all the other programming languages on our platform.

'Knowledge is Power', right?

So I would suggest that where things start for us is in establishing a good Developer Library/References.

I've attached what such a library looks like on my machine, specifically focusing on REXX. This is a mix of freely available information, as well as PDF downloads of previously commercial books, etc.

Now you may argue that the PDFs in particular are illegal, etc., etc....OK, fine, so why not provide an executable d/l script that simply uses wget to pull this list down from any of the well recognized archive sites??? That way each end-user makes this decision for themselves!

Bottom line being: tutorial, try-by-example, all these things are great, but when you are new to something you ultimately need a solid 'something to go to in order to understand what the example code/API does', and that's the missing piece for us I think.

39
Virtualization / Re: A new video about OS/2 after more than 4 Years...
« on: February 21, 2025, 04:10:56 pm »
Hi Sigurd,
That's a nice 'write-up', good video coverage of the functionality. Thank you sir!

40
Setup & Installation / Re: How to reinstall files missing from /usr/bin?
« on: February 14, 2025, 05:40:36 am »
'yum history' will give you a breakdown of what what installed and when.

You could then chose to re-execute the specific TRX ID, but by all accounts this is a vastly manual effort.

41
Applications / Re: ePDF
« on: February 14, 2025, 05:29:21 am »
i'm also using 9.18-version.
With STDIO i get:
Error: /undefined in E&k0G&l1T*t600R&u600D*r0F&l0S&l0O&l26A&l1H&l0M&l0E*c5611x8416Y*p0x120Y*c0T
Operand stack:
...

Do all attempts at printing fail this way with this specific error, or is this just a specific job?

For what it's worth, if you can share the document I can attemp to print to ePDF here and we can compare the results...maybe that gives us more details to go off of?

42
Hardware / Re: Printer
« on: February 05, 2025, 04:56:59 am »
Try looking at the Brother range of laser printers.  I have two, a HL-3170cdw and DCP-9020cdw, both have postscript emulation (BR-Script3), hence the use of the PSPRINT driver, do not require special drivers other than SLPR and both work over my local network.

I'll give Brother the vote as well. Running the HL-5470DW model here, duplex, quick and I even managed to tweak the published PPD file and import it to enable controls for MOST of the features. The one thing that failed was the ability for the PSCRIPT driver to run the HQ1200 (so High Quality emulated mode, just faster and obviously less sharp version of the full 1200dpi print option). No problem though b/c for some reason the PSPRINT drive actually handles that one very well. So for quick jobs I send to PSPRINT, for quality jobs I send to PSCRIPT drivers.

43
Applications / Re: ePDF
« on: February 05, 2025, 04:51:49 am »
hello andreas!

What version of eDPF do you have?

I am using '2.99-6 - Jan 2021', and have it configured to use two different Distillers:

1) 9.04
2) 9.18

I use 9.18 regularly and the following are the settings;

'Path to Distiller:' - g:\usr\bin\gsos2.exe

'Library path:' - g:\usr\lib;g:\usr\share\fonts\default\ghostscript;G:\usr\share\fonts\default\type1;g:\psfonts

Of course you need to adjust for the proper DRIVE your OS/2 box is using.

To troubleshoot further head on over to the 'Options' tab and check mark the 'enable STDIO (debug mode)', which will leave the Distiller session up after ePDF calls it. At least that way you might get some tell-tale look at what other errors might be coming at ya?

Oh, one more thing: I think ePDF builds a CMD file that it passes to Distiller, which is what that STDIO window shows you. Look for that CMD file wherever your TEMP variable points to, if I recall correctly. Once you find it you always have the option to run it manually from CLI to better assess what's going on.

44
andreas,

i tried chkdsk C:/ F:1    what does /D x: do?

Courtesy of Lewis (AOS) and sTeven Levine (whom he credits for sharing his notes on this topic):

Code: [Select]
Check FS content
Usage: chkdsk drive: [/A] [/B] [/C] [/D] [/F[:n]] [/O] [/P] [/V]

/A - Enable autocheck mode (undocumented)

/B - Perform LVM Bad Block List utility processing only

/C - Process ifdirty after logredo

/D - Enable debug mode (undocumented) all log messages written to stdout in english

/F[:n] Full check

0 => read only (default)
1 => prompt for permission for each repair
2 => preen (default if n omitted)
3 => Assume permission given for all repairs.

If exiting with clean file system, invoke LVM Bad Block List utility processing on the way out.

Note: :1 and :2 are converted to :3

/O - Omit logredo (undocumented)

/P - Enable pmchkdsk mode (undocumented)

/V - Verbose messaging (ignored)

Both / and - prefix supported
Options are case-insenitive Called as chkdsk drive: /F /A [/C] for autocheck

45
Applications / Re: PMMail fails sending messages
« on: January 20, 2025, 08:33:59 pm »
I am desperatly trying to make PMMail sending messages without success.
I am a registered user and I am running PMMail 3.11.30.1767.
Receiving messages works pretty good. But sending doesn't.
...
Any hints what to try to make PMMail send messages succesfully?

What does PMMail log show?

You can find it here: Toolbar => PMMail => View Program Log File

As an idea: could you use POP to handle your Outbound email tasks? I realize that POP is not meant for that, but PMMail 'Send' tab certainly shows POP as a viable choice here (at least on my 3.25 release).

Here is a decent review of all the protocol options => https://world.siteground.com/tutorials/email/protocols-pop3-smtp-imap/

Pages: 1 2 [3] 4 5 ... 96