appldata & nr_threads
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 10 lines · Christoph Hellwig
arch/s390/appldata/appldata_base.c:int
nr_threads= -1; arch/s390/appldata/appldata_base.c:EXPORT_SYMBOL_GPL(nr_threads);arch/s390/appldata/appldata_os.c: u32 nr_threads; /* number of threads */ arch/s390/appldata/appldata_os.c: P_DEBUG("nr_threads = %u\n", os_data->nr_threads); arch/s390/appldata/appldata_os.c: os_data->nr_threads = nr_threads;include/linux/sched.h:extern int
nr_threads;
kernel/fork.c:intnr_threads; /* The idle threads do not count.. */
Quoted 6 lines
Can someone explain what's going on here?
appldata_os.capparently uses theappldata_base.cnr_threadsbecause only that is exported. But it's always -1. Then again I don't quite understand how the linker doesn't complain about the twonr_threadssymbols.Could it be that s390 doesn't use -fno-common when compiling the kernel?
There is an #ifdef MODULE around the definition of nr_threads, so the linker won't see the two symbols.
This #ifdef MODULE code was just used for debugging once and it is completely irrelevant (junk) now since there is not even a module config option for appldata_base. So it's probably best to throw away that junk (this wouldn't even compile as a module because there is no struct page_state anymore).
---
appldata_base.c | 38 -------------------------------------- 1 files changed, 38 deletions(-)
arch/s390/appldata/appldata_base.c +0 -38
@@ -668,45 +668,7 @@ EXPORT_SYMBOL_GPL(appldata_register_ops)EXPORT_SYMBOL_GPL (appldata_unregister_ops);EXPORT_SYMBOL_GPL (appldata_diag); -#ifdef MODULE -/* -* Kernel symbols needed by appldata_mem and appldata_os modules. -* However, if this file is compiled as a module (for testing only), these -* symbols are not exported. In this case, we define them locally and export -* those. -*/ -void si_swapinfo (struct sysinfo *val) -{ - val->freeswap =-1ul ; - val->totalswap =-1ul ; -} - -unsigned long avenrun[3 ] = {-1 -FIXED_1 /200 ,-1 -FIXED_1 /200 , --1 -FIXED_1 /200 }; -int nr_threads =-1 ; - -void get_full_page_state (struct page_state *ps) -{ -memset (ps,-1 ,sizeof (struct page_state )); -} - -unsigned long nr_running (void ) -{ -return -1 ; -} - -unsigned long nr_iowait (void ) -{ -return -1 ; -} - -/*unsigned long nr_context_switches(void) -{ -return -1; -}*/ -#endif /* MODULE */ EXPORT_SYMBOL_GPL (si_swapinfo);EXPORT_SYMBOL_GPL (nr_threads);EXPORT_SYMBOL_GPL (nr_running);EXPORT_SYMBOL_GPL (nr_iowait); -//EXPORT_SYMBOL_GPL(nr_context_switches);