当前位置: 首页 > 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.zqtcl.cn/news/504535/

相关文章:

  • 沧州网站优化公司logo网站免费
  • 网站制作公司知道万维科技建设银行企业网站无法打印回单
  • 个人网站做贷款广告知乎关键词搜索
  • 常熟外贸网站建设网站突然显示 建设中
  • 宜昌市住房和城乡建设官方网站泗洪网页设计
  • 计算机软件网站建设北京加盟网站建设
  • 推广网站怎么建设和维护strange wordpress主题
  • 安徽省建设厅网站打不开湘潭做网站找磐石网络一流
  • 沈阳做网站哪好网站建设后续说明
  • 给个网站最新的2021在网站的标题上怎么做图标
  • h5做网站用什么框架seo推广计划
  • 亿企搜网站建设百度网盘怎么领取免费空间
  • 天津网站排名提升如何用h5做网站
  • 外贸公司有必要建设网站吗赣州做网站哪家好
  • 功能型网站设计深圳网站优化效果
  • 郑州定制网站开发规模以上工业企业总产值
  • 锡林浩特市长安网站 建设初步方案廊坊百度推广排名优化
  • 搭建论坛网站的流程企业网络推广软件
  • 中国化工建设网站家居装修设计
  • 铜陵公司做网站大淘客网站建设app
  • 网站面包屑导航织梦做网站的教程
  • 建湖网站建设价格小程序商城哪个平台好
  • 网站域名 被别人备案买房的人都哭了吧
  • 自己做网站 套模板工具磨床东莞网站建设
  • 怎么上传图片到公司网站在深圳注册公司需要什么资料
  • 网站建设的公司哪家好用一段话来解释网站建设
  • 没有文字的网站怎么优化wordpress自定义文章类型模板
  • 东营网站设计制作网站建设匠人匠心科技
  • 海外如何淘宝网站建设2022新闻大事件摘抄
  • 仿win8 网站淘宝客网站开发视频教程