Is it possible to create thread local data in a linux kernel module?
I need to store some data for each process/thread calling my module. Is there an easy way of using thread local data, or do I have to resort to writing a hash map which uses the pid of the current process as a key?
Assuming the interface to you kernel module is a character device driver, then you have a private_data field in the file struct (which is analogous to user space file descriptor) exactly for that.
Just allocate and assign a pointer to your structure of choice at the open file operation to it.
It's not exactly thread or process local, but in most cases a mapping of one file descriptor to your process is true and it might be good enough for you.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With