Re: PowerMac G5 fans run out of control with kernel 4.17.0-3-powerpc64 but not with 4.16.0-1-powerpc64
On 08/25/2018 04:10 AM, Rick Thomas wrote:
On Aug 24, 2018, at 9:26 PM, Dennis Clarke <dclarke@blastwave.org> wrote:
On 08/24/2018 09:31 PM, Rick Thomas wrote:
I just loaded the latest Debian-ports powerpc64 installer ...
From the better late than never pile.
So I built and installed 4.18.12 twice. Documented what I was doing and
went slowly step by step. I really don't know what to do in order to
create these so called "deb" packages that I could hand to you but I am
guessing that a tarball made from the root level would work. Worth a try.
nix$ cat /proc/version
Linux version 4.18.12-genunix (dclarke@nix) (gcc version 8.1.0 (genunix
Sat May 12 22:02:47 UTC 2018)) #1 SMP Sat Oct 6 06:06:01 GMT 2018
nix$ ls -lapb /boot | grep "4.18.12"
-rw-r--r-- 1 root root 167467 Oct 6 16:51 config-4.18.12-genunix
lrwxrwxrwx 1 root root 26 Oct 6 16:55 initrd.img ->
initrd.img-4.18.12-genunix
-rw-r--r-- 1 root root 4311150 Oct 6 16:52 initrd.img-4.18.12-genunix
-rw-r--r-- 1 root root 4457845 Oct 6 16:51 System.map-4.18.12-genunix
lrwxrwxrwx 1 root root 23 Oct 6 16:51 vmlinux ->
vmlinux-4.18.12-genunix
-rw-r--r-- 1 root root 213614368 Oct 6 16:51 vmlinux-4.18.12-genunix
nix$ ls -lap /lib/modules/
total 20
drwxr-xr-x 5 root root 4096 Oct 7 01:08 ./
drwxr-xr-x 16 root root 4096 Jul 26 18:26 ../
drwxr-xr-x 3 root root 4096 Mar 28 2018 4.15.0-2-powerpc64/
drwxr-xr-x 3 root root 4096 Oct 3 15:44 4.18.11-genunix/
drwxr-xr-x 3 root root 4096 Oct 6 16:47 4.18.12-genunix/
nix$
What else is needed ? I don't know.
If you are interested then I can make up an xz compressed tarball and
stick it on a website somewhere. Along with a really verbose readme file
that shows what I did step by step.
I will say that I don't see any difference in the windfarm modules
regardless of that patch. Also I did go with the default 64k page size
and I also tried 4k page size and there really isn't any difference in
performance. I guess the 4k page size results in better granularity but
otherwise it was just an experiment.
nix$ ./pgm/C/pagesize/pagesize
-------------------------------------------------------------
system name = Linux
node name = nix
release = 4.18.12-genunix
version = #1 SMP Sat Oct 6 06:06:01 GMT 2018
machine = ppc64
-------------------------------------------------------------
sysconf_phys = 2023070
sysconf_avphys = 1964405
pgsz = 4096
phys = 2023070
avphys = 1964405
Total physical memory may be 8286494720 bytes.
Available memory may be 8046202880 bytes.
get_nprocs() claims 4 processors are available.
get_nprocs_conf() claims 4 processors are configured.
sysconf(_SC_NPROCESSORS_ONLN) reports 4 processors are available.
sysconf(_SC_NPROCESSORS_CONF) reports 4 processors are configured.
nix$
Dennis
nix$ cat ./pgm/C/pagesize/pagesize.c
#define _XOPEN_SOURCE 600
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <errno.h>
#include <unistd.h>
#include <limits.h>
#include <locale.h>
#include <sys/sysinfo.h>
#include <sys/utsname.h>
int main(int argc, char *argv[])
{
int errno, pgsz, procs, avprocs;
long int phys, avphys;
long int sysconf_phys, sysconf_avphys, sysconf_pgsz;
long int sysconf_procs, sysconf_avprocs;
struct utsname uname_data;
setlocale( LC_MESSAGES, "C" );
if ( uname( &uname_data ) < 0 ) {
fprintf ( stderr,
"WARNING : Could not attain system uname data.\n" );
perror ( "uname" );
} else {
printf ( "-------------------------------" );
printf ( "------------------------------\n" );
printf ( " system name = %s\n", uname_data.sysname );
printf ( " node name = %s\n", uname_data.nodename );
printf ( " release = %s\n", uname_data.release );
printf ( " version = %s\n", uname_data.version );
printf ( " machine = %s\n", uname_data.machine );
printf ( "-------------------------------" );
printf ( "------------------------------" );
}
printf ("\n");
sysconf_phys = sysconf(_SC_PHYS_PAGES);
if (sysconf_phys<0){
fprintf(stderr,
"WARNING : Could not attain sysconf(_SC_PHYS_PAGES).\n");
perror("sysconf(_SC_PHYS_PAGES)");
errno = 0;
}else{
printf(" sysconf_phys = %i\n", sysconf_phys);
}
sysconf_avphys = sysconf(_SC_AVPHYS_PAGES);
if (sysconf_avphys<0){
fprintf(stderr,
"WARNING : Could not attain sysconf(_SC_PHYS_PAGES).\n");
perror("sysconf(_SC_AVPHYS_PAGES)");
errno = 0;
}else{
printf(" sysconf_avphys = %i\n", sysconf_avphys);
}
pgsz = getpagesize();
if (pgsz<0){
fprintf(stderr,
"WARNING : Could not attain getpagesize().\n");
perror("getpagesize()");
errno = 0;
}else{
printf(" pgsz = %i\n", pgsz);
}
phys = get_phys_pages();
if (phys<0){
fprintf(stderr,
"WARNING : Could not attain get_phys_pages().\n");
perror("get_phys_pages()");
errno = 0;
}else{
printf(" phys = %i\n", phys);
}
avphys = get_avphys_pages();
if (avphys<0){
fprintf(stderr,
"WARNING : Could not attain get_avphys_pages().\n");
perror("get_avphys_pages()");
errno = 0;
}else{
printf(" avphys = %i\n", avphys);
}
/* may as well guess at the available and physical memory */
printf("Total physical memory may be %12ld bytes.\n",
sysconf_phys * (long int)pgsz );
printf(" Available memory may be %12ld bytes.\n",
sysconf_avphys * (long int)pgsz );
/* would be nice to get swap amount but I have no idea on that */
avprocs = get_nprocs();
printf("get_nprocs() claims %i processors are available.\n",
avprocs );
procs = get_nprocs_conf();
printf("get_nprocs_conf() claims %i processors are configured.\n",
procs );
sysconf_avprocs = sysconf(_SC_NPROCESSORS_ONLN);
if (sysconf_avprocs<0){
fprintf(stderr,
"WARNING : Could not attain sysconf(_SC_NPROCESSORS_ONLN).\n");
perror("sysconf(_SC_NPROCESSORS_ONLN)");
errno = 0;
}else{
printf("sysconf(_SC_NPROCESSORS_ONLN) reports %i",
sysconf_avprocs );
printf(" processors are available.\n");
}
sysconf_procs = sysconf(_SC_NPROCESSORS_CONF);
if (sysconf_procs<0){
fprintf(stderr,
"WARNING : Could not attain sysconf(_SC_NPROCESSORS_CONF).\n");
perror("sysconf(_SC_NPROCESSORS_CONF)");
errno = 0;
}else{
printf("sysconf(_SC_NPROCESSORS_CONF) reports %i",
sysconf_procs );
printf(" processors are configured.\n");
}
return EXIT_SUCCESS;
}
Reply to: