diff options
| author | Merlin Scholz <merlin@scholz.ruhr> | 2023-03-14 15:05:19 +0100 |
|---|---|---|
| committer | Merlin Scholz <merlin@scholz.ruhr> | 2023-03-14 15:05:19 +0100 |
| commit | 1096504a73ba2e1c619ee0a8c8a5f091d17a71db (patch) | |
| tree | e11ebd9ff21e4510cc6d3f462dd79b9e9ad04b79 | |
| parent | 38946c4e0283cb14ac5d2e0d415471d571a300ac (diff) | |
Implement sending of LOCKDOC experiment information on startup
| -rw-r--r-- | sys/kern/init_main.c | 11 | ||||
| -rw-r--r-- | sys/lockdoc/log.c | 3 |
2 files changed, 13 insertions, 1 deletions
diff --git a/sys/kern/init_main.c b/sys/kern/init_main.c index 5604495ef92..1f07a93fbbe 100644 --- a/sys/kern/init_main.c +++ b/sys/kern/init_main.c @@ -226,6 +226,10 @@ extern void *_binary_splash_image_end; #include <sys/userconf.h> +#ifdef LOCKDOC +#include <sys/lockdoc.h> +#endif + extern struct lwp lwp0; extern time_t rootfstime; @@ -624,6 +628,13 @@ main(void) scdebug_init(); +#ifdef LOCKDOC + lockdoc_send_current_task_addr(); + lockdoc_send_lwp_flag_offset(); + lockdoc_send_pid_offset(); + lockdoc_send_kernel_version(); +#endif + /* * Create process 1 (init(8)). We do this now, as Unix has * historically had init be process 1, and changing this would diff --git a/sys/lockdoc/log.c b/sys/lockdoc/log.c index 4fbe3d4a7fd..84aba0893f5 100644 --- a/sys/lockdoc/log.c +++ b/sys/lockdoc/log.c @@ -25,7 +25,8 @@ void lockdoc_send_current_task_addr(void) { memset(&la_buffer,0,sizeof(la_buffer)); la_buffer.action = LOCKDOC_CURRENT_TASK; - //la_buffer.ptr = (uint32_t)PCPU_PTR(curlwp); TODO Implement + la_buffer.ptr = (uint32_t)((uint32_t)curcpu()->ci_self + offsetof(struct cpu_info, ci_curlwp)); + outb_(PING_CHAR,IO_PORT_LOG); lockdoc_x86_restore_intr(flags); |
