当前位置: 首页 > news >正文

专业网站建设系统福州搜索优化实力

专业网站建设系统,福州搜索优化实力,做静态页面的网站,上海嘉定建设局网站说明 理论上#xff1a;不管IC是单核还是多核#xff0c;只要watchdog有被循环feed#xff0c;就不会触发超时重启#xff0c;因此watchdog在SMP机制下的多核环境显得比较宽松#xff0c;只要任意核存活#xff08;喂狗#xff09;就不会重启设备。 实际情况 有客户反…说明 理论上不管IC是单核还是多核只要watchdog有被循环feed就不会触发超时重启因此watchdog在SMP机制下的多核环境显得比较宽松只要任意核存活喂狗就不会重启设备。 实际情况 有客户反馈多核环境下SMP机制管理有核hang住了但是设备没有重启。在SMP机制管理的8核arm平台上实测现象 有核crash特意使核上跑的程序crashSMP能检测到并且所有核都会被stopwatchdog能重启设备。有核hang住特意使核上跑的程序hang住设备会非常卡smp机制中的调度会每隔一段时间打印一次timeout但是由于主核正常喂狗正常不会触发watchdog重启系统如下 [ 433.562934] rcu: INFO: rcu_sched detected stalls on CPUs/tasks: [ 433.568883] rcu: 1-...0: (16 ticks this GP) idlee3a/0/0x3 softirq98/98 fqs10498 [ 433.576660] (detected by 0, t21007 jiffies, g-935, q16) [ 433.582255] Task dump for CPU 1: [ 433.585495] task:swapper/1 state:R running task stack:15152 pid: 0 ppid: 1 flags:0x0000000a [ 433.595460] Call trace: [ 433.597917] __switch_to0xb8/0xe8 [ 433.601332] 0xffffff8100130c00根据一些测试现象推测有核卡住设备非常卡是因为smp调度时调度过程是阻塞的但是有超时smp调度过程就会卡住很久只有超时后其它进程才能得到调度将触发smp调度的操作放到wdt驱动的喂狗函数中这样就会触发watchdog重启系统smp调度阻塞住喂狗了。 结论 IC生产无法确保每个核都是一样稳定如果多核IC中有少数核稳定性稍微差点可能会出现部分核hang住因此需要watchdog来检测这种情况并重启。 实现 同构多核使用SMP机制管理下kenerl启动之前只有主核在运行kernel启动过程中再由kernel bringup其它核因此kernel运行前的固件uboot等不需要做检测。 SMP机制下多核确活机制严格模式 在多核SMP管理环境下确认多核是否alive只要任意核hang住重启设备。 思路 通过SMP机制发送核间中断给每个核每个核收到中断后将一个全局CPU 位图变量打上标志表示核正在运行。发送核间中断让每个核执行同一个函数 // 每个核都会运行该函数 static void cpu_alive(void *passed_regs) {... }smp_call_function(cpu_alive, NULL, 0); smp_wmb();第一版做法每次喂狗前发送SMP调度请求等待所有核运行完成。 static cpumask_t cpus_alive CPU_MASK_NONE;#ifdef CONFIG_SMP static void cpu_alive(void *passed_regs) {int cpu smp_processor_id();pr_debug(cpu[%d] setmask \n, cpu);cpumask_set_cpu(cpu, cpus_alive); } #endif// watchdog驱动喂狗函数 static int dw_wdt_ping(struct watchdog_device *wdd) { struct dw_wdt *dw_wdt to_dw_wdt(wdd);#ifdef CONFIG_SMPunsigned int msecs;unsigned int ncpus;cpus_alive CPU_MASK_NONE;ncpus num_online_cpus() - 1;pr_debug(Sending IPI to other cpus...\n);smp_call_function(cpu_alive, NULL, 0);smp_wmb();// 阻塞1s 等待所有核执行完成msecs 1000; // 1swhile ((cpumask_weight(cpus_alive) ncpus) (--msecs 0)) {cpu_relax();mdelay(1);}if (cpumask_weight(cpus_alive) ncpus) #endifwritel(WDOG_COUNTER_RESTART_KICK_VALUE, dw_wdt-regs WDOG_COUNTER_RESTART_REG_OFFSET);return 0; }问题 阻塞1s等待所有核执行完成如果存在核执行超时了会导致误判。如果将阻塞时间拉长喂狗时间和wdt timeout时间需要空出该时间。 新版本每次喂狗前检查上一次喂狗后发送SMP调度请求后的CPU 位图数据喂狗再发送一次SMP调度请求。 static cpumask_t cpus_alive CPU_MASK_NONE;#ifdef CONFIG_SMP static void cpu_alive(void *passed_regs) { int cpu smp_processor_id();pr_debug(cpu[%d] setmask \n, cpu);cpumask_set_cpu(cpu, cpus_alive); } #endifstatic int dw_wdt_ping(struct watchdog_device *wdd) {struct dw_wdt *dw_wdt to_dw_wdt(wdd);static int isFirst 1;#ifdef CONFIG_SMPunsigned int ncpus;ncpus num_online_cpus() - 1;if ((isFirst 1) || cpumask_weight(cpus_alive) ncpus) { #endifwritel(WDOG_COUNTER_RESTART_KICK_VALUE, dw_wdt-regs WDOG_COUNTER_RESTART_REG_OFFSET);#ifdef CONFIG_SMPisFirst 0;cpus_alive CPU_MASK_NONE;smp_call_function(cpu_alive, NULL, 0);smp_wmb();} #endifreturn 0; }好处等待所有核执行SMP请求和间隔喂狗并行起来了不必像串行一样多花一个等待时间。
http://www.hkea.cn/news/14360806/

相关文章:

  • 陕西省建设厅执业资格注册中心网站报名学校网站建设运行情况简介
  • 长沙百度网站推广优化网站优化排名如何做
  • 别人帮做的网站怎么修改病句网站开发完要过审是啥意思
  • 网站做营销推广的公司优斗士网站建设
  • 网站两侧广告广州工商注册地址
  • 网站排名优化需要多久海报在线设计生成器
  • 寿光 网站建设广东seo网站设计营销工具
  • 生成网站有吗免费的给人做网站能赚钱吗
  • 网站后台如何做文件下载连接wordpress 无法搜索结果
  • 办网站如何备案常州建设局考试网站
  • 微网站建设包含唐山制作网站软件
  • 网站建设标书帝国cms商城
  • 广州应用网站设计东莞企业网站制作怎么做
  • 厦门翔安建设局网站泰安网网站建设
  • 做网站空深圳创业补贴2024
  • 海南省建设网站的公司电话号码网站建设论文的前言
  • 南山做网站行业成都兴光华城市建设公司网站
  • 风云榜小说排行榜网站代码优化调整
  • 雅联网站建设公众号开发费用
  • 论文收录网站wordpress文章类模板下载
  • 网站界面切片做程序六安城市网地址在哪里
  • cc域名的网站火车头采集器 wordpress论坛发布
  • 做编程的网站有哪些内容wordpress 建站教程 下载
  • 建设网站的相关技术平台网站建设费用
  • 幸福人寿保险公司官方网站电子保单打印博客seo怎么做
  • 网站建设销售技巧舵落口网站建设
  • 做网站的公司苏州有哪些网站免费做推广
  • ppt做的好的网站有哪些内容phpcms 安装官网的教程更换域名后网站图片还是无法显示
  • 深圳市龙岗区做网站的公司网站绑定别名好吗
  • 备案号 查询 网站老公做网站网站推广