自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(44)
  • 资源 (3)
  • 收藏
  • 关注

原创 raid1 resync/recovery的模式

对于raid1的关注,不是很多。最近由于shaohua的patch(在2012CLSF会议中闲聊时,提到这个patch),所以回上海后,看了看,发现很多地方自己并不懂,或者原来不是那么回事。首先从shaohua的patch说起,neil的patch:commit 07d84d109d8beedd68df9da2e4e9f25c8,md: Allow re-add to work on ar

2015-02-06 01:09:30 196

原创 pthread_cond_wait

考虑下面两种情况:Example 1thread 1:    pthread_mutex_lock(&mutex);    while (!condition)        pthread_cond_wait(&cond, &mutex);    /* do something that requires holding the mutex and conditi

2014-12-25 10:22:52 170 1

原创 分布式系统的兼容性

以前一直做单机系统,考虑到的兼容性往往是存储在硬盘的数据结构要考虑兼容性的。但是目前在进行分布式存储系统的设计时,遇到消息体的兼容性。因为分布式系统中,升级过程不能和单机系统一样,停业务,升级,开业务(reboot)。在分布式系统中的,是不能随便将所有系统全部停掉进行升级。采用的策略一般是逐步升级,那么就会出现新旧系统。这不光要考虑存储持久化的兼容性,而且也要考虑消息体的兼容性。新旧系统可以相

2014-12-10 16:40:02 292

原创 查看c/++ 文件的依赖关键

项目太多,开始不熟悉想了解文件的依赖关系或者是C++类的依赖关系

2014-11-06 16:17:38 234

转载 Hadoop科普文——常见的45个问题解答

1.Hadoop集群可以运行的3个模式?单机(本地)模式伪分布式模式全分布式模式2. 单机(本地)模式中的注意点?在单机模式(standalone)中不会存在守护进程,所有东西都运行在一个JVM上。这里同样没有DFS,使用的是本地文件系统。单机模式适用于开发过程中运行MapReduce程序,这也是最少使用的一个模式。3. 伪分布模式中的注意点?伪分布式(Pseudo)适用于

2014-01-08 15:09:39 220

原创 linux 调度笔记

时间片a:如何计算时间片?b:怎么判断时间片到了?c:时间片到了后如何处理?d:CFS的rebtree是根据vruntime进行排序的(vruntime到目前为止进程执行的虚拟时间)。那么如果Pa运行很久了,而Pb刚运行,这种情况进行分析。如何保证Pa在时间片内可以得到运行,而不至于latency大于CFS的最大延时时间(sched_latency_ns)。或者我对CFS的理解有问

2013-12-31 15:45:05 625

转载 如何阅读大型代码库?

Casey问我:“对于新手,有什么有针对性的诀窍来阅读大型代码库吗?”碰巧,我认为这是一个非常好的问题。我觉得想要成为一个优秀的开发者,阅读代码库并弄清清楚内部是怎么回事的能力非常重要。在你的职业生涯中你会中途加入一个现有的项目并被要求迅速融入进去。或者,甚至更难,会有一个项目丢给你让你自己一个人搞清楚。最坏的情景就是你被带入一个项目,要你替换掉让工程运行失败的“那些肆无忌惮的*杂种”,并

2013-11-27 10:09:19 167

转载 How did YOU improve your tech skills?

Here are some of they ways that I used to improve MY tech skillsAttend usergroupsAttend your local usergroup meetings, there is always some expert in attendance that comes to do presentations.Ge

2013-11-15 08:23:07 404

原创 PAGE_CACHE_SIZE对md raid5的影响

目前md中关于raid5的stipe大小,内核都是PAGE_SIZE,对于x86而言都是4K。由于对kernel的内存管理不熟悉,从没有考虑到如果改变PAGE_SIZE是否对性能有改善。最近同事拿了PMC的一款MIPS 4core 系统,过来说。PMC调整PAGE_SIZE从4K到16K,整个raid5初始化从55MB/s增加到100MB/S。PMC的工程师说这是因为增加PAGE_SIZE后,

2013-10-10 10:53:00 626

interrupt

1:Documentation/PCI/MSI-HOWTO.txt2:pin-base

2013-09-06 10:37:05 76

原创 preempt_count

struct thread_info{               ................              int                     preempt_count;             ....................}/* * We put the hardirq and softirq counter into

2013-09-06 10:19:41 89

原创 foxmail 处理kernel-patch

关于用什么的email-client处理kernel patch。内核Documentation中有专门的 email-clients.txt描述。但是由于在公司,限制很厉害,找了网上好多例子配置git send-mail有没有成功过,也不知道怎么回事,头都大了。最后还是选项formail,window下的图形工具,用起来比较好用。先讲讲我发送patch遇到的问题:编码问题,编码是BG

2013-08-21 09:57:53 284

原创 什么情况下更新文件的atime?

先简单介绍下atime/mtime/ctimeatime: access time,表明读文件内容的时间。access timemtime:修改文件内存的时间。modify timectime:修改文件内容的时间,文件属性的时间。change time也就是说修改mtime一定修改ctime,但是修改ctime未必修改mtime,比如chmod/chown只会修改cti

2013-07-02 14:23:27 296

原创 为什么stat /proc/partitions 每次的时间都是最新的?

最近发现一个问题,本来想尝试inotify 监控/proc/partitions,凡是发现cat 该文件后,inotify并没有检测到,所以想查询下为什么?使用stat /proc/paritions 在内核vfs_getattr发现每次inode都是变化的,即每次inode都是更新的。但是在/proc/$pid目录下好多文件却不是每次都改变。查找内核发现proc_lookup_de()中

2013-06-13 13:36:34 286

原创 Why does O_DIRECT require I/O to be 512-byte aligned?

关于ODIRECT使用的某些限制1:block device的限制:必须以扇区为单位2:内存地址的限制关于第一个限制,这个好理解。因为不经过page cache,直接和block 设备通信,而block的最小单元就是sector,所以起始地址和长度必须是以扇区为单位。但是关于第二个限制,内存地址的限制,不是很理解。1:http://www.quora.com/W

2013-05-31 16:08:36 268

The requirement of Ceph

Hostname1:/etc/hosts添加所有mds/monitor/osd的 hosts名称:hostname -s获取的。2:ssh登录无密码设置3:iptables关闭

2013-05-20 09:32:40 65

原创 How do gcc to optimize?

Think the following code:struct  node{    char name[100];    int *p ;};main(){     struct mode test[4];     int i = 0;//case 1    for ( ; i        {static int name; t

2013-05-15 13:58:08 223

原创 linux filesystem test serial---delete operation

1:120G SSD disk2: dd if=/dev/zero of=test bs=1M oflag=direct3: rm -rf testIn order to:a:the  duration of rmb:the write/read of  rm (using this program)int main(){    printf("pid=%d

2013-05-03 15:07:09 74

原创 openMP/MPI

近期要了解这方面的内容1:集群中的消息系统的设计问题a:高性能b:易用

2013-03-31 09:52:53 120

原创 linux memory barrier

Why did i notice this?  Because the patch:     http://comments.gmane.org/gmane.linux.raid/42215.Documents about this topic 1:http://blog.csdn.net/ljl1603/article/details/6793982 2:Documentat

2013-03-22 08:55:41 334

转载 作为开发者,你不应该害怕的 8 件事

1.  改变 在软件开发中,没有什么事情会一直停滞不前。现在你正在开发的东西,只是软件的其中一个版本,未来随时可能发生变化。 变化是在软件开发中最常见的事情,你最好接受这一事实。一种好的做法是,使你的代码更加模块化,这样在未来需求改变时,可以容易地进行更改。 遵循DRY(Don't Repeat Yourself)和YAGNI(You Aren't Gonna Need I

2013-03-20 13:30:26 187

原创 About kernel command: make help

对于编译内核,一般就是make -jn ;make modules;make modules_install;make install;但是目前kernel的make 功能越来越强大,通过简单的make command 就可以帮助我们做很多事情。以后将逐步讲述相关内容。A: make help显示所有相关命令B:make  dir/file.[oisS] - Bui

2012-12-24 19:37:41 283

转载 git 修改commit

修改commit的内容,包含最近一次,和任意某个commit两种情况:当你不小心,写错了提交的注视/信息,该如何处理呢。理论上,SCM是不应该修改历史的信息的,提交的注释也是。   不过在git中,其commit提供了一个--amend参数,可以修改最后一次提交的信息.但是如果你已经push过了,那么其历史最后一次,永远也不能修改了。   我使用git co

2012-12-24 13:45:12 5472

转载 AIOUserGuide

IntroductionThe Asynchronous Input/Output (AIO) interface allows many I/O requests to be submitted in parallel without the overhead of a thread per request. The purpose of this document is to explai

2012-12-18 15:04:11 356

转载 linux下使用indent整理代码

indent是linux下一个能力极强的代码整理软件,使用他,可以轻松的写出代码风格十分精良的代码。但是indent的参数太多,使用起来不是很容易,怎么办呢?查看/usr/src/linux-headers-/scripts/Lindent文件 ,可以看到一行代码:indent -npro -kr -i8 -ts8 -sob -l80 -ss -ncs -cp1

2012-11-09 09:17:58 277

转载 Linux kernel编译生成的版本多一个加号“+”--make kernelrelease

其实,一直以来,我们编译KVM(Linux kernel)生成的RPM包中的kernel版本总是带有一个“莫名其妙”的加号(+),其实我知道大概是因为我们修改了Linux.git(或kvm.git)中的一些文件。但是我们只是修改了一下Makefile,让我们做RPM包是方便而已,一般我也没有在编译时修改其他的源代码文件,所以我想把这个加号去掉,对其进行了简单的研究,问题已经搞定了,记录如下吧。

2012-10-31 19:02:23 987

转载 程序员如何保持优秀

1. 小范围的选择一些有用技术,透彻的学习它们,拥抱它们。然后不断的扩展这个范围。2. 理解各种数据结构的优点和缺点,包括它们在内存中和在硬盘上的各自表现。3. 理解各种算法的优点和缺点。4. 了解你的工作领域。关上电脑,去做你的用户们在做的事。5. 有准备,有愿望,有能力在任何时候投入到多种技术层面中。你必须知道表象下的技术原理。在“各个技术层面的掌握程度”和“编程能力”上有着密

2012-10-25 13:02:10 205

原创 windows 代理环境下使用git协议

公司环境是控制很严,在windows下,使用git可以用http下载,但是不能用git。但是很多软件只提供git访问模式。在网上找到这篇文章:(http://jixiuf.github.com/git/git-proxy-on-windows.html)。这边文章还包含其他东西,但是我只需要下载代码,而不需要提交,所以就摘取部分,做说明。这些步骤我是在win7下做过实验,完全可以的。

2012-10-18 16:13:16 1839

转载 HOWTO do Linux kernel development - take 3 (中文版)

译者:张乐 robert_AT_thizlinux_DOT_com原作:Greg KH译注:本文依据take 3翻译,应该不会再有大的改动了,如果有本文会随时更新时间仓促,恐难免错漏,欢迎指正原文:http://permalink.gmane.org/gmane.linux.kernel/349656 (转贴说明:也可以在内核源代码目录下的Documentation/HOWTO找到

2012-10-15 18:36:01 686

转载 kernel: _RET_IP_ & __builtin_return_address

调试内核的时候,想打印当然进程的地址或者当前EIP。以前只是用stack_dump,还没有用到具体打该函数或者EIP的地址。搜索内核发现了#define _RET_IP_        (unsigned long)__builtin_return_address(0)#define _THIS_IP_  ({ __label__ __here; __here: (unsigned lon

2012-10-15 14:29:17 533

原创 关于raid5 stripe_head的管理

在阅读drivers/md/raid5.c时发现关于stripe_head的管理,做的很好,值得借鉴。释放stripe_head时:static void do_release_stripe(struct r5conf *conf, struct stripe_head *sh){    BUG_ON(!list_empty(&sh->lru));    BUG_ON(atom

2012-09-17 13:14:26 391

转载 The newbie's guide to hacking the Linux kernel

Posted at 9:32pm on Saturday March 6th 2010You don't need a PhD in computer science and years of experience to hack the kernel. Sure, they help, but the nature of Linux development means tha

2012-05-03 10:00:28 790

转载 2012 Linux Storage, Filesystem, and Memory Management Summit

Day 1By Jake EdgeApril 3, 2012Day one of the Linux Storage, Filesystem, and Memory Management Summit (LSFMMS) was held in San Francisco on April 1. What follows is a report on the combined

2012-04-28 21:33:11 1191

原创 kmemleak 分析

1:检测内核内存泄漏的功能2:Documentation/kmemleak.txt3:内核demo:mm/kmemleak-test.c对于kmemleak,需要理解下面三点就可以了1:我们需要知道它能检测哪几种内存泄漏(即用什么方法分配的内存可以检测)2:内核存在特殊情况,即分配内存但没有引用。使用什么方法可以防止kmemleak report3:检测的机

2012-04-24 20:06:40 2519

原创 kmemleak的分析

1:检测内核内存泄漏的功能2:Documentation/kmemleak.txt3:内核demo:mm/kmemleak-test.c对于kmemleak,需要理解下面三点就可以了1:我们需要知道它能检测哪几种内存泄漏(即用什么方法分配的内存可以检测)2:内核存在特殊情况,即分配内存但没有引用。使用什么方法可以防止kmemleak report3:检测的机

2012-04-24 20:06:09 445

原创 kernel md faulty

FAULTY  is  also not true RAID, and it only involves one device.  It provides a layer over a true device that can be used to inject faults.(模拟块设备错误的,估计是为了测试阵列需要而模拟的)-p, --layout=

2012-04-13 10:18:23 706

原创 iscsi+512扇区性能问题

最近公司遇到一个问题,前一段时间将其解决了,感觉这个问题很有意思,就整理下。环境:iscsi initiator(rhel4.4 kernel 2.6.9+SFNet iSCSI Driver Version ...4:0.1.11-7(14-Apr-2008))阵列

2011-08-09 19:09:59 1095

原创 kernel.src.rpm解包

最近是解centos的kernel.src.rpm包后发现有两个kernel,大小基本相同:1:linux-2.6.32-71.el6.x86_642:vanilla-2.6.32-71.el6查了下资料才明白:linux是经过发行商打patch后的内核;而vanilla内核是从

2011-07-29 15:06:12 767

原创 linux write的返回代表什么?

        linux下的write file一般有这么几种:write、write_sync、write_odirect、aio_write。这里仅仅说前面的三种。我要表达的意思是这三种write方式返回时代表什么,要写的数据在内核的什么层次上。是不是按照字面理解的那样:write_sync和write_odirect返回表示数据写到磁盘上。       首先简单描述下与数据相关的各个层次:

2011-07-02 10:34:46 2190

原创 程序参数处理

最近由于工作需要,需要在linux上实现一个很简单的脚本。这个脚本需要处理几个参数。在最开始的时候,我的做法是使用交互式方法,提示用户输入参数,然后进行处理,类似于:          while true                     input function                     swtich function:                 

2011-06-24 09:16:00 226

panic_unix_system_crash_dump_analysis

了解 unix操作系统panic后的信息,知道如何通过这些信息找到原因

2009-12-19

linux下的elf 文件分析

对于分析linux下的可执行文件的格式elf,本文档是最详细的。

2009-06-08

空空如也

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

TA关注的人

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