These patches add the last processor used by a thread. The first patch add the field to the *thread_basic_info *structure in gnumach
The second patch replace the *processor *value (previously hardcoded to 0) in *stat *structure with the real value stored in *thbi . *This patch must be applied over Hurd *These patches isn't tested yet. It's recommended to check and test them before commit. *
--- gnumach/include/mach/thread_info.h 2019-09-03 01:22:10.920747802 +0200 +++ GNUMach_SMP/include/mach/thread_info.h 2019-10-26 20:37:34.827966396 +0200 @@ -66,6 +66,7 @@ integer_t sleep_time; /* number of seconds that thread has been sleeping */ time_value_t creation_time; /* time stamp of creation */ + integer_t last_processor; /* last processor used by the thread */ }; typedef struct thread_basic_info thread_basic_info_data_t;
--- hurd/procfs/process.c 2019-10-26 23:12:40.495359917 +0200 +++ hurd~/procfs/process.c 2019-10-26 23:09:51.251138576 +0200 @@ -286,7 +286,7 @@ (long unsigned) proc_stat_thread_rpc (ps), /* close enough */ 0L, 0L, 0, - 0, + (long unsigned) thbi->last_processor, 0, 0, 0LL); }