Sent patch El lun., 28 oct. 2019 a las 19:46, Almudena Garcia (< liberamenso10...@gmail.com>) escribió:
> Something as this? > > El lun., 28 oct. 2019 a las 19:24, Samuel Thibault (< > samuel.thiba...@gnu.org>) escribió: > >> Almudena Garcia, le lun. 28 oct. 2019 19:16:28 +0100, a ecrit: >> > > As I said, look for the thread_info() calls, to fill the field if the >> > > returned count doesn't include it. >> > >> > process_file_gc_stat(), the function which write the stat structure, >> doesn't >> > calls to thread_info(). >> >> Indeed, it gets it from proc_stat_thread_basic_info, which gets >> it from the ps parameter, which is created by _proc_stat_create >> and filled by proc_stat_set_flags, which calls set_procinfo_flags, >> which calls merge_procinfo, which calls fetch_procinfo, which calls >> proc_getprocinfo, i.e. proc's S_proc_getprocinfo() RPC. >> >> But we didn't need to see that route anyway: we add information returned >> by thread_info(), so it's simply the callers of thread_info() which need >> to be fixed. The rest will follow. >> >> Samuel >> >
--- hurd/procfs/process.c 2019-10-26 23:12:40.495359917 +0200 +++ hurd~/procfs/process.c 2019-10-28 19:41:14.751636209 +0100 @@ -286,7 +288,7 @@ (long unsigned) proc_stat_thread_rpc (ps), /* close enough */ 0L, 0L, 0, - 0, + (long unsigned) thsi->last_processor, 0, 0, 0LL); } --- hurd/proc/info.c 2019-10-26 23:12:40.495359917 +0200 +++ hurd~/proc/info.c 2019-10-28 19:43:11.898787596 +0100 @@ -713,6 +713,12 @@ *flags &= ~PI_FETCH_THREAD_SCHED; err = 0; } + + /* if the structure read doesn't include last_processor field, set It to 0 */ + if(thcount >= THREAD_SCHED_INFO_COUNT){ + thds[i]->last_processor = 0; + } + } /* Note that there are thread wait entries only for those threads