
linux系统编程
系统编程
未停丶
这个作者很懒,什么都没留下…
展开
-
platform driver的probbe函数启动流程
1、probe的启动依赖于注册函数platform_driver_register;2、如下图所示,注册函数platform_driver_register会调用__driver_attach函数;3、看下__driver_attach函数做了什么:static int __driver_attach(struct device *dev, void *data){ struct device_driver *drv = data; int ret; /* * Lock device原创 2021-01-26 17:04:58 · 219 阅读 · 0 评论 -
使用LDREX和STREX在多处理器和共享内存系统中实现进程间通信
出于性能的考虑,请使对应的LDREX和STREX指令之间的指令数量最少。举例:spin_lock源码(arm架构)static inline void arch_spin_lock(arch_spinlock_t *lock){ unsigned long tmp; u32 newval; arch_spinlock_t lockval; prefetchw(&lock->slock); /* ldrex和strex都是arm架构的独占读写指令. */ __asm__ _原创 2021-01-22 17:37:42 · 402 阅读 · 2 评论 -
socket函数返回Too many open files
现象[2020-07-16 01:50:18.943][E]observe_comm.cpp observe_comm_socket_init [695] create socket error, reason: Too many open files[2020-07-16 01:50:18.943][E]observe_comm.cpp observe_comm_get_ip [534] socket error分析ps查看对应的进程,查看进程编号是1613cd /proc/1613sud原创 2020-07-17 11:17:17 · 1423 阅读 · 0 评论 -
Broken pipe信号导致进程退出
现象-客户端:[1]+ Broken pipe /app/observe_exe 192.168.50.177从客户端的log看出进程是在2020-07-17 00:53:07.213退出的。如下,服务器端的log可以看出它在前2秒的时间关闭了socket。[2020-07-17 00:53:05.959][D]master_comm.cpp master_comm_check_client_conn_thread [927] clear success. i: 0,原创 2020-07-17 10:33:33 · 662 阅读 · 0 评论