Search code examples
clinuxunixpthreadsintrospection

Thread name longer than 15 chars?


By using functions like prctl, or pthread_set_name_np it's possible to change the name of a thread. The limit both functions imposes, at least in Linux 2.6.38, is that the name cannot be longer than 15 characters (NULL termination being the 16th byte).

Where is this 15 character limit imposed, and is there any (even unorthodox) way around it?

Update:

As mentioned in the comments, this is imposed by the kernel.

The definition can be found here: http://lxr.linux.no/linux+v2.6.37/include/linux/sched.h#L245


Solution

  • 15-char limit is enforced by the kernel:

    struct task_struct::comm[TASK_COMM_LEN]
    

    which is 16-byte wide.

    You have to recompile the kernel if you want to increase that.