Re: Not using the dynamic parameter kstack_depth_to_print?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks Mulyadi and Rene for replying.

On 2/12/08, Rene Herman <rene.herman@xxxxxxxxxxxx> 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 ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux