全部博文(1493)
发布时间:2014-04-16 19:26:20
私有数据使用1.为什么需要线程私有数据:原因一:有时候需要维护基于每个线程的数据,用线程ID作为索引。因为线程ID不能保证是小而连续的整数,所以不能简单的分配一个线程数据数组,用线程ID作为数组的索引。即使线程ID确实是小而连续的整数,可能还希望有一些额外的保护,以防止某个线程的数据和其它线程的数据相混.........【阅读全文】
发布时间:2014-04-16 19:26:12
操作系统:ubuntu12.04Ubuntu下卸载软件方法一1最简单办法是,当我们知道软件的名称,那么我们就直接在终端命令窗口中输入命令就可以了:sudo apt-get remove --purge google-chrome-unstable--purge 选项表示彻底删除改软件和相关文件.........【阅读全文】
发布时间:2014-04-16 19:25:28
一、检测指针出错的函数//将错误号转化为指针地址static inline void * __must_check ERR_PTR(long error){ return (void *) error;}//将错误指针转化为错误号static inline long __must_check PTR_ERR(__force const void *ptr){ return (long) ptr;}//若是错误指针返回.........【阅读全文】
发布时间:2014-04-15 10:15:02
根据 内核调用链提示的信息,走查代码,发现缺页异常时,获取mmap_sem信号量的时候,没有获取成功,然后主动调用schedule放弃cpu。也就是说app中的多数任务在缺页异常时,获取mmap_sem信号量失败,导致大多数任务都被阻塞在mmap_sem信号量上。从代码上看是请求mmap_sem信号量失败,但是什么情景下会出现这种现象,为什么会出现这种现象暂时不清楚。跟同事讨论,觉得应该是个信号量死锁问题。
如果是信号量死锁问题,那么当前系统必须满足三个条件:
1)高优先级任务抢占中优先级任务,并申请mmap_semp信号量
2)存在中优先级的死循环任务,将低优先级级任务压制,导致低优先级任务得不到调度
3)存在低优先级级任务占用mmap_semp信号量......【阅读全文】