博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
procps + musl 导致top显示为零,free不工作问题
阅读量:4210 次
发布时间:2019-05-26

本文共 2448 字,大约阅读时间需要 8 分钟。

1. Unknown HZ value! (-1) Assume

需要打如下patch
Submitted By: DJ Lucas 
Date: 2010-09-20Initial Package Version: 3.2.8Origin: Debian 30_sysinfo_7numbers.patchUpstream Status: SubmittedDescription: Fixes "unknown HZ value (##)" errors in procps utils.diff -Naurp procps-3.2.8-orig//proc/sysinfo.c procps-3.2.8//proc/sysinfo.c--- procps-3.2.8-orig//proc/sysinfo.c 2008-03-23 23:33:43.000000000 -0500+++ procps-3.2.8//proc/sysinfo.c 2010-09-20 01:13:36.000000000 -0500@@ -124,24 +124,25 @@ int uptime(double *restrict uptime_secs, unsigned long long Hertz; static void old_Hertz_hack(void){- unsigned long long user_j, nice_j, sys_j, other_j; /* jiffies (clock ticks) */+ unsigned long long user_j, nice_j, sys_j, other_j, wait_j, hirq_j, sirq_j, stol_j; /* jiffies (clock ticks) */ double up_1, up_2, seconds; unsigned long long jiffies; unsigned h; char *restrict savelocale; + wait_j = hirq_j = sirq_j = stol_j = 0; savelocale = setlocale(LC_NUMERIC, NULL); setlocale(LC_NUMERIC, "C"); do{ FILE_TO_BUF(UPTIME_FILE,uptime_fd); sscanf(buf, "%lf", &up_1); /* uptime(&up_1, NULL); */ FILE_TO_BUF(STAT_FILE,stat_fd);- sscanf(buf, "cpu %Lu %Lu %Lu %Lu", &user_j, &nice_j, &sys_j, &other_j);+ sscanf(buf, "cpu %Lu %Lu %Lu %Lu %Lu %Lu %Lu %Lu", &user_j, &nice_j, &sys_j, &other_j, &wait_j, &hirq_j, &sirq_j, &stol_j); FILE_TO_BUF(UPTIME_FILE,uptime_fd); sscanf(buf, "%lf", &up_2); /* uptime(&up_2, NULL); */ } while((long long)( (up_2-up_1)*1000.0/up_1 )); /* want under 0.1% error */ setlocale(LC_NUMERIC, savelocale);- jiffies = user_j + nice_j + sys_j + other_j;+ jiffies = user_j + nice_j + sys_j + other_j + wait_j + hirq_j + sirq_j + stol_j ; seconds = (up_1 + up_2) / 2; h = (unsigned)( (double)jiffies/seconds/smp_num_cpus ); /* actual values used by 2.4 kernels: 32 64 100 128 1000 1024 1200 */@@ -221,12 +222,13 @@ static void init_libproc(void){ // _SC_NPROCESSORS_ONLN returns 1, which should work OK smp_num_cpus = sysconf(_SC_NPROCESSORS_ONLN); if(smp_num_cpus<1) smp_num_cpus=1; /* SPARC glibc is buggy */-+#ifdef __linux__ if(linux_version_code > LINUX_VERSION(2, 4, 0)){ Hertz = find_elf_note(AT_CLKTCK); if(Hertz!=NOTE_NOT_FOUND) return; fputs("2.4+ kernel w/o ELF notes? -- report this\n", stderr); }+#endif old_Hertz_hack(); }

2. top,free 显示为零问题

procps代码使用了非POSIX标准的%Lu方式来打印, 所以用gnu glibc没事,一旦换了musl, %Lu全部无法打印

需要搜索代码,将%Lu,%Lx等写法全部替换为%llu,%llx

转载地址:http://twrli.baihongyu.com/

你可能感兴趣的文章
滴滴顺风车上线新功能,特殊时期便捷出行
查看>>
不会延期!iPhone 12S预计如期在9月发售:升级三星LTPO屏幕
查看>>
腾讯物联网操作系统TencentOS tiny线上移植大赛,王者机器人、QQ公仔、定制开发板等礼品等你来拿 !
查看>>
为云而生,腾讯云服务器操作系统TencentOS内核正式开源
查看>>
腾讯汤道生:开源已成为许多技术驱动型产业重要的创新推动力
查看>>
微信小程序多端框架 kbone 开源
查看>>
视频质量评估算法 DVQA 正式开源
查看>>
在中国提供了60亿次服务的疫情模块向世界开源 腾讯抗疫科技输出海外
查看>>
在中国提供了60亿次服务的疫情模块向世界开源
查看>>
世界卫生组织与腾讯加深合作 新冠肺炎AI自查助手全球开源
查看>>
Hibernate 中get, load 区别
查看>>
java反射详解
查看>>
JPA 注解
查看>>
JQuery 简介
查看>>
Java创建对象的方法
查看>>
Extjs自定义组件
查看>>
TreeGrid 异步加载节点
查看>>
Struts2 标签库讲解
查看>>
Google Web工具包 GWT
查看>>
材料与工程学科相关软件
查看>>