自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 构建folly demo的方法

【代码】【无标题】

2023-03-29 10:09:31 243

原创 resin 监听线程数配置不当导致loadavg升高

resin loadavg高

2022-12-24 18:23:24 699

原创 java getLocalHost 速度慢的问题分析

在跑es压测的时候发现,有很多线程卡在java.net.InetAddress$NameServiceAddresses.get的一个锁上面,本文记录一下整个问题的分析过程和根因

2022-12-24 18:13:38 1462

原创 sleep(3) 容易被忽视的提前退出

sleep(3) 容易被忽视的提前退出

2022-12-24 18:04:44 1549

原创 优雅动态关闭一个运行中进程的fd

如果一个进程莫名其妙的继承了一个父进程的fd是很令人不爽的,这可能会造成依某些资源被不需要它的进程占用。如果这个运行中的进程是敏感业务,不允许重启,那么问题会更为棘手。本文描述了一种动态关闭运行中进程fd的方法,并探究其实现原理--如何使用ptrace去动态改变进程行为。

2022-12-24 17:58:45 890

原创 ldd 脚本分析

ldd 脚本分析

2022-12-24 17:55:24 1265

原创 uprobe的使用浅析

uprobe是linux内核提供的一种trace用户态函数的机制,可以在不对二进制重新编译的情况下进行trace特定函数,本文描述了uprobe的基本使用方法

2022-10-15 00:52:08 1721

原创 trace_noschedule 实现解析

在日常运维过程中,偶尔会碰到内核线程调度不及时的场景,针对“单个任务陷入内核台执行时间过长”这个case,字节跳动的同学开发了trace_noschedule模块,用来定位占用时间过长的任务和栈信息,本文就是要分析trace_noschedule模块的使用方法和实现原理。..................

2022-07-27 21:16:06 616

原创 腾讯云创建辅助网卡实现源进源出

腾讯云创建辅助网卡实现源进源出

2022-07-06 21:01:07 563

原创 dpdk rte_eth_dev_count_avail()返回0 问题解决记录

在学习dpdk 官方example的过程中,遇到了找不到可用网卡的问题,发现是因为没有官方指定的网卡,最终靠安装libpcap并使用官方提供的纯软件pmd绕开

2022-06-22 22:54:48 2155

原创 dpdk cmdline 例子解析

dpdk 官方第三个例子介绍了如何使用cmdline相关接口实现一个命令行工具

2022-06-21 20:37:22 315

原创 如何在ubuntu22.04上使用微软精英手柄

运行环境Linux wangli-System-Product-Name 5.15.0-25-generic #25-Ubuntu SMP Wed Mar 30 15:54:22 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux1. 安装xonegit clone https://github.com/medusalix/xone按照官方说明一步一步做注意,安装好驱动之后,手柄的usb接收器可以亮起来,但是这时还无法配对,需要执行一下echo 0 |

2022-05-09 21:29:01 1009

原创 使用tee命令获取不到输出的解决方案

当我们想一边监控一个程序的输出,一边又想将输出记录到一个文件当中的时候,tee命令就是一个非常好的选择./buffer_demo | tee a.txt比如上面的命令,将buffer_demo程序的输出打印到屏幕上,同时写入a.txt文件当buffer_demo持续输出比较多的文本的时候,上面的命令运行的没有什么问题。但是如果buffer_demo使用的是printf这样的标准io库的函数,并且输出文本速度很慢的时候,我们可能半天也看不到屏幕上有输出。这是因为当你使用管道的时候,标准io库

2022-04-07 16:16:58 2113

原创 linux seq_file机制学习

linux内核驱动模块经常要将一些信息通过/proc文件树暴露给用户,以方便用户直接能从文件系统中读取到驱动程序或者内核的一些状态信息,当这些信息比较短的时候编程比较容易,一旦过长并且用户有lseek相关的操作,那么在内核中编程就就会变得比较困难,需要维护很多状态。为了解决这个问题,linux内核提供了一种seq_file机制来简化编程的复杂性。本文实验环境:Linux VM-0-13-ubuntu 5.4.0-90-generic #101-Ubuntu SMP Fri Oct 15 20:00:

2022-03-19 02:23:34 2157

原创 关于linux字符驱动中read函数filp->f_pos 和 loff_t *ppos的关系

在学习linux 字符驱动的时候会有这样的困惑比如我们实现一个字符驱动的读函数,如下static ssize_t globalmem_read(struct file *filp, char __user *buf, size_t size, loff_t *ppos) { unsigned long p = *ppos; unsigned int count = size; int ret = 0; struct globalmem_dev *dev = filp

2022-03-05 21:07:28 1646

原创 梳理linux0.12知识点系列 之 8259A的初始化和时钟中断

梳理linux0.12知识点系列之8259A的初始化和时钟中断背景cpu和设备协同工作的高效方式是使用中断机制,本例子基于之前的打开了A20地址线的demo,进一步初始化了8259A终端控制芯片,并且屏蔽了除了时钟中断以外的所有硬件中断。当始终中断发生时,在屏幕上打印'T' 'I' 'M' 'E' 'R'五个字符额外修改除了加入初始化8259A芯片和增加中断处理函数的逻辑之外,...

2020-01-21 20:32:42 1557 5

原创 梳理linux0.12知识点系列 之 A20地址线的打开

梳理linux0.12知识点系列之A20地址线的打开背景关于A20地址线的历史问题维基百科上有详细的描述总体来说就是如果不开启A20地址线我们只能访问1M内存也就是说这时能访问的最大内存地址是0xfffff当我们想要访问0x100000的时候,cpu帮我们环绕到0x0处linux 0.12的打开和检查方案linux 0.12在setup.S中进行了打开A20地址线的操作 ....

2020-01-20 21:41:46 466

原创 梳理linux0.12知识点系列 之 让汇编到C不再遥远

梳理linux0.12知识点系列之让汇编到C不再遥远背景在读《Linux内核完全剖析》这本书的时候,你是否有过这样的困境前期的基础知识沉浸在大量的汇编代码中,从16位实模式到32位保护模式,有要经历各种其他知识的冲击,比如8259A编程,A20地址线页表,等等。这些都在干扰我们有一条清晰的路线去观察系统是如何从汇编真正跳转到C代码中,于是让初学者感觉自己离真正的内核代码还好遥远,...

2020-01-17 20:38:21 397

原创 X86下的8259A子系统

#X86下的8259A子系统##声明本文会用尽量朴素非术语的语言整体介绍x86架构下中断处理的大概过程,希望能够帮助读者对PC的工作模式有一个简单的形象化的认识。为了帮助理解,示意图经过简化后不能保证完全正确。##背景在描述8259A的工作方式之前,我们先明确几个基础的前提cpu的工作方式是“取址->执行”,每执行一条指令,IP(Instruction Pointer)指令寄...

2020-01-07 15:36:28 651

原创 操作系统原理与实践-信号量的实现和应用

include/linux/sys.h 下增加extern int sys_sem_open();extern int sys_sem_close();extern int sys_sem_wait();extern int sys_sem_post();extern int sys_sem_count();fn_ptr sys_call_table[] = { sys_set...

2019-11-06 19:36:49 367

原创 一种在nodejs中调用c++的简单方法

背景:    目前nodejs调用c++主流的有两种方法,分别是addons和ffi    addons是nodejs官方的c++扩展实现方案,但是由于需要使用模版,并且要对v8引擎有一定的了解,入门门槛较高。    ffi是nodejs直接调用so库的一种实现,可以调用纯c的接口。    以上两种方法有一个共同的缺陷,就是当nodejs调用的时候,如果不能立即返回的话,c++代码会卡住单线程的j...

2018-04-21 21:56:44 12944 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除