关闭

如何写技术文章

下面是一个典范,把问题来龙去脉讲得很清楚,我很喜欢:著作权归作者所有。 商业转载请联系作者获得授权,非商业转载请注明出处。 作者:阿猫 链接:https://www.zhihu.com/question/20511233/answer/24260355 来源:知乎没有啥复杂的东西,考虑清楚需求,就可以很自然的衍生出这些解决方案。一开始大家想要同一时间执行那么三五个程序,大家能一块跑一跑。特别是UI什...
阅读(498) 评论(0)

如何阅读google perf tool产生的profile结果?

参考: http://google-perftools.googlecode.com/svn/trunk/doc/cpuprofile.html 基本方法简述: Class Name Method Name local (percentage) of cumulative (percentage) ts_main_thread, 76.7%表示ts_main_...
阅读(1307) 评论(0)

Arch下通过代理翻墙来进行包安装的配制方法【makepkg,curl,pacman】

Arch下所有软件的安装都是通过pacman来管理的,不过pacman只会根据/etc/pacman.d/mirrorlist中提供的镜像来下载最新版的软件。 如果你需要一些老版的软件,例如gcc 4.1.2这种“比较老”的编译器,用pacman是搞不定的,这时候需要用到另外一套系统pkgbuild。 以安装gcc 4.1.2为例子。 首先到AUR上找到gcc 4.1.2的PKGBUILD文...
阅读(3570) 评论(0)

【原来如此】为什么很多应用都安装在/usr/local目录下?

很多应用都安装在/usr/local下面,那么,这些应用为什么选择这个目录呢?理解了最根源的原因后,也许对你理解linux组织文件的方式有更直观的理解。 答案是:Automake工具定义了下面的一组变量: Directory variable Default value prefix /usr/local exec_prefix ${prefix} bindir ${exe...
阅读(2567) 评论(2)

大页面支持与gcc static编译选项

这两天在移植libhugetlbfs到2.6.36 for Loogson上,移植完成后需要测试linpack在大页面支持下的性能。但是却发现大页面对linpack无效,linpack死活不利用大页面。怎么回事?莫非linpack使用mmap接口分配内存?怎么这样呢~! 于是今天分析了linpack源码,结果发现它里面的内存分配都是用malloc实现的。那为什么大页面支持会对其无效呢? 刚才做了个试验,分别将一个应用按照static模式 ...
阅读(3681) 评论(2)

说法

写了一个RandomAccess测试工具,用来模拟随机访存。其特点在于可以分区访问,所谓分区指的是将其访问的内存分为大页面支持区和小页面支持区,应用随机访问这两个区。利用该benchmark可以制造出大小页面并存于TLB并相互竞争的局面。  不过,这。。。太生涩了!读者会觉得这个毫无意义。如果在文章中这样给人讲述,一来难以理解,二来觉得是生造之物。怎么办?  换个角度描述!工具还是这个工具,一句代码都不改。换个说法而已: <...
阅读(705) 评论(1)

指定某个cpu只运行指定进程的做法

进程与cpu绑定需要做四件事:一、把指定cpu从平衡算法剔除。二、把指定cpu上所有的中断请求搬到其他cpu。三、把指定cpu上的所有的进程搬到其他cpu。四、把指定进程到绑定到指定cpu。一、把指定cpu从cpu平衡算法剔除,机器启动后,用户进程自动不会在指定cpu上运行。做法如下:在/boot/grub/grub.conf文件里的root=LABEL=/ 后面添加 isolcpus=cpu号列表cpu号从0开始,多个cpu号之间用“,”分隔,例:isolcpus=1或isolcpus=4,5,6二、把指...
阅读(5119) 评论(0)

【Linux启动命令行】介绍memmap

mem=nn[KMG] [KNL,BOOT] Force usage of a specific amount of memory Amount of memory to be used when the kernel is not able to see the whole system memory or for test. ...
阅读(5701) 评论(1)

使用 ftrace 调试 Linux 内核

  ftrace 是内建于 Linux 内核的跟踪工具,从 2.6.27 开始加入主流内核。使用 ftrace 可以调试或者分析内核中发生的事情。ftrace 提供了不同的跟踪器,以用于不同的场合,比如跟踪内核函数调用、对上下文切换进行跟踪、查看中断被关闭的时长、跟踪内核态中的延迟以及性能问题等。系统开 发人员可以使用 ftrace 对内核进行跟踪调试,以找到内核中出现的问题的根源,方便对其进行修复。另外,对内核感兴趣的读者还可以通过 ftrace 来观察内核中发生的活动,了解内核...
阅读(1247) 评论(1)

再思linux内核在中断路径内不能睡眠/调度的原因(2010)

Linux内核中断路径中不能睡眠,为什么?这里就行了很深入的讨论,值得一看:http://bbs2.chinaunix.net/viewthread.php?tid=1618430但是,他们的讨论最后没有得出一个明确的结论。其中,cskyrain在8楼 的思考触及到了一个要点,但是没有深入展开:cskyrain 发表于 2009-11-24 20:36 中断处理程序为什么不能阻塞休眠???以前真没认真思考过! 一直认为中断处理函数不能休眠的是天经地义的,可从没认真思考过问什么不能休眠,阻塞。最近看了一...
阅读(17355) 评论(0)

超级计算机演义

在BBC的一个栏目里面,看到了一个有趣的交互程序,展示了2010年6月份Top500超级计算机的方方面面:     按照操作系统:    按照应用类型:    按照计算速度(我们中心的曙光排名第二):按照国家: ...
阅读(722) 评论(0)

基于虚拟机的PC应用环境构建

个人电脑用户最大的烦恼是什么?不是速度不够快,不是应用不够丰富,而是电脑使用一段时间后,开机速度变慢、运行程序变卡、关机速度变慢、系统不稳定、中毒 等等。 如何解决这些问题呢?目前有两种主流方案:1、杀毒,清理垃圾。本方案以360为代表。2、重装系统。本方案为CS男帮MM专用。 但是,两种方案都不尽完美。 * 对于杀毒清理方案,虽然操作难度较低,但在实践中常常有失效的情况发生,运行一次清理后,速度提...
阅读(858) 评论(0)

测试和修改page->flags的操作函数位于哪里?

用Source Insight阅读Linux源码的朋友一定注意到过,类似于PageReserved() PageDirty() PageWriteback()之类的函数,都是白色的,找不到它们的定义在哪里。如图所示:   在kernel/include/linux/page-flags.h 中我们找到了答案:    这些函数都是通过宏展开在编译期生成的。 下面以PageLocked()函数的生成过程...
阅读(2240) 评论(1)

【Linux交换分区】 交换分区格式浅析

完成本文,使用了两个工具 1. strace 2. google code search. ----swap分区有一个大小为PAGE_SIZE的页面,称为signature页,上面记录swap分区的基本信息。static struct swap_header_v1 { char bootbits[1024]; /* Space...
阅读(3687) 评论(0)

Xen上的miniOS

原文:http://qyrekcah.spaces.live.com/blog/cns!D691A70904EDECB0!228.entry?wa=wsignin1.0&sa=674975121    在Xen上可以运行的最小OS,该miniOS直接用汇编程序编写,实现了Xen的hypercall的调用。下面是它的实现代码:# helloworld.s.section ...
阅读(1621) 评论(0)

操作系统研究该走向何方?

操作系统研究该走向何方? 拼性能?至少在单核或小数量多核(NR_CORE  拼稳定性?这个概念其实很虚,一方面稳定性依赖于上层应用特征,另一方面依赖于底层硬件质量。可以做的有二:其一是写好代码,可惜这与科研无关;其二是做好容错,一旦错误能够让损失最小化。对于商用系统,一般稳定性都较好。在集群中由于机器数量巨大,稳定性问题依然存在。 拼支持能力?Linux驱动...
阅读(900) 评论(5)

per-CPU变量的静态和动态分配原理

per-CPU是2.6内核中引入的,访问per-CPU变量几乎不需要锁,每个处理器都在其自己的副本上工作。这些副本是如何生成的呢?本文尝试解答这个问题。静态per-CPU结构设计思路大体可以分为两个阶段:编译阶段和运行时阶段在编译阶段,实际上只生成了一个CPU原本。系统中所有per-CPU结构都放到了一个叫做"data.percpu"的section中,在ld.S链...
阅读(4032) 评论(3)

Kfree会睡眠吗?

回答:不会! kmalloc会。 所以,不能在spinlock环境下调用kmalloc。 http://lkml.indiana.edu/hypermail/linux/kernel/0411.2/1863.html ...
阅读(1207) 评论(0)

Linux ELF文件装入与执行概述

ELF是linux中使用最广泛的一种应用程序格式,为了弄清楚Linux内核是如何讲ELF文件精确映射到指定内存空间,上周末把内核sys_execve部分好好看了一遍,小结如下:1. ELF格式ELF指定了进程中text段、bss段、data段等应该放置到进程虚拟内存空间的什么位置,以及记录了进程需要用到的各种动态链接库的位置。2. sys_execve的大致执行流程...
阅读(7078) 评论(0)

为什么使用spinlock的时候不能睡眠

跟踪一下spin_lock(&mr_lock)的实现#define spin_lock(lock) _spin_lock(lock)#define _spin_lock(lock) __LOCK(lock)#define __LOCK(lock) /do { preempt_disable(); __acquire(lock); (void)(lock); } while (0...
阅读(3272) 评论(9)
39条 共2页1 2 下一页 尾页
    个人资料
    • 访问:1336006次
    • 积分:17240
    • 等级:
    • 排名:第629名
    • 原创:408篇
    • 转载:77篇
    • 译文:5篇
    • 评论:364条
    文章存档
    最新评论
    访问统计