<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[邢万里]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Wanli_Xing</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Wanli_Xing]]></copyright><item><title><![CDATA[sendfile之3.10 VS 4.18]]></title><link>https://blog.youkuaiyun.com/Wanli_Xing/article/details/106146688</link><guid>https://blog.youkuaiyun.com/Wanli_Xing/article/details/106146688</guid><author>Wanli_Xing</author><pubDate>Fri, 15 May 2020 17:38:25 +0800</pubDate><description><![CDATA[如下是函数调用链：
https://www.processon.com/embed/5e9fe7d77d9c0869da9beaa4

]]></description><category></category></item><item><title><![CDATA[kprobe + bpftrace]]></title><link>https://blog.youkuaiyun.com/Wanli_Xing/article/details/105689518</link><guid>https://blog.youkuaiyun.com/Wanli_Xing/article/details/105689518</guid><author>Wanli_Xing</author><pubDate>Wed, 22 Apr 2020 18:18:23 +0800</pubDate><description><![CDATA[$ cat kprobe-exam.c
/* kprobe-exam.c */
#include &lt;linux/kernel.h&gt;
#include &lt;linux/module.h&gt;
#include &lt;linux/kprobes.h&gt;
#include &lt;linux/kallsyms.h&gt;
#include &lt;linux/sched.h&gt...]]></description><category></category></item><item><title><![CDATA[UDP GSO原理及应用]]></title><link>https://blog.youkuaiyun.com/Wanli_Xing/article/details/102893871</link><guid>https://blog.youkuaiyun.com/Wanli_Xing/article/details/102893871</guid><author>Wanli_Xing</author><pubDate>Mon, 04 Nov 2019 11:42:33 +0800</pubDate><description><![CDATA[2019年10月31日

一、需求

内核如何支持udp gso；
	测试（包括性能）；
	用户如何使用udp gso；


二、背景

 针对上述问题，本小节展开一定的论述，基础知识就不再赘述了。

 Linux支持udp下的generic segmentation offload特性有两种实现方式，一种是在protocal stack做，一种是在NIC driver做...]]></description><category></category></item><item><title><![CDATA[audit CIS加固性能对比]]></title><link>https://blog.youkuaiyun.com/Wanli_Xing/article/details/97113477</link><guid>https://blog.youkuaiyun.com/Wanli_Xing/article/details/97113477</guid><author>Wanli_Xing</author><pubDate>Wed, 24 Jul 2019 11:18:42 +0800</pubDate><description><![CDATA[总结：

三组充分的对比实验：

1. 内核关闭audit

2. 内核开启但是system service disable

3. 内核开启且system service enable但无规则

4. 内核开启且system service disable且写规则（依照CIS benchmark方式加固）

指标（主要）：

1. Execl

2. File Copy

3. Pipe ...]]></description><category></category></item><item><title><![CDATA[psi：poll机制bug修复]]></title><link>https://blog.youkuaiyun.com/Wanli_Xing/article/details/97111671</link><guid>https://blog.youkuaiyun.com/Wanli_Xing/article/details/97111671</guid><author>Wanli_Xing</author><pubDate>Wed, 24 Jul 2019 10:58:48 +0800</pubDate><description><![CDATA[前言：

本文是纯技术细节文档，不涉及PSI整体机制等内容。
	本文以bug为驱动，写下调查跟踪思路，和定位方法。


一、简介

PSI = Pressure Stall Information，由facebook提出的新特性，目的是结合cgroup用于监控内核三大项数据memory/cpu/io。



必备的关键词：

trigger：当用户对/proc/pressure/{cpu, i...]]></description><category></category></item><item><title><![CDATA[vmcore使用和分析]]></title><link>https://blog.youkuaiyun.com/Wanli_Xing/article/details/90263620</link><guid>https://blog.youkuaiyun.com/Wanli_Xing/article/details/90263620</guid><author>Wanli_Xing</author><pubDate>Thu, 16 May 2019 14:49:59 +0800</pubDate><description><![CDATA[拿到vmcore后，用strings解析其中的内核版本：

strings xxx | less


找到对应版本的包，kernel-debuginfo-&lt;版本&gt;.rpm，并解析出文件：

rpm2cpio kernel-debuginfo-&lt;3.10.0-xxx&gt;.rpm | cpio -div





...]]></description><category></category></item><item><title><![CDATA[proc添加模块和systemtap添加tracepoint]]></title><link>https://blog.youkuaiyun.com/Wanli_Xing/article/details/90180448</link><guid>https://blog.youkuaiyun.com/Wanli_Xing/article/details/90180448</guid><author>Wanli_Xing</author><pubDate>Mon, 13 May 2019 20:14:11 +0800</pubDate><description><![CDATA[实现过程其实和一个驱动很像，部分文件系统的接口调用即可。
#include &lt;linux/jbd2.h&gt;
#include &lt;linux/seq_file.h&gt;
#include &lt;linux/proc_fs.h&gt;
#include &lt;linux/spinlock.h&gt;

enum jbd2_mon_func_map {
	atc,	
	dgwa,
...]]></description><category></category></item><item><title><![CDATA[系统查问题的方法]]></title><link>https://blog.youkuaiyun.com/Wanli_Xing/article/details/90171891</link><guid>https://blog.youkuaiyun.com/Wanli_Xing/article/details/90171891</guid><author>Wanli_Xing</author><pubDate>Mon, 13 May 2019 13:53:43 +0800</pubDate><description><![CDATA[系统查问题的方法
线上经常出现的就是几大特点：网络为何丢包，load为何飙升，cpu利用率为何很高等。问题大类不多，但是要对应的细节却是很多，这里仅写基本的调查第一要素。
一、proc文件
proc文件系统是和

...]]></description><category></category></item><item><title><![CDATA[start: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart]]></title><link>https://blog.youkuaiyun.com/Wanli_Xing/article/details/73010600</link><guid>https://blog.youkuaiyun.com/Wanli_Xing/article/details/73010600</guid><author>Wanli_Xing</author><pubDate>Sat, 10 Jun 2017 23:23:25 +0800</pubDate><description><![CDATA[用Ubuntu远程登录虚拟host时出现：start: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
解决： 
sudo dpkg-divert –local –rename –add /sbin/initctl 
ln -s /bin/true /s]]></description><category></category></item><item><title><![CDATA[VMVare8.0, Ubuntu14.04安装VMWare Tools找不到内核头文件解决方案]]></title><link>https://blog.youkuaiyun.com/Wanli_Xing/article/details/73008336</link><guid>https://blog.youkuaiyun.com/Wanli_Xing/article/details/73008336</guid><author>Wanli_Xing</author><pubDate>Sat, 10 Jun 2017 21:32:01 +0800</pubDate><description><![CDATA[VMVare8.0, Ubuntu14.04安装VMWare Tools遇到一点问题，提示找不到内核头文件，于是baidu之，作如下总结。 
首先执行： 
sudo apt-get install build-essential linux-headers-$(uname -r) 
sudo cp /lib/modules/3.13.0-24-generic/build/include/genera]]></description><category></category></item><item><title><![CDATA[What I have done on...]]></title><link>https://blog.youkuaiyun.com/Wanli_Xing/article/details/60953843</link><guid>https://blog.youkuaiyun.com/Wanli_Xing/article/details/60953843</guid><author>Wanli_Xing</author><pubDate>Thu, 09 Mar 2017 08:59:25 +0800</pubDate><description><![CDATA[Github: https://github.com/JasonXing1. eCryptfs系列 1. eCryptfs源码注释和eCryptfs的实现机制。
2. eCryptfs高版本(3.3.8)实现HMAC完整性校验。
3. eCryptfs低版本(2.6.24)针对原开发者实现的HMAC注解和另一个团队（加拿大滑铁卢）实现GCM进行对比。等
更多信息见我的github。
4. 参与Ubu]]></description><category></category></item><item><title><![CDATA[内核开发细节]]></title><link>https://blog.youkuaiyun.com/Wanli_Xing/article/details/53438962</link><guid>https://blog.youkuaiyun.com/Wanli_Xing/article/details/53438962</guid><author>Wanli_Xing</author><pubDate>Fri, 02 Dec 2016 20:31:38 +0800</pubDate><description><![CDATA[strcpy拷贝时会赋值结束符：MSDN 
The strcpy function copies strSource, including the terminating null character, to the location specified by strDestination. The behavior of strcpy is undefined if the source and]]></description><category></category></item><item><title><![CDATA[eCryptfs - unlink系统调用]]></title><link>https://blog.youkuaiyun.com/Wanli_Xing/article/details/53006355</link><guid>https://blog.youkuaiyun.com/Wanli_Xing/article/details/53006355</guid><author>Wanli_Xing</author><pubDate>Wed, 02 Nov 2016 11:28:11 +0800</pubDate><description><![CDATA[在机器上测试上测试remove()函数，使用strace跟踪，发现其真正指向了unlink系统调用。查阅APUE，其解释如图：]]></description><category></category></item><item><title><![CDATA[eCryptfs - lookup()]]></title><link>https://blog.youkuaiyun.com/Wanli_Xing/article/details/52976280</link><guid>https://blog.youkuaiyun.com/Wanli_Xing/article/details/52976280</guid><author>Wanli_Xing</author><pubDate>Sun, 30 Oct 2016 23:42:32 +0800</pubDate><description><![CDATA[使用tab补齐时候会用到。
ls列出时候会用到。
touch时候会用到（需要查找创建的文件是否已经存在，现在缓存中查找）。]]></description><category></category></item><item><title><![CDATA[#define & typedef 区别]]></title><link>https://blog.youkuaiyun.com/Wanli_Xing/article/details/52901466</link><guid>https://blog.youkuaiyun.com/Wanli_Xing/article/details/52901466</guid><author>Wanli_Xing</author><pubDate>Sun, 23 Oct 2016 14:03:55 +0800</pubDate><description><![CDATA[1. 处理时间不同 
1） #define是由预处理器控制，在编译前完成操作。 
2） typedef是由编译器控制，在编译时完成操作。2. 作用域 
1） #define作用域为全局，因为编译器无法操作#define，从而无法控制它的作用域。 
2） typedef作用域有所限制，因为编译器可以控制。3. 使用 
1） #define只是单纯的替换代码而已，并不做检查是否正确。 
2） typed]]></description><category></category></item><item><title><![CDATA[eCryptfs源码注释（3）]]></title><link>https://blog.youkuaiyun.com/Wanli_Xing/article/details/52749129</link><guid>https://blog.youkuaiyun.com/Wanli_Xing/article/details/52749129</guid><author>Wanli_Xing</author><pubDate>Fri, 07 Oct 2016 13:20:18 +0800</pubDate><description><![CDATA[README 
此文档没有上传至网络，如果有人对此感兴趣可以发送邮件至wlxing@yahoo.com中，说明情况（不能作为商业用途！），谢谢。转载或者引用请注明（见封面信息），并通知至邮件wlxing@yahoo.com，谢谢！Data Integrity封面： 
目录： 
内容（截取）：]]></description><category></category></item><item><title><![CDATA[eCryptfs源码注释（2）]]></title><link>https://blog.youkuaiyun.com/Wanli_Xing/article/details/52749081</link><guid>https://blog.youkuaiyun.com/Wanli_Xing/article/details/52749081</guid><author>Wanli_Xing</author><pubDate>Fri, 07 Oct 2016 13:09:22 +0800</pubDate><description><![CDATA[以下为ecryptfs部分源码注释的截图：]]></description><category></category></item><item><title><![CDATA[eCryptfs源码注释（1）]]></title><link>https://blog.youkuaiyun.com/Wanli_Xing/article/details/52732787</link><guid>https://blog.youkuaiyun.com/Wanli_Xing/article/details/52732787</guid><author>Wanli_Xing</author><pubDate>Tue, 04 Oct 2016 10:13:36 +0800</pubDate><description><![CDATA[README 
此文档没有上传至网络，如果有人对此感兴趣可以发送邮件至wlxing@yahoo.com中，说明情况（不能作为商业用途！），谢谢。转载或者引用请注明（见封面信息），并通知至邮件wlxing@yahoo.com，谢谢！封面 
目录 
 
 
内容（截取）]]></description><category></category></item><item><title><![CDATA[搜索&技巧]]></title><link>https://blog.youkuaiyun.com/Wanli_Xing/article/details/52548817</link><guid>https://blog.youkuaiyun.com/Wanli_Xing/article/details/52548817</guid><author>Wanli_Xing</author><pubDate>Thu, 15 Sep 2016 09:50:04 +0800</pubDate><description><![CDATA[README
作者：邢万里
学校：重庆邮电大学
email：wlxing@yahoo.com
团队&管理
最重要一点，一定要物色好人，学会观察他们言行举止，记录他们的习惯，大都是各有所长，那能做的只能榨干他的长处了，如果都不错，可以为负责人candidate（还需考察是否能够持久、团队意识等更加大局的方向）。
定期以文档方式收取团队的工作日志，保持记录的习惯，应变人员的更替和技术的积累。
与他们一起]]></description><category></category></item><item><title><![CDATA[内核 - ## VA-ARGS的用法]]></title><link>https://blog.youkuaiyun.com/Wanli_Xing/article/details/52134411</link><guid>https://blog.youkuaiyun.com/Wanli_Xing/article/details/52134411</guid><author>Wanli_Xing</author><pubDate>Sat, 06 Aug 2016 09:37:11 +0800</pubDate><description><![CDATA[##和_ _VA_ARGS_ _用法##(连接符)
## 连接符号由两个井号组成，其功能是在带参数的宏定义中将两个子串(token)联接起来，从而形成一个新的子串。但它不可以是第一个或者最后一个子串。所谓的子串(token)就是指编译器能够识别的最小语法单元。具体的定义在编译原理里有详尽的解释
##是把传递过来的参数当成字符串进行替代。 
假设程序中已经定义了这样一个带参数的宏： 
#define]]></description><category></category></item></channel></rss>