•     最近QA报来的一个bug,引发了我对2.6.x linux线程实现的兴趣。以前一直以为pthread只是简单的利用clone() syscall来实现,2.4和2.6的kernel在这方面应该没有什么大改进。可稍微研究一下,才发现自己错了。
        Linux 2.6.x kernel 加入了对POSIX标准线程的支持。而在应用层,有LinuxThread和NPTL两个不同的库,不过接口都一样,库名也都是pthread。 ...
  • What runs first depends on what type of kernel you start running.
    If you're using a compressed kernel (aka zImage), the startup code...
  • 2009-07-23

    大搬家 - [灌水]

    MSN Space太慢,ucblog太技术。还是找个专业的地方搬个家。

     

  •  

    D5 K7042,早上5:30到嫩江。出站打个小黑车,一人5块到客运站。跳上7点到五大连池风景区的大巴,4小时到。一路上风光无限,大农田,大森林尽收眼底。还碰上一次大堵车,前面的路烂,很多大车都陷了。1个多小时后才疏通。到五大连池便找了个做包车生意的司机,150元包玩一圈,门票据说还能找熟人便宜些。我们便上了车,去附近旅馆订了房间,到客运站买了第二天去哈尔滨的长途大巴。

    其实五大连池没什么好玩,大多数人来是泡药泉的,俄罗斯人特别多。...


  • 虽然不是冬天,没有机会欣赏北国冰雪的盛景,但是我们还是决定趁着两人的无薪假,去祖国的最北端走一趟。

    大体行程:上海飞哈尔滨,从哈尔滨火车到漠河县,包车去北极村。游完漠河一带,火车返回,中途倒车去五大连池。然后长途车去哈尔滨,转车到安图,再到长白山。最后返回长春,坐飞机回上海。

    预算:两人7k

    D1

    春秋9C8859上午8:20,浦东机场飞哈尔滨太平机场。春秋的飞机真...

  • 出行之前,花了不少时间来plan;5.1出游的人多的恐怖,多少有些担心。还要出游一切都比较顺利。

    5月2日,
    早9:50分,从上海南站做上火车去上饶。一路上车开开停停,还从杭州,金华,绕了个圈到上饶。这种车坐的真是心痒痒,平时T车D车坐多了。下午16: 50分左右到达上饶新火车站(晚点50分钟,汗)。下车就奔售票处买回程票,傻了,啥票都没有。考虑就从玉山或者婺源回程好了。离新火车站2-3公里外有 个车站等去玉山的小巴,在车站上和一个当地人聊了聊,把玉山和去三清...
  •      开发板都会有很多外设异步事件,这里主要讨论由用户触发的事件。这些事件都一般需要通过kernel将事件路由到应用层,交有某个处理程序去处理,包括: 耳机(显示耳机图标,打开音频输出)、麦克风、AV/CVBS线、SD卡(挂载分区,可以由udev来做)、充电器插拔(显示充电状态),休眠按键等等。 它们的事件获取,包括ISR,操作外设代码都在各自的驱动内,如果由每个驱动都去导出这样的异步事件接收接口给应用层,应用程序需要开启多个线程去等待 (比较通用的kern...
  • 这周BSP那边碰到一个蛮严重的issue:
    循环放电影,v4l2 output driver的 dma_alloc很容易就失败,kernel panic,dump出当前buddy系统的状态。
    初步分析是由于内存fragment导致没有足够大的连续内存分配给v4l output driver。开始debug
    首先通过/proc/buddyinfo 在播放电影时候不间断的dump buddy状态,发现大块内存块:256K - 4MB block
    减少的很迅速,1-...

  • ioctl在linux系统中属于原子操作, 实际就是带锁的操作.
    在写内核或驱动时,使用ioctl和应用层交互要比/proc来得安全的多.
    以下是对ioctl原子性的代码分析:...

  • 很久没写技术了。最近在研究2.6kernel的新Device Model系统。
    2.6和2.4最大的区别和进步可能要数新的Device Model-设备模型。
    ...
  • - Why hack
        Because of the requirement. That want a client to create more connections as possible as ...
  • kernel里发送RST包比较麻烦,首先你需要构造一个skb就够(很害怕吧!呵呵),再次要填充skb->data。当然就是填充ip、tcp 头了。第一步,我们可以偷懒,用先前接收到的skb(RST肯定是在接收到SYN,或者主动异常中止链接,之前对方的包已收到)做为蓝本来构造RST的 skb,或者干脆就拿这个skb来用。在有netfilter的kernel里,最典范的代码应该在ipt_REJECT target中。以下摘录,并分析它:...
  • 找到个Makefile的HOWTO:
    http://theory.uwinnipeg.ca/localfiles/infofiles/make/make_toc.html
    今天写了个比较有复杂的Makefile。碰到的问题:...
  • 2006-02-23

    is 'delete this' safe? - [C/C++]

    最近碰到一个尴尬的事情,instances没人管,只能自己delete自己。

    这里讨论了delete this语句。最后说明的使用场合很有用。

    现在引入一个叫garbage的静态机制。来处理无用的instances,避免了delete this, 毕竟比较丑陋。

    PROBLEM: Sharma Kunapalli

    I know that "delete this" inside a membe...
  • 由于benchmark的抽象逻辑很简单,但复杂而且易变的部分在其底层的I/O解析部分。所以设计起来有点尴尬:太抽象,本身逻辑很清晰,但会加重下层逻辑的负担,换一个协议时,下层逻辑需要动的部分太多;减少抽象,逻辑上就比较模糊,比如抽象在I/O解析部分,则对于每一个协议都可以很快的实现,但是造成benchmark可能需要不停的适应新协议的变化,不够通用。以下时碰到的几个问题: 1)静态成员变量。 static修饰的成员变量,即静态成员。一般用来解决所有实例共享数据的问题,或者说所有类共有的属性、...