首页 > 其他分享 >软中断调度时机

软中断调度时机

时间:2024-04-30 16:44:20浏览次数:19  
标签:... softirq 中断 void 调度 restart 时机 pending

软中断处理流程

目录

软中断处理的时机

  1. 中断退出时(中断上下文)
  2. 软中断线程处理

中断退出时软中断调度机制

  1. 判断是否属于中断上下文以及是否有软中断处与pending状态
  2. 判断软中断线程是否处于runing状态(4.9内核引入)
  3. 进行软中断处理
  4. 最多restart 10次或者累计运行2ms
  5. 判断是否还有软中断处于pending状态

image

//kernel/softirq.c
#define MAX_SOFTIRQ_TIME  msecs_to_jiffies(2)
#define MAX_SOFTIRQ_RESTART 10

void irq_exit(void)
{
... ...
    if (!in_interrupt() && local_softirq_pending())  //如果不在中断上下文并且软中断处于pending状态
        invoke_softirq();  
... ...
}

static inline void invoke_softirq(void)
{
... ...
        __do_softirq();   //执行软中断处理
... ...
}
asmlinkage __visible void __do_softirq(void)
{
unsigned long end = jiffies + MAX_SOFTIRQ_TIME; //__do_softirq最大运行时间2ms
int max_restart = MAX_SOFTIRQ_RESTART; //最大软中断处理次数
... ...
restart:
    local_irq_enable(); //使能中断,使能后软中断可以被硬中断抢占
... ...
      h->action(h);  //执行软中断处理函数
... ...
      local_irq_disable(); //禁用中断
... ...
      pending = local_softirq_pending();
      if (pending) {
            if (time_before(jiffies, end) && !need_resched() &&
            --max_restart)  //如果软中断处理次数或处理时间未达到
                goto restart; 
            wakeup_softirqd(); //唤醒软中断线程进行软中断处理
... ...
}

标签:...,softirq,中断,void,调度,restart,时机,pending
From: https://www.cnblogs.com/forwards/p/18168307

相关文章

  • 17_Linux中断
    Linux中断1.什么是中断?CPU在正常运行期间,由外部或者内部引起的事件,让CPU停下当前正在运行的程序,转而去执行触发他的中断所对应的程序,这个就是中断。举例:我现在正在厨房做饭,突然电话响了,然后我关火去接电话,接完电话在回去开火继续做饭,这个过程就是中断的一个过程。在这个看似......
  • FreeRTOS串口中断接收数据
    1volatileuint8_tRxBuffer;2voidStartTask04(voidconst*argument)3{4/*USERCODEBEGINStartTask04*/5uint8_tlen;6osEventevt;7HAL_UART_Receive_IT(&huart1,&RxBuffer,1);8__HAL_UART_ENABLE_IT(&huart1,U......
  • 计算机为什么需要中断?
    //generatedbyChatGPT-3.5&hk416hasu 中断是计算机系统中一种重要的机制,它允许系统在执行过程中临时中止当前任务,转而处理其他优先级更高或更紧急的任务,然后再返回原来的任务。以下是一些计算机需要中断的原因: 1.响应外部事件:计算机系统需要能够响应各种外部......
  • 使用dolphinscheduler调度flink实时任务
    1.在“项目管理”>>"工作流定义"里边创建工作流2.选择flink_stream3.选择安装flink服务的节点worker分组程序类型选择sql4.在“脚本”编写框输入flink-sql主代码5.选择flink版本,指定任务名称,配置资源参数最后点击确认保存6.在任务定义>>实时任务列表找到刚......
  • P1248 加工生产调度
    linkSolution:贪心神仙题。tips:对于贪心题目,先考虑两个东西时的情况,一般是可以扩展到多个东西的情况的。此时我们考虑两订单\(i\)和\(j\)。先\(i\)后\(j\):\(a[i]+\max(b[i],a[j])+b[j]\)先\(j\)后\(i\):\(a[j]+\max(b[j],a[i])+b[i]\)此时我们按这个......
  • 什么样的文件传输调度产品 可以简化IT工作流程?
    文件传输调度是企业数据管理中的一个重要环节,企业在存在多个分支机构、子公司,或者多个数据中心、服务器节点的时候,都会需要进行文件传输调度,在使用传统的FTP、rsync等传输方式在应对这些复杂的文件交换需求时,会存在诸多问题及挑战。  1、缺乏自动化策略:无法实现实时自动的数......
  • 告别手动调度,海豚调度器 3.1.x 集群部署让你轻松管理多机!
    转载自第一片心意1前言由于海豚调度器官网的集群部署文档写的较乱,安装过程中需要跳转到很多地方进行操作,所以自己总结了一篇可以直接跟着从头到尾进行操作的文档,以方便后续的部署、升级、新增节点、减少节点的相关操作。2.提前准备2.1.基础组件JDK:下载JDK(1.8+),安装并......
  • AI agent智能体任务分解和调度的几篇经典文章
     ReAct论文解读:LLMReAct范式,在大语言模型中结合推理和动作最近在研究如何让GPT正确做动作,比如搜索内容,发现了《SYNERGIZINGREASONINGANDACTINGINLANGUAGEMODELS》这篇论文。作者提出了ReAct范式,通过将推理和动作相结合来克服LLM胡言乱语的问题,同时提高了结果的可解释性......
  • AI agent中的任务分解和调度-学术界文章汇总
    Reflexion:LanguageAgentswithVerbalReinforcementLearning该文章的要点和关键技术,算法流程该文章提出了一种名为"Reflexion"的新型框架,用于通过语言反馈来强化语言智能体的学习。主要包含以下几个关键点:框架组成:Actor模型:基于大语言模型生成文本和动作E......
  • 32天【代码随想录算法训练营34期】第八章 贪心算法 part02 (● 122.买卖股票的最佳时
    122.买卖股票的最佳时机IIclassSolution:defmaxProfit(self,prices:List[int])->int:result=0foriinrange(len(prices)-1):ifprices[i+1]-prices[i]>0:result+=prices[i+1]-prices[i]return......