Thanks Mulyadi and Rene for replying.
On 2/12/08, Rene Herman <[EMAIL PROTECTED]> wrote:
> On 12-02-08 05:40, Peter Teoh wrote:
>
> Note that this bit is inside an "#if defined(CONFIG_X86)" block meaning that
> only the the one(s) below arch/x86 are related:
>
Ah..the above is the KEY...now I know why the bug did not appear.
Ok....just looking at the following symbols I have found:
./kernel/sysctl.c:
.procname = "kstack_depth_to_print",
.data = &kstack_depth_to_print,
./arch/m68k/kernel/traps.c:
static int kstack_depth_to_print = 48;
for (i = 0; i < kstack_depth_to_print; i++) {
./arch/m68knommu/kernel/traps.c:
int kstack_depth_to_print = 48;
for (i = 0; i < kstack_depth_to_print; i++) {
./arch/um/kernel/sysrq.c:
static const int kstack_depth_to_print = 24;
for (i = 0; i < kstack_depth_to_print; i++) {
./arch/blackfin/kernel/traps.c:
int kstack_depth_to_print = 48;
for (i = 0; i < kstack_depth_to_print; i++) {
./arch/x86/kernel/traps_64.c:
int kstack_depth_to_print = 12;
for(i=0; i < kstack_depth_to_print; i++) {
kstack_depth_to_print = simple_strtoul(s,NULL,0);
./arch/x86/kernel/traps_32.c:
int kstack_depth_to_print = 24;
for(i = 0; i < kstack_depth_to_print; i++) {
kstack_depth_to_print = simple_strtoul(s, NULL, 0);
./arch/m32r/kernel/traps.c:
int kstack_depth_to_print = 24;
for(i=0; i < kstack_depth_to_print; i++) {
./arch/powerpc/kernel/process.c:
static int kstack_depth_to_print = 64;
} while (count++ < kstack_depth_to_print);
./arch/h8300/kernel/traps.c:
static int kstack_depth_to_print = 24;
for (i = 0; i < kstack_depth_to_print; i++) {
./arch/xtensa/kernel/traps.c:
static int kstack_depth_to_print = 24;
for (i = 0; i < kstack_depth_to_print; i++) {
./arch/alpha/kernel/traps.c:
static int kstack_depth_to_print = 24;
for(i=0; i < kstack_depth_to_print; i++) {
./arch/s390/kernel/traps.c:
static int kstack_depth_to_print = 12;
static int kstack_depth_to_print = 20;
for (i = 0; i < kstack_depth_to_print; i++) {
./arch/cris/kernel/traps.c:
static int kstack_depth_to_print = 24;
for (i = 0; i < kstack_depth_to_print; i++) {
./include/asm-x86/stacktrace.h:
extern int kstack_depth_to_print;
./include/asm/stacktrace.h:
extern int kstack_depth_to_print;
The symbol for x86 are declared correctly - global, and other files
can access it via extern in the stacktrace.h header file.
But for many other architecture, eg, cris, kstack_depth is declared as
static, and therefore sysfs CANNOT change it (thanks Rene for pointing
out sysctl.c is only doing it for x86 anyway) - since sysctl.c cannot
see the variable even if CONFIG_X86 is taken away. Anyway, in
summary, for x86 and some architecture, kstack_depth can be controlled
via sysfs, but for others it is hardcoded. not sure why, hardware
depedent?
--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [EMAIL PROTECTED]
Please read the FAQ at http://kernelnewbies.org/FAQ