Linux: coredump产生对程序退出的影响

因为要生产coredump文件,有对IO的操作,导致退出相对于不产生coredump文件来说肯定有延迟

c 复制代码
void do_coredump(const kernel_siginfo_t *siginfo)
{
	struct core_state core_state;
	struct core_name cn;
	....
		struct coredump_params cprm = {
		.siginfo = siginfo,
		.regs = signal_pt_regs(),
		.limit = rlimit(RLIMIT_CORE), 
		.....
		
		if (cprm.limit < binfmt->min_coredump)
			goto fail_unlock;   //// 这里会退出

如果是pipe的话,如果ulimit == 1 的时候会退出

c 复制代码
	if (ispipe) {
		int argi;
		int dump_count;
		char **helper_argv;
		struct subprocess_info *sub_info;

		if (ispipe < 0) {
			printk(KERN_WARNING "format_corename failed\n");
			printk(KERN_WARNING "Aborting core\n");
			goto fail_unlock;
		}

		if (cprm.limit == 1) {

如果要看详细的逻辑,还是需要看内核的代码。

如果想看详细的时间占用情况,可以使用ftrace的function graph的功能dump一下调用关系以及时间消耗情况。

相关推荐
-今昭-19 分钟前
MooseFS分布式文件系统
linux·服务器·网络
byte轻骑兵44 分钟前
【BlueZ 】蓝牙 HCI 协议基础:与 BlueZ 源码的层面对应关系
linux·hci·电脑蓝牙·嵌入式蓝牙·buez
万联WANFLOW1 小时前
Meta开源了能本地跑的agent
运维·服务器·网络·人工智能·业界资讯
Brilliantwxx1 小时前
【Linux】 进程(1) 从冯诺依曼体系到进程核心概念
linux·运维·服务器
lengjingzju1 小时前
编译与调试完全指南—第12章 日志分析
linux
陈聪.1 小时前
Docker 核心知识整理:从入门到企业级应用
运维·docker·容器
城管不管1 小时前
重生——第十次面试之开源中国一面挂
java·linux·开发语言·算法·面试·职场和发展·开源
蜀道山老天师1 小时前
Zabbix监控Apache与Nginx应用实践完整指南
linux·运维·nginx·apache·zabbix
王志来137944730081 小时前
从分散到集成:工控服务器机箱采购如何实现“一站式”破局
运维·服务器·人工智能·python
暖核1 小时前
Linux实战入门:从零编写第一个Bash Shell脚本
linux·运维·bash