1
Setup & Installation / Re: libtiff and libtiff tools - MIA in 4.6.x but...
« on: April 17, 2025, 07:02:33 pm »
OK, that's excellent...thank You Silvan!
OS2World.com Forum is back !!!
Remember to visit OS2World at:
http://www.os2world.com
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.
I've just released v1.09.00. See https://sourceforge.net/projects/lcmd-git/files/Code: [Select]Change History:
---------------
20250222 v1.9.0
- Skip sending lot of GUI (PM) messages for updating progress dialog with fast disks while copying and deleting files.
This is to work around PM memory leaks (crashes) when hammered with very much messages in a short period of time.
With fast disks copying or deleting small files takes few ms or even less. The previous logic to update the
progress bar after each file (and during a file when it is bigger) is changed to not send more than about one
message in 125ms. PM seems to be not safely ignore to much unhandled messages and starts to eat up shared memory.
Eventually this crashes the whole system when the process is not closed before. F.i. this skipps more than 69000
messages when copying the ApacheOpenOffice source code tree. The same skipping logic improves speed when deleting lot
of files. F.e. 33s instead 53s for AOO source code tree (about 70k files). More than 76000 messages where skipped with
that new delete logic.
@Dariusz: I have now made an XCenter Widget of it. Can you test ?
By the way: having the SYSCALL driver installed is no longer necessary. You do not need anything besides the Widget.
Source is included.
try the attached. If you look at the output, check "local APIC ID" to see if it is constant (it should never change from one invocation to the next).
Feel free to modify the code and propose different stuff.
[G:\test\cputemp]cputemp
AMD CPU: Family:0x15, Model:0x02, Local APIC:0x01
MMIO Configuration Base Address:0x00000000E0000000
Temperature core 0 (0x3B800F5F):59.50 °C
[G:\test\cputemp]cputemp
AMD CPU: Family:0x15, Model:0x02, Local APIC:0x01
MMIO Configuration Base Address:0x00000000E0000000
Temperature core 0 (0x3B400F5F):59.25 °C
[G:\test\cputemp]cputemp
AMD CPU: Family:0x15, Model:0x02, Local APIC:0x01
MMIO Configuration Base Address:0x00000000E0000000
Temperature core 0 (0x3C600F5F):60.38 °C
My experience is that logical processor 1 is always the hottest as it is most busy under OS/2 (logical processor 1 has special role under OS/2: will exclusively run IRQ handlers, for example).
The version of ACPI.PSD that is installed is 3.23.16
The system is operating in Symmetric mode (Mode 2)
The kernel is 14.203_SMP
The retail PSD is installed
Number of interrupts available: 60
IRQ 00 count 5727838
IRQ 01 count 41176
IRQ 04 count 970024
IRQ 07 count 86
IRQ 08 count 161109395
IRQ 09 count 525
IRQ 12 count 560805
IRQ 14 count 2181
IRQ 16 count 10601
IRQ 17 count 14
IRQ 18 count 320483
IRQ 19 count 3487544
MSI 46 count 6689081
========== CPU0 ==================
ACPI name [P001]
IPIGenCount = 4708113 IPICount = 68489594 HaltCount = 0
IPIPsdCount = 0 IdleCount = 186081463 BusyCount = 7350809
========== CPU1 ==================
ACPI name [P002]
IPIGenCount = 171725589 IPICount = 37725731 HaltCount = 4
IPIPsdCount = 0 IdleCount = 34529681 BusyCount = 34529679
========== CPU2 ==================
ACPI name [P003]
IPIGenCount = 45044918 IPICount = 61734043 HaltCount = 4
IPIPsdCount = 0 IdleCount = 35391949 BusyCount = 35391948
========== CPU3 ==================
ACPI name [P004]
IPIGenCount = 52654385 IPICount = 60671812 HaltCount = 4
IPIPsdCount = 0 IdleCount = 35551057 BusyCount = 35551056
========== CPU4 ==================
ACPI name [P005]
IPIGenCount = 49883419 IPICount = 61011487 HaltCount = 4
IPIPsdCount = 0 IdleCount = 35997515 BusyCount = 35997513
========== CPU5 ==================
ACPI name [P006]
IPIGenCount = 53737973 IPICount = 60473144 HaltCount = 4
IPIPsdCount = 0 IdleCount = 36198100 BusyCount = 36198099
========== CPU6 ==================
ACPI name [P007]
IPIGenCount = 47435079 IPICount = 61374857 HaltCount = 4
IPIPsdCount = 0 IdleCount = 35395312 BusyCount = 35395311
========== CPU7 ==================
ACPI name [P008]
IPIGenCount = 47665206 IPICount = 61374014 HaltCount = 4
IPIPsdCount = 0 IdleCount = 35555379 BusyCount = 35555378
When you talk about "MMIO" I think you are referring to the IOMMU unit that can remap physical to another physical address, for virtualization purposes.
When I talk about "MMIO" , I mean to say that PCI config space is not accessed via the two well known I/O registers 0xCF8 and 0xCFC but instead, it is accessed via a memory address.
...
So yes, the IOMMU unit is not related to this.
As to temperature: I have no clue as to exactly what temperature this refers to. And what's even more odd, if you run it a couple of times, it will jump in temperatue.
[G:\test\cputempt]cputemp
MMIO Configuration Base Address:0x00000000E0000000
Northbridge caps: 0x2F04F1E
Temperature core 0 (0x3CA00F5F):60.63 °C
[G:\test\cputempt]cputemp
MMIO Configuration Base Address:0x00000000E0000000
Northbridge caps: 0x2F04F1E
Temperature core 0 (0x3B800F5F):59.50 °C
[G:\test\cputempt]cputemp
MMIO Configuration Base Address:0x00000000E0000000
Northbridge caps: 0x2F04F1E
Temperature core 0 (0x3BA00F5F):59.63 °C
[G:\test\cputempt]cputemp
MMIO Configuration Base Address:0x00000000E0000000
Northbridge caps: 0x2F04F1E
Temperature core 0 (0x33C00F5F):51.75 °C
The only thing that I understood from the FX BIOS programmers spec is that not the real measurement temperature is returned but instead, a control temperature. But you can somewhat couple the control temperature to the measures temperature and the code sample tries to do that ( you can have the control temperature somewhat follow the measurement temperature).
Find attached.
[G:\TEST\CPUTEMPT]cputemp
MMIO Configuration Base Address:0x00000000E0000000
Northbridge caps: 0x2F04F1E
Temperature core 0 (0x39E00F5F):57.88 °C
..by now I have hacked together a proof of concept. Since you have a FX 8380 CPU (I think), would you be willing to test ? Beware, the test prog has no strict error checking but I can provide the source code to you ...
You will also need to install:
https://hobbesarchive.com/Home/Download?path=/Hobbes/pub/os2/system/drivers/misc/SysCall_3-0.wpi
which is my driver + DLL to execute code in Ring 0 (necessary for the test program to read MSRs, also used to map physical to linear address).
my ACPI is crippled, it's very old and does not support many of the new ACPI objects. And then, I don't know if with our ACPI.PSD there is a way to overload ACPI tables on the fly.
Then I found the AMD BIOS Writer's Guide:
https://www.amd.com/content/dam/amd/en/documents/archived-tech-docs/programmer-references/42301_15h_Mod_00h-0Fh_BKDG.pdf
The register to read is the "Reported Temperature Control" PCI config space register Device 18h Function 3 Byte Offset A4h (so yes, in principle, the ACPI tables could be extended by AML code that just reads that specific PCI config space register but I am far from an expert on ACPI).
And then I have to find out exactly what AMD CPUs support that PCI config space register. Don't want to crash anyone's system ...
Which OS/2 driver do you use and what's your network chipset ?
Signature: @#Arca Noae LLC:1.1.9#@##1## 18 Sep 2023 13:35:25 DAZAR1
::::9::SVN105@@RealTek 8139C+/8169/8169S/8110S/8168/8111/8101E PCI NIC driver
Vendor: Arca Noae LLC
Revision: 1.01.9
Date/Time: 18 Sep 2023 13:35:25
Build Machine: DAZAR1
FixPak Version: SVN105
File Version: 1.1.9
Description: RealTek 8139C+/8169/8169S/8110S/8168/8111/8101E PCI NIC driver
I always have this king of issue (I found one setting which "seems" having reduced stallen state)
I have a chipset which is support by MMRE driver, I have a correct speed on some link but awfull on other like when I download updates from Smedley site. (speed never goes above 138KB ! - under windows, up to 2MB or trying using Aos from under a virtual box using a different driver than MMRE, speed goes up to 1.8MB and never got a stall status !)
I reported this problem several times to ArcaOS since Arcos 2.0 and each time, it ended with no problem found, for them MMRE is well operationnal....
The MMRE driver is unable to correctly work with in my case Realtek® 8111G Gigabit LAN
Bus 2 (PCI Express), Device Number 0, Device Function 0
Vendor 10ECh Realtek Semiconductor Co., Ltd.
Device 8168h RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
Command 0007h (I/O Access, Memory Access, BusMaster)
Status 0010h (Has Capabilities List, Fast Timing)
Revision 06h, Header Type 00h, Bus Latency Timer 00h
Self test 00h (Self test not supported)
Cache line size 64 Bytes (16 DWords)
PCI Class Network, type Ethernet
Subsystem ID 76401462h Unknown
Subsystem Vendor 1462h Micro-Star International Co., Ltd. [MSI]
Address 0 is an I/O Port : D000h..D0FFh
Address 1 is not present or not configured!
Address 2 is a Memory Address (64-bit, Prefetchable) : FE904000h..FE904FFFh
Address 4 is a Memory Address (64-bit, Prefetchable) : FE900000h..FE903FFFh
System IRQ 46, INT# A
...
1) the "SystemLoad" temperature widget from Digi only works for Intel CPUs. He is reading from an MSR to query the temperature value. And that MSR does not exist on AMD CPUs (unfortunately not all MSRs are part of the base X86 architecture ...). The XCenter widget (I think) also leads to repeated traps on my system (CPU: FX-8350, which is a Vishera release of the Bulldozer architecture) once the WPS attempts to load until the system finally completely freezes.
2) stumbled across a Windows utility to read out temperatures. And for AMD, they say that they are reading a register from the Northbridge (and that seemingly works for many later AMD CPUs and should also include the FX-8350 and @Dariusz it should therefore also include the FX-8370 ...). In order to find the spec: is the Northbridge built into the CPU or is is part of a separate chipset ?
+*_PR_ T:[Scope]
|
+*SSDT T:[Region]
|
+*DCOR T:[Integer]
|
+*TBLD T:[Integer]
|
+*NPSS T:[Integer]
|
+*HNDL T:[Integer]
|
+*APSS T:[Package]
|
+*P001 T:[Processor]
|
+*TYPE T:[Integer]
|
+*_PDC T:[Method]
|
+*P002 T:[Processor]
|
+*TYPE T:[Integer]
|
+*_PDC T:[Method]
+*_SB_ T:[Device]
Current state:
Possible State:
|
+*PR00 T:[Package]
|
+*AR00 T:[Package]
|
+*PR20 T:[Package]
|
+*AR20 T:[Package]
|
+*PR21 T:[Package]
...
#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
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.
I am curious Darius what ACPISTAT shows on your Ryzen.
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
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).
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
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 ?
if (DevInfo->Type == ACPI_TYPE_THERMAL)
{
printf(" Thermal State:\n");
AcpiTkWalkResources(ObjHandle,
"_TMP",
internal_PrintResourceInfo,
(void *) NestingLevel);
}
if (DevInfo)
{
AcpiTkOsFree(DevInfo);
}
return AE_OK;
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.
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.
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]
Thank you everyone for your responses.
What utility are you using to get real-time temperatures of the processors?