随笔分类 - programming c linux
摘要:epoll作为一个文件既可以监视其他文件,也可以被其他epoll监视。这样就产生了一个监视的有向图。 ep_eventpoll_poll 文件的poll操作,也就是file->f_op->poll(). 调用该函数可以获取就绪文件的事件掩码,但是 epoll 文件只提供读就绪事件,并且读就绪事件是由
阅读全文
摘要:直接看strace 结果 11:07:04.369821 accept4(6, {sa_family=AF_INET, sin_port=htons(20321), sin_addr=inet_addr("170.1.7.223")}, [16], SOCK_NONBLOCK) = 2843 <0.
阅读全文
摘要:以前一直听说过一致性hash,今天处理bug需要用到一致性hash,所以就看下: 寻找一种有一致性的代理方案: 对同一个 keykey 的所有读写请求都必须一致地分配给同一个后端节点。 同时,分配的负载应该尽量均衡。 换句话讲, 我们需要寻找一种映射函数, 把随机到来的字符串 keykey ,一致地
阅读全文
摘要:整型的Hash算法使用的是Thomas Wang's 32 Bit / 64 Bit Mix Function ,这是一种基于位移运算的散列方法。基于移位的散列是使用Key值进行移位操作。通常是结合左移和右移。每个移位过程的结果进行累加,最后移位的结果作为最终结果。这种方法的好处是避免了乘法运算,从
阅读全文
摘要:tcp_timewait_state_process(struct inet_timewait_sock *tw, struct sk_buff *skb, const struct tcphdr *th) { /* * Now real TIME-WAIT state. * * RFC 1122:
阅读全文
摘要:等待所有线程运行起来,其代码如下所示: 主线程代码: static int init_count = 0; static pthread_mutex_t init_lock; static pthread_cond_t init_cond; /* Wait for all the threads t
阅读全文
摘要:以前有篇文章记录过hash算法相关文章hash Hash函数的应用 错误校正 使用一个散列函数可以很直观的检测出数据在传输时发生的错误。在数据的发送方,对将要发送的数据应用散列函数,并将计算的结果同原始数据一同发送。在数据的接收方,同样的散列函数被再一次应用到接收到的数据上,如果两次散列函数计算出来
阅读全文
摘要:今天打流测试出现大量的FIN_WAIT1状态,可知主动关闭没有收到ack, 有个问题是?这个状态会维持多长时间?? 参考这几篇博客: 修改重传次数&& 超时重传最大时间 TCP的定时器 查看tcp_write_timeout 中部分的代码有检测sock_dead状态下的超时时间 if (sock_f
阅读全文
摘要:目前通过perf top 发现cpu主要耗在futex 上去了 -99.56%-- _raw_spin_lock | | | |--55.23%-- futex_wake | | do_futex | | sys_futex | | system_call_fastpath | | | | | |-
阅读全文
摘要:之前使用ubuntu base 来构建根文件系统 目前发现buildroot 用起来也不错, 直接下载源码:https://buildroot.org/download.html 后执行 make pc_x86_64_efi_defconfig make 编译即可
阅读全文
摘要:目前在更改boot分区后,发现sda1 开始柱面为5 不是从1开始的,问了一下提供镜像的研发人员,才知道原因如下: 为了解决其余的产品容量4T 磁盘引入的!磁盘开始位置需要对其 顺便来了解一下相关知识 磁盘构成简介 磁盘的基本知识: 1.盘片(platter)和磁头(heads): 硬盘中一般会有多
阅读全文
摘要:问题: 目前更新使用新的镜像dd到sda磁盘后, 使用partprobe通知内核目录信息已经改变,但是对sda3 sda4 格式化解密的时候失败 + cryptsetup -q luksFormat /dev/sda3 /tmp/product/.key + die 4 'Stage 1, open
阅读全文
摘要:由于需要在initrd增加更多的操作,原来的initrd文件sbin lib等版本太老,新的系统组件命令不兼容,所以此时需要整一个完全新的系统组件。 经过搜索以及查找目前找到了ubuntu-base 基础镜像! ubuntu-img基础组件 ubuntu-base 基础组件在此;Ubuntu 针对不
阅读全文
摘要:以前分析了netlink的原理,可以知道:内核和用户态相互消息传递,最好的方法就是使用 netlink,比较可以双向传递消息,不像 proc sys 只能单向; 但是netlink有个缺点就是使用tcpdump抓不到!! 目前为了解决他,采取了以前dpdk抓包的方法,直接copy&&mirror到虚
阅读全文
摘要:目前perf 支持添加动态探测内核;通过 perf ,来自定义动态事件(perf probe),只关注真正感兴趣的事件。如下使用。 笔者有时需要使用perf 调试用户态,so记录之 静态探针 是指事先在代码中定义好,并编译到应用程序或者内核中的探针。这些探针只有在开启探测功能时,才会被执行到;未开启
阅读全文
摘要:目前正在处理initrd 升级;记录一下这个过程并总结。 内核代码执行流程: 根据上篇转载文章; head.S执行过程中保存了bootloader传递的启动参数、启动模式以及FDT地址等,创建了内核空间的页表,最后为init进程初始化好了堆栈,并跳转到start_kernel执行; 此次主要看的是s
阅读全文
摘要:遇到一个问题现象随记录。(具体问题不说,说一下处理问题中遇到的一个现象) 同时环境变量LD_LIBRARY_PATH第一个环境变量是/opt/data/debugrootfs/newroot/lib64/, 切其路径下有ld-linux-x84-64.so.2 但是为什么就是不连接/opt目录下的这
阅读全文

浙公网安备 33010602011771号