Linux kernel 通用netlink-PID不是线程唯一的
我正在编写内核模块,它通过通用netlink从用户空间接收消息。当我访问genl_info->snd_pid时,在内核回调函数中,我得到进程ID 根据libnl文件: libnl基于进程标识符生成唯一的端口号,并向其添加一个偏移量,以允许使用多个套接字。出于向后兼容的原因,初始套接字仍将等于进程标识符Linux kernel 通用netlink-PID不是线程唯一的,linux-kernel,kernel,netlink,Linux Kernel,Kernel,Netlink,我正在编写内核模块,它通过通用netlink从用户空间接收消息。当我访问genl_info->snd_pid时,在内核回调函数中,我得到进程ID 根据libnl文件: libnl基于进程标识符生成唯一的端口号,并向其添加一个偏移量,以允许使用多个套接字。出于向后兼容的原因,初始套接字仍将等于进程标识符 我的用户空间应用程序使用多个线程,我需要区分它们。谢谢您的帮助。您可以使用两个选项: 通过所有线程共享一个netlink套接字,但使用您自己的通用netlink协议的NLA来标识线程 在每个线程中
我的用户空间应用程序使用多个线程,我需要区分它们。谢谢您的帮助。您可以使用两个选项:
PID\u MAX\u LIMIT
==2^22,而PID
字段的类型为uint32
。因此可以使用pid
将进程的pid和一些id打包在一起