samples/hung_task/hung_task_tests.c

Source file repositories/reference/linux-study-clean/samples/hung_task/hung_task_tests.c

File Facts

System
Linux kernel
Corpus path
samples/hung_task/hung_task_tests.c
Extension
.c
Size
5151 bytes
Lines
165
Domain
Support Tooling And Documentation
Bucket
samples
Inferred role
Support Tooling And Documentation: operation-table or driver-model contract
Status
pattern implementation candidate

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

static const struct file_operations hung_task_mutex_fops = {
	.read = read_dummy_mutex,
};

/* File operations for semaphore */
static const struct file_operations hung_task_sem_fops = {
	.read = read_dummy_semaphore,
};

/* File operations for rw_semaphore read */
static const struct file_operations hung_task_rwsem_read_fops = {
	.read = read_dummy_rwsem_read,
};

/* File operations for rw_semaphore write */
static const struct file_operations hung_task_rwsem_write_fops = {
	.read = read_dummy_rwsem_write,
};

static int __init hung_task_tests_init(void)
{
	hung_task_dir = debugfs_create_dir(HUNG_TASK_DIR, NULL);
	if (IS_ERR(hung_task_dir))
		return PTR_ERR(hung_task_dir);

	/* Create debugfs files for mutex and semaphore tests */
	debugfs_create_file(HUNG_TASK_MUTEX_FILE, 0400, hung_task_dir, NULL,
			    &hung_task_mutex_fops);
	debugfs_create_file(HUNG_TASK_SEM_FILE, 0400, hung_task_dir, NULL,
			    &hung_task_sem_fops);
	debugfs_create_file(HUNG_TASK_RWSEM_READ_FILE, 0400, hung_task_dir, NULL,
			    &hung_task_rwsem_read_fops);
	debugfs_create_file(HUNG_TASK_RWSEM_WRITE_FILE, 0400, hung_task_dir, NULL,
			    &hung_task_rwsem_write_fops);

	return 0;
}

static void __exit hung_task_tests_exit(void)
{
	debugfs_remove_recursive(hung_task_dir);
}

module_init(hung_task_tests_init);
module_exit(hung_task_tests_exit);

MODULE_LICENSE("GPL");
MODULE_AUTHOR("Masami Hiramatsu <mhiramat@kernel.org>");
MODULE_AUTHOR("Zi Li <amaindex@outlook.com>");
MODULE_DESCRIPTION("Simple sleep under lock files for testing hung task");

Annotation

Implementation Notes