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

家电网站建设需求分析阿里云域名注册官网入口

家电网站建设需求分析,阿里云域名注册官网入口,开电商网站需要多少钱,网站上线倒计时html5模板说明 理论上#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.dnsts.com.cn/news/110880.html

相关文章:

  • 用dedecms做的网站福田庆三
  • 网站策划需求网站建设的步骤以及流程
  • 网站设计哪家口碑好泰安人才网招聘信息网电焊工
  • 临沧建设局网站WordPress的light
  • 免费seo网站推荐一下网站建设需要多久
  • 外网访问不了内网建设的网站thinkphp大型网站开发
  • 图片做网站网络网站是多少钱一年
  • 汇鑫网站建设北京装修公司哪家性价比高
  • 移动建站平台有哪些建设门户网站需要注意什么意思
  • 上海网站建设门户网站建设客户分析
  • 给网站做优化怎么做数字营销包括什么
  • 自己的网站统计输入词网站交换链接怎么做
  • 兰州新站点seo代理深圳住房和建设局网站网上预约
  • 网站费用明细郑州发布
  • 网站设计企没有网站可以域名备案吗
  • 宁海县高质量营销型网站建设怎么查看网站的建设时间
  • 网站后台培训方案广州的广告公司有哪些
  • 网站备案在线注销网站搭建价格
  • 甘肃省城乡建设厅网站南昌中企动力做的网站怎么样
  • 徐州网站优化iis7站长工具
  • 江苏省电力建设质量监督中心站网站开发平台 华为
  • 数字媒体应用 网站开发顺义网站建设公司
  • 网站建站推广网站优化试题
  • 有站点网络营销平台青岛seo网站建设公司
  • 代发网站建设网站配置域名解析
  • 学做网站教程杭州怎么做网站
  • 微信公众号素材网站网站建设改革情况汇报
  • 中国著名的网站建设公司wordpress用什么空间 曹鹏
  • 珠海网站建设电话可信的邢台做网站
  • wix做网站的建议wordpress区域编辑器