forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dyndbg: add test_dynamic_debug module
Provide a simple module to allow testing DYNAMIC_DEBUG behavior. It calls do_prints() from module-init, and with a sysfs-node. dmesg -C dmesg -w & modprobe test_dynamic_debug dyndbg=+p echo 1 > /sys/module/dynamic_debug/parameters/verbose cat /sys/module/test_dynamic_debug/parameters/do_prints echo module test_dynamic_debug +mftl > /proc/dynamic_debug/control echo junk > /sys/module/test_dynamic_debug/parameters/do_prints Acked-by: Jason Baron <[email protected]> Acked-by: Daniel Vetter <[email protected]> Signed-off-by: Jim Cromie <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
- Loading branch information
Showing
4 changed files
with
83 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7205,6 +7205,8 @@ M: Jason Baron <[email protected]> | |
S: Maintained | ||
F: include/linux/dynamic_debug.h | ||
F: lib/dynamic_debug.c | ||
M: Jim Cromie <[email protected]> | ||
F: lib/test_dynamic_debug.c | ||
|
||
DYNAMIC INTERRUPT MODERATION | ||
M: Tal Gilboa <[email protected]> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
// SPDX-License-Identifier: GPL-2.0-only | ||
/* | ||
* Kernel module for testing dynamic_debug | ||
* | ||
* Authors: | ||
* Jim Cromie <[email protected]> | ||
*/ | ||
|
||
#define pr_fmt(fmt) "test_dd: " fmt | ||
|
||
#include <linux/module.h> | ||
|
||
static void do_prints(void); /* device under test */ | ||
|
||
/* run tests by reading or writing sysfs node */ | ||
|
||
static int param_set_do_prints(const char *instr, const struct kernel_param *kp) | ||
{ | ||
do_prints(); | ||
return 0; | ||
} | ||
|
||
static int param_get_do_prints(char *buffer, const struct kernel_param *kp) | ||
{ | ||
do_prints(); | ||
return scnprintf(buffer, PAGE_SIZE, "did do_prints\n"); | ||
} | ||
|
||
static const struct kernel_param_ops param_ops_do_prints = { | ||
.set = param_set_do_prints, | ||
.get = param_get_do_prints, | ||
}; | ||
|
||
module_param_cb(do_prints, ¶m_ops_do_prints, NULL, 0600); | ||
|
||
static void do_alpha(void) | ||
{ | ||
pr_debug("do alpha\n"); | ||
} | ||
static void do_beta(void) | ||
{ | ||
pr_debug("do beta\n"); | ||
} | ||
|
||
static void do_prints(void) | ||
{ | ||
do_alpha(); | ||
do_beta(); | ||
} | ||
|
||
static int __init test_dynamic_debug_init(void) | ||
{ | ||
pr_debug("init start\n"); | ||
|
||
do_prints(); | ||
|
||
pr_debug("init done\n"); | ||
return 0; | ||
} | ||
|
||
static void __exit test_dynamic_debug_exit(void) | ||
{ | ||
pr_debug("exiting\n"); | ||
} | ||
|
||
module_init(test_dynamic_debug_init); | ||
module_exit(test_dynamic_debug_exit); | ||
|
||
MODULE_AUTHOR("Jim Cromie <[email protected]>"); | ||
MODULE_LICENSE("GPL"); |