NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: 11 beta testing



RVP <rvp%SDF.ORG@localhost> writes:

> On Fri, 10 Oct 2025, Van Ly wrote:
>
>>   [acpitz0]
>>          temperature:    50.000  127.000                             degC
>>   [coretemp0]
>>     cpu0 temperature:    47.000                                      degC
>>   [coretemp1]
>>     cpu1 temperature:    45.000                                      degC
>>   [thinkpad0]
>>        temperature 0:    50.000                                      degC
>>
>
> The reason for the refresh failure was something else. See PR pkg/59702.
>
>> but the btop reading says 57degC.
>>
>
> Dunno why this is. For me, envstat and btop both agree on the various temp.
> readings.
>


At the moment btop reads 46degC and the following script reads 42.000, 43.000

   #!/bin/sh
   envstat | awk '
   /cpu[0-9]/ {
   	   core = substr($1, 4);
   	   temp = $3;
   	   print core ":" temp;
   }'



>> RVP <rvp%SDF.ORG@localhost> writes:
>> 
>> >
>> > It sort-of works for me, even though it's not fully correct (uses `coretemp0'
>> > values for _all_ CPUs).
>>
>> I fed the AI code assistant the following prompt to see if the correct
>> behavior in `envstat' can be ported to btop.
>>
>
> Oh, I know how to fix this properly--just a small matter of programming is all :)
> And then, there also needs to be a small discussion with the kernel people about
> the stability of the sensor indexes in the XML data retrieved from the kernel.
> The way most of the matching is being done by most such programs on NetBSD
> (on the description string values) is _very_ error-prone.
>
> See this thread:
>
> https://www.unitedbsd.com/d/1311-battery-data-such-as-vendor-model/21
>

The first thing I asked of the code assistant was for at tool to
flowchart the logic in envstat and btop but the friction and hoops to
jump thru lead to a timebomb.  I think it should be possible to infer
what's going with the kernel and the cpu temperature reading using an
initial schematic like the citric acid cycle

   https://sdf.org/~van.ly/img/citric_acid_cycle.jpg

The AI says, as a temporary fix, use the above shell script output in
btop.  It is unable to swap out the following part in btop for the shell
script.

  regex_t r;
  if (regcomp(&r, "(cpu[0-9]* )*temperature", REG_EXTENDED)) {
  	Logger::warning("regcomp() failed");
  	return;
  }

  string prop_description = "no description";
  while ((fields = (prop_dictionary_t) prop_object_iterator_next(prop_object_iterator_t(fields_iter))) != NULL) {
  	props = (prop_dictionary_t) prop_dictionary_get(fields, "device-properties");
  	if (props != NULL) continue;

  	prop_object_t cur_value = prop_dictionary_get(fields, "cur-value");
  	prop_object_t max_value = prop_dictionary_get(fields, "critical-max");
  	prop_object_t description = prop_dictionary_get(fields, "description");

  	if (description == NULL || cur_value == NULL) {
  		continue;
  	}


  	prop_description = prop_string_cstring(prop_string_t(description));

  	// if (prop_description == "temperature") {
  	if (regexec(&r, prop_description.c_str(), 0, NULL, 0) == 0) {
  		current_temp = prop_number_integer_value(prop_number_t(cur_value));
  		if (max_value != NULL) {
  			current_cpu.temp_max = MUKTOC(prop_number_integer_value(prop_number_t(max_value)));
  		}
  	}
  }
  regfree(&r);


-- 
vl


Home | Main Index | Thread Index | Old Index