From 509f0498e749fa43af638c2719442656bc3295da Mon Sep 17 00:00:00 2001 From: Merlin Scholz Date: Wed, 19 Jul 2023 19:37:43 +0200 Subject: Code cleanup --- sys/lockdoc/init_data.c | 20 ++++++++++---------- sys/sys/lockdoc.h | 42 ++++++++++++++++++++---------------------- sys/sys/lockdoc_event.h | 13 +++++-------- update_system.sh | 2 +- 4 files changed, 36 insertions(+), 41 deletions(-) diff --git a/sys/lockdoc/init_data.c b/sys/lockdoc/init_data.c index 12d7b752547..afef6122f2a 100644 --- a/sys/lockdoc/init_data.c +++ b/sys/lockdoc/init_data.c @@ -10,14 +10,13 @@ void lockdoc_send_current_task_addr(void) { u_long flags; flags = x86_read_flags(); - _x86_disable_intr(); + _x86_disable_intr(); memset(&la_buffer,0,sizeof(la_buffer)); la_buffer.action = LOCKDOC_CURRENT_TASK; la_buffer.ptr = (uint32_t)((uint32_t)curcpu()->ci_self + offsetof(struct cpu_info, ci_curlwp)); - - lockdoc_outb(PING_CHAR,IO_PORT_LOG); + LOCKDOC_PING(); x86_write_flags(flags); } @@ -26,13 +25,13 @@ void lockdoc_send_lwp_flag_offset(void) { u_long flags; flags = x86_read_flags(); - _x86_disable_intr(); + _x86_disable_intr(); memset(&la_buffer,0,sizeof(la_buffer)); la_buffer.action = LOCKDOC_LWP_FLAG_OFFSET; la_buffer.ptr = offsetof(struct lwp, l_pflag); - lockdoc_outb(PING_CHAR,IO_PORT_LOG); + LOCKDOC_PING(); x86_write_flags(flags); } @@ -41,13 +40,13 @@ void lockdoc_send_pid_offset(void) { u_long flags; flags = x86_read_flags(); - _x86_disable_intr(); + _x86_disable_intr(); memset(&la_buffer,0,sizeof(la_buffer)); la_buffer.action = LOCKDOC_PID_OFFSET; la_buffer.ptr = offsetof(struct lwp, l_lid); - lockdoc_outb(PING_CHAR,IO_PORT_LOG); + LOCKDOC_PING(); x86_write_flags(flags); } @@ -56,13 +55,14 @@ void lockdoc_send_kernel_version(void) { u_long flags; flags = x86_read_flags(); - _x86_disable_intr(); + _x86_disable_intr(); memset(&la_buffer,0,sizeof(la_buffer)); - snprintf((char*)&la_buffer.type, LOG_CHAR_BUFFER_LEN, "%s", "notimplemented"); // TODO Implement + snprintf((char*)&la_buffer.type, LOCKDOC_LOG_CHAR_BUFFER_LEN, + "%d-lockdoc-%s", __NetBSD_Version__, LOCKDOC_VERSION); la_buffer.action = LOCKDOC_KERNEL_VERSION; - lockdoc_outb(PING_CHAR,IO_PORT_LOG); + LOCKDOC_PING(); x86_write_flags(flags); } diff --git a/sys/sys/lockdoc.h b/sys/sys/lockdoc.h index 7a2c4d4d7cd..1cfe9c04a6e 100644 --- a/sys/sys/lockdoc.h +++ b/sys/sys/lockdoc.h @@ -10,11 +10,10 @@ #include #include -#define DELIMITER "#" -#define DELIMITER_CHAR '#' -#define PING_CHAR 'p' -#define MK_STRING(x) #x -#define IO_PORT_LOG (0x00e9) +#define LOCKDOC_VERSION "ms-0.2" +#define LOCKDOC_DELIMITER "#" +#define LOCKDOC_DELIMITER_CHAR '#' +#define LOCKDOC_PING() lockdoc_outb('p',0x00e9); #ifdef LOCKDOC @@ -26,7 +25,6 @@ extern struct log_action la_buffer; /* * Prototypes */ - void lockdoc_send_current_task_addr(void); void lockdoc_send_lwp_flag_offset(void); void lockdoc_send_pid_offset(void); @@ -110,11 +108,11 @@ static inline void __lockdoc_log_memory(int alloc, const char *datatype, const v la_buffer.ctx = lockdoc_get_ctx(); // file - strncpy(la_buffer.file, file, LOG_CHAR_BUFFER_LEN); - la_buffer.file[LOG_CHAR_BUFFER_LEN - 1] = '\0'; + strncpy(la_buffer.file, file, LOCKDOC_LOG_CHAR_BUFFER_LEN); + la_buffer.file[LOCKDOC_LOG_CHAR_BUFFER_LEN - 1] = '\0'; la_buffer.line = line; - strncpy(la_buffer.function, func, LOG_CHAR_BUFFER_LEN); - la_buffer.function[LOG_CHAR_BUFFER_LEN - 1] = '\0'; + strncpy(la_buffer.function, func, LOCKDOC_LOG_CHAR_BUFFER_LEN); + la_buffer.function[LOCKDOC_LOG_CHAR_BUFFER_LEN - 1] = '\0'; /* * One could use a more safe string function, e.g., strlcpy. @@ -123,10 +121,10 @@ static inline void __lockdoc_log_memory(int alloc, const char *datatype, const v * To ensure any string buffer contains a valid string, we * always write a NULL byte at its end. */ - strncpy(la_buffer.type,datatype,LOG_CHAR_BUFFER_LEN); - la_buffer.type[LOG_CHAR_BUFFER_LEN - 1] = '\0'; + strncpy(la_buffer.type,datatype,LOCKDOC_LOG_CHAR_BUFFER_LEN); + la_buffer.type[LOCKDOC_LOG_CHAR_BUFFER_LEN - 1] = '\0'; - lockdoc_outb(PING_CHAR,IO_PORT_LOG); + LOCKDOC_PING(); x86_write_flags(eflags); } @@ -155,29 +153,29 @@ static inline void lockdoc_log_lock(int lock_op, const volatile void* ptr, const // size only relevant for memory access // type - strncpy(la_buffer.type, lock_type, LOG_CHAR_BUFFER_LEN); - la_buffer.type[LOG_CHAR_BUFFER_LEN - 1] = '\0'; + strncpy(la_buffer.type, lock_type, LOCKDOC_LOG_CHAR_BUFFER_LEN); + la_buffer.type[LOCKDOC_LOG_CHAR_BUFFER_LEN - 1] = '\0'; // TODO lock_member - strncpy(la_buffer.lock_member, "dummy", LOG_CHAR_BUFFER_LEN); - la_buffer.lock_member[LOG_CHAR_BUFFER_LEN - 1] = '\0'; + strncpy(la_buffer.lock_member, "dummy", LOCKDOC_LOG_CHAR_BUFFER_LEN); + la_buffer.lock_member[LOCKDOC_LOG_CHAR_BUFFER_LEN - 1] = '\0'; // file - strncpy(la_buffer.file, file, LOG_CHAR_BUFFER_LEN); - la_buffer.file[LOG_CHAR_BUFFER_LEN - 1] = '\0'; + strncpy(la_buffer.file, file, LOCKDOC_LOG_CHAR_BUFFER_LEN); + la_buffer.file[LOCKDOC_LOG_CHAR_BUFFER_LEN - 1] = '\0'; // line la_buffer.line = line; // function - strncpy(la_buffer.function, func, LOG_CHAR_BUFFER_LEN); - la_buffer.function[LOG_CHAR_BUFFER_LEN - 1] = '\0'; + strncpy(la_buffer.function, func, LOCKDOC_LOG_CHAR_BUFFER_LEN); + la_buffer.function[LOCKDOC_LOG_CHAR_BUFFER_LEN - 1] = '\0'; // TODO preempt_count // irq_sync la_buffer.irq_sync = irq_sync; - lockdoc_outb(PING_CHAR,IO_PORT_LOG); + LOCKDOC_PING(); x86_write_flags(eflags); } diff --git a/sys/sys/lockdoc_event.h b/sys/sys/lockdoc_event.h index af5ad08435d..14190343e8f 100644 --- a/sys/sys/lockdoc_event.h +++ b/sys/sys/lockdoc_event.h @@ -3,7 +3,7 @@ #ifdef LOCKDOC -#define LOG_CHAR_BUFFER_LEN 100 +#define LOCKDOC_LOG_CHAR_BUFFER_LEN 100 #define PSEUDOLOCK_ADDR_RCU 0x42 #define PSEUDOLOCK_ADDR_PREEMPT 0x43 #define PSEUDOLOCK_ADDR_SOFTIRQ 0x45 @@ -18,9 +18,6 @@ #define PSEUDOLOCK_VAR_SOFTIRQ PSEUDOLOCK_VAR #define PSEUDOLOCK_VAR_PREEMPT PSEUDOLOCK_VAR -// Lock flags -#define LOCK_FLAGS_RECURSIVE 0x1 - /* * When altered, this file * has to be copied to the according fail experiment @@ -60,11 +57,11 @@ struct log_action { uint32_t lock_op; uint32_t ptr; uint32_t size; - char type[LOG_CHAR_BUFFER_LEN]; // allocated data_type or lock type - char lock_member[LOG_CHAR_BUFFER_LEN]; - char file[LOG_CHAR_BUFFER_LEN]; + char type[LOCKDOC_LOG_CHAR_BUFFER_LEN]; // allocated data_type or lock type + char lock_member[LOCKDOC_LOG_CHAR_BUFFER_LEN]; + char file[LOCKDOC_LOG_CHAR_BUFFER_LEN]; int32_t line; - char function[LOG_CHAR_BUFFER_LEN]; + char function[LOCKDOC_LOG_CHAR_BUFFER_LEN]; int32_t preempt_count; int32_t irq_sync; int32_t flags; diff --git a/update_system.sh b/update_system.sh index 6acd4df6863..e2cda580fee 100755 --- a/update_system.sh +++ b/update_system.sh @@ -1,7 +1,7 @@ #!/bin/sh set -xeu -NETBSD_IP=192.168.122.211 +NETBSD_IP=192.168.122.68 ./build.sh -U -O ./obj -j$(nproc) -m i386 -a i386 -u kernel=GENERIC ./build.sh -U -O ./obj -j$(nproc) -m i386 -a i386 -u kernel=LOCKDOC -- cgit