共 25 篇文章 |
|
Linux Performance and Tuning Tricks | Tuning Linux Kernel.Tuning Write/Read memory operationsWriteback.Writeback tuning parameters:When a process reads sequentially a file the kernel starts reading some data in advance to reduce the amount of time that a process have to wait for data to be available, so this parameter... 阅68 转0 评0 公众公开 17-12-06 03:29 |
当声明指针类型或者返回指针类型的函数时, * 的首选使用方式是使之靠近变量名或者函数名,而不是靠近类型名。在函数名中包含函数类型 (所谓的匈牙利命名法) 是脑子出了问题——编译器知道那些类型而且能够检查那些类型,这样做只能把程序员弄糊涂了。6) 函数?在函数原型中,包含函数名和它们的数据类型。与其放一个 ifdef在表达式内,不如分解... 阅84 转0 评0 公众公开 17-11-04 04:22 |
Netlink学习记录netlink要点记录netlink与IOCTL的对比都是用户空间与内核空间进行通信的一种方式。net->genl_sock = netlink_kernel_create(net, NETLINK_GENERIC, &cfg);#define DOC_EXMPL_C_MAX (__DOC_EXMPL_C_MAX - 1)/* operation definition */static struct genl_ops doc_exmpl_gnl_ops_echo = { .cmd = DOC_EXMPL_C_ECHO, .flag... 阅1134 转2 评0 公众公开 17-10-27 21:35 |
返回0表示错误,非零值代表正常(3)分配ID号并将ID号和指针关联int idr_get_new(struct idr *idp, void *ptr, int *id);int idr_get_new_above(struct idr *idp, void *ptr, int start_id, int *id);idp: 之前通过idr_init初始化的idr指针id: 由内核自动分配的ID号ptr: 和ID号相关联的指针start_id: 起始ID号。 阅24 转0 评0 公众公开 17-10-26 02:32 |
Linux kernel debug技巧。其实开启DEBUG宏的方法很简单,在需要pr_debug/dev_dbg输出的模块开头,直接#define DEBUG即可,kernel中有一个例子:diff --git a/arch/arm64/configs/xprj_defconfig b/arch/arm64/configs/xprj_defconfig index 5d0d591..9335d3f 100644 --- a/arch/arm64/configs/xprj_defconfig +++ b/arch/arm64/configs/xprj_de... 阅171 转0 评0 公众公开 17-09-15 05:10 |
int (*mmap)(struct file *, struct kobject *, struct bin_attribute *attr, struct vm_area_struct *vma);void kobject_put(struct kobject *kobj) 2、文件 创建: //kobj为kobject_create_and_add()函数返回值,在kobj目录下创建attr属性节点文件 int sysfs_create_file(struct kobject * kobj, const struct attribute * attr) /... 阅63 转0 评0 公众公开 17-02-21 06:00 |
set_fs(KERNEL_DS);在读写文件前先得到当前fs: mm_segment_t old_fs=get_fs(); 并设置当前fs为内核fs:set_fs(KERNEL_DS); 在读写文件后再恢复原先fs: set_fs(old_fs); set_fs()、get_fs()等相关宏在文件include/asm/uaccess.h中定义。系统调用的参数要求必须来自用户空间,所以,当在内核中使用系统调用的时候,set_fs(get... 阅45 转0 评0 公众公开 16-11-11 23:40 |