1. 27 5月, 2011 1 次提交
  2. 31 3月, 2011 1 次提交
  3. 26 3月, 2011 1 次提交
  4. 30 10月, 2010 1 次提交
    • D
      kgdbts: prevent re-entry to kgdbts before it unregisters · 4dacd5c0
      Dongdong Deng 提交于
      The "kgdb_connected" variable of debug_core just indicates whether or
      not kgdbts is connected to the debug_core.  It does not completely
      prevent a script from trying invoke kgdbts again and possibly crashing
      the system (see Call Trace below).
      
      The configured variable in kgtbts can be used instead of
      kgdb_connected instead of kgdb_connected. The cleanup_kgdbts() can
      also be removed because there is no possible way to build kgdbts as a
      kernel module that you could unload with rmmod.
      
      Call Trace:
      -----------------------------------------------------------------
      root:/$ echo kgdbts=V1S1000 > /sys/module/kgdbts/parameters/kgdbts
      kgdb: Unregistered I/O driver kgdbts, debugger disabled.
      ------------[ cut here ]------------
      WARNING: at kernel/debug/debug_core.c:1002
      kgdb_unregister_io_module+0xec/0x100()
      Hardware name: Moon Creek platform
      Modules linked in:
      Pid: 664, comm: sh Not tainted 2.6.34.1-WR4.0.0.0_standard #58
      Call Trace:
       [<c103b1ed>] warn_slowpath_common+0x6d/0xa0
       [<c1079fdc>] ? kgdb_unregister_io_module+0xec/0x100
       [<c1079fdc>] ? kgdb_unregister_io_module+0xec/0x100
       [<c10544e0>] ? param_attr_store+0x0/0x20
       [<c103b235>] warn_slowpath_null+0x15/0x20
       [<c1079fdc>] kgdb_unregister_io_module+0xec/0x100
       [<c124e4ea>] cleanup_kgdbts+0x1a/0x20
       [<c124eced>] param_set_kgdbts_var+0x6d/0xb0
       [<c124ec80>] ? param_set_kgdbts_var+0x0/0xb0
       [<c10544f7>] param_attr_store+0x17/0x20
       [<c105457c>] module_attr_store+0x2c/0x40
       [<c111fe84>] sysfs_write_file+0x94/0xf0
       [<c10d42f6>] vfs_write+0x96/0x130
       [<c111fdf0>] ? sysfs_write_file+0x0/0xf0
       [<c10d44d6>] sys_write+0x46/0xd0
       [<c13bf329>] system_call_done+0x0/0x4
      ---[ end trace 4eb028c6ee43154c ]---
      kgdb: Unregistered I/O driver kgdbts, debugger disabled.
      -----------------------------------------------------------------
      
      [jason.wessel@windriver.com: remove cleanup_kgdbts() ]
      Signed-off-by: NDongdong Deng <dongdong.deng@windriver.com>
      Signed-off-by: NJason Wessel <jason.wessel@windriver.com>
      4dacd5c0
  5. 03 4月, 2010 1 次提交
  6. 11 12月, 2009 2 次提交
  7. 29 5月, 2008 2 次提交
  8. 05 5月, 2008 2 次提交
    • J
      kgdb: 1000 loops for the single step test in kgdbts · 7cfcd985
      Jason Wessel 提交于
      The single step test is not terribly costly and it should be able to
      pass at 1000 loops successfully in under 1 second.  A non-kgdb timing
      regression was found using this test, but it did not occur frequently
      because by default the test was only executed a single time.
      
      This patch changes the default for the single step test to 1000
      iterations and allows for individual configuration of the single step
      test to further exercise the kgdb subsystem when needed.
      Signed-off-by: NJason Wessel <jason.wessel@windriver.com>
      7cfcd985
    • H
      kgdb: trivial sparse fixes in kgdb test-suite · 001fddf5
      Harvey Harrison 提交于
      Shadowed variable and integer as NULL pointer fixes:
      drivers/misc/kgdbts.c:877:6: warning: symbol 'sys_open_test' shadows an earlier one
      drivers/misc/kgdbts.c:537:27: originally declared here
      drivers/misc/kgdbts.c:378:22: warning: Using plain integer as NULL pointer
      drivers/misc/kgdbts.c:386:22: warning: Using plain integer as NULL pointer
      drivers/misc/kgdbts.c:468:30: warning: Using plain integer as NULL pointer
      drivers/misc/kgdbts.c:472:15: warning: Using plain integer as NULL pointer
      drivers/misc/kgdbts.c:502:30: warning: Using plain integer as NULL pointer
      drivers/misc/kgdbts.c:506:30: warning: Using plain integer as NULL pointer
      drivers/misc/kgdbts.c:509:30: warning: Using plain integer as NULL pointer
      drivers/misc/kgdbts.c:523:20: warning: Using plain integer as NULL pointer
      drivers/misc/kgdbts.c:527:20: warning: Using plain integer as NULL pointer
      drivers/misc/kgdbts.c:530:15: warning: Using plain integer as NULL pointer
      drivers/misc/kgdbts.c:541:21: warning: Using plain integer as NULL pointer
      drivers/misc/kgdbts.c:545:21: warning: Using plain integer as NULL pointer
      drivers/misc/kgdbts.c:548:15: warning: Using plain integer as NULL pointer
      drivers/misc/kgdbts.c:559:30: warning: Using plain integer as NULL pointer
      drivers/misc/kgdbts.c:563:15: warning: Using plain integer as NULL pointer
      drivers/misc/kgdbts.c:573:16: warning: Using plain integer as NULL pointer
      drivers/misc/kgdbts.c:574:19: warning: Using plain integer as NULL pointer
      drivers/misc/kgdbts.c:578:15: warning: Using plain integer as NULL pointer
      drivers/misc/kgdbts.c:588:16: warning: Using plain integer as NULL pointer
      drivers/misc/kgdbts.c:589:19: warning: Using plain integer as NULL pointer
      drivers/misc/kgdbts.c:593:15: warning: Using plain integer as NULL pointer
      drivers/misc/kgdbts.c:602:16: warning: Using plain integer as NULL pointer
      drivers/misc/kgdbts.c:604:15: warning: Using plain integer as NULL pointer
      drivers/misc/kgdbts.c:925:3: warning: Using plain integer as NULL pointer
      drivers/misc/kgdbts.c:938:3: warning: Using plain integer as NULL pointer
      Signed-off-by: NHarvey Harrison <harvey.harrison@gmail.com>
      Signed-off-by: NJason Wessel <jason.wessel@windriver.com>
      001fddf5
  9. 29 4月, 2008 1 次提交
  10. 18 4月, 2008 2 次提交
    • J
      kgdb: allow static kgdbts boot configuration · 974460c5
      Jason Wessel 提交于
      This patch adds in the ability to compile the kgdb internal test
      string into the kernel so as to run the tests at boot without changing
      the kernel boot arguments.  This patch also changes all the error
      paths to invoke WARN_ON(1) which will emit the line number of the file
      and dump the kernel stack when an error occurs.
      
      You can disable the tests in a kernel that is built this way
      using "kgdbts="
      Signed-off-by: NJason Wessel <jason.wessel@windriver.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      974460c5
    • J
      kgdb: add kgdb internal test suite · e8d31c20
      Jason Wessel 提交于
      This patch adds regression tests for testing the kgdb core and arch
      specific implementation.
      
      The kgdb test suite is designed to be built into the kernel and not as
      a module because it uses a number of low level kernel and kgdb
      primitives which should not be exported externally.
      
      The kgdb test suite is designed as a KGDB I/O module which
      simulates the communications that a debugger would have with kgdb.
      The tests are broken up in to a line by line and referenced here as
      a "get" which is kgdb requesting input and "put" which is kgdb
      sending a response.
      
      The kgdb suite can be invoked from the kernel command line
      arguments system or executed dynamically at run time.  The test
      suite uses the variable "kgdbts" to obtain the information about
      which tests to run and to configure the verbosity level.  The
      following are the various characters you can use with the kgdbts=
      line:
      
      When using the "kgdbts=" you only choose one of the following core
      test types:
      A = Run all the core tests silently
      V1 = Run all the core tests with minimal output
      V2 = Run all the core tests in debug mode
      
      You can also specify optional tests:
      N## = Go to sleep with interrupts of for ## seconds
            to test the HW NMI watchdog
      F## = Break at do_fork for ## iterations
      S## = Break at sys_open for ## iterations
      
      NOTE: that the do_fork and sys_open tests are mutually exclusive.
      
      To invoke the kgdb test suite from boot you use a kernel start
      argument as follows:
      	kgdbts=V1 kgdbwait
      Or if you wanted to perform the NMI test for 6 seconds and do_fork
      test for 100 forks, you could use:
      	kgdbts=V1N6F100 kgdbwait
      
      The test suite can also be invoked at run time with:
      echo kgdbts=V1N6F100 > /sys/module/kgdbts/parameters/kgdbts
      Or as another example:
      echo kgdbts=V2 > /sys/module/kgdbts/parameters/kgdbts
      
      When developing a new kgdb arch specific implementation or
      using these tests for the purpose of regression testing,
      several invocations are required.
      
      1) Boot with the test suite enabled by using the kernel arguments
            "kgdbts=V1F100 kgdbwait"
         ## If kgdb arch specific implementation has NMI use
            "kgdbts=V1N6F100
      
      2) After the system boot run the basic test.
      echo kgdbts=V1 > /sys/module/kgdbts/parameters/kgdbts
      
      3) Run the concurrency tests.  It is best to use n+1
         while loops where n is the number of cpus you have
         in your system.  The example below uses only two
         loops.
      
      ## This tests break points on sys_open
      while [ 1 ] ; do find / > /dev/null 2>&1 ; done &
      while [ 1 ] ; do find / > /dev/null 2>&1 ; done &
      echo kgdbts=V1S10000 > /sys/module/kgdbts/parameters/kgdbts
      fg # and hit control-c
      fg # and hit control-c
      ## This tests break points on do_fork
      while [ 1 ] ; do date > /dev/null ; done &
      while [ 1 ] ; do date > /dev/null ; done &
      echo kgdbts=V1F1000 > /sys/module/kgdbts/parameters/kgdbts
      fg # and hit control-c
      Signed-off-by: NJason Wessel <jason.wessel@windriver.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      e8d31c20