This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFA: nptl threading support for schedlock.exp


J. Johnston writes:
 > The following changes schedlock.exp for running with nptl threads.
 > Under the nptl model, a very small time slice is not divided up equally
 > as it was in the past with linuxthreads.
 > 
 > The test case is also changed to ensure that one of the child threads
 > is used to test schedule locking instead of the main thread.  In early
 > testing with nptl, a kernel problem was identified when the main thread
 > was locked and an interrupt signal was sent.
 > 
 > Ok to commit?

Seems ok, Daniel? Can this go in?
It is all passes with the NPTL patches that are still pending.

elena


 > 
 > -- Jeff J.
 > 
 > 2003-04-23  Jeff Johnston  <jjohnstn@redhat.com>
 > 
 > 	* gdb.threads/schedlock.exp: Remove assumption that all threads will run in a
 > 	particular small time slice.  Also ensure we break in one of the child threads
 > 	rather than the	main thread.
 > 
 > Index: schedlock.exp
 > ===================================================================
 > RCS file: /cvs/src/src/gdb/testsuite/gdb.threads/schedlock.exp,v
 > retrieving revision 1.3
 > diff -u -r1.3 schedlock.exp
 > --- schedlock.exp	4 Jan 2003 23:05:05 -0000	1.3
 > +++ schedlock.exp	23 Apr 2003 18:31:05 -0000
 > @@ -112,8 +112,8 @@
 >  
 >    stop_process "stop all threads ($msg)"
 >  
 > -  # Make sure we're in one of the looping threads.
 > -  gdb_breakpoint [gdb_get_line_number "schedlock.exp: main loop"]
 > +  # Make sure we're in one of the non-main looping threads.
 > +  gdb_breakpoint [concat [gdb_get_line_number "schedlock.exp: main loop"] " if arg != 5"]
 >    gdb_continue_to_breakpoint "return to loop ($msg)"
 >    delete_breakpoints
 >  }
 > @@ -230,12 +230,11 @@
 >  set start_args $cont_args
 >  set cont_args [get_args]
 >  
 > +set num_other_threads 0
 >  for {set i 0} {[expr $i < 6]} {set i [expr $i + 1]} {
 >    if {[lindex $start_args $i] == [lindex $cont_args $i]} {
 >      if {$i == $curthread} {
 >        fail "current thread stepped (didn't run)"
 > -    } else {
 > -      fail "other thread $i ran (didn't run) (1)"
 >      }
 >    } else {
 >      if {$i == $curthread} {
 > @@ -245,9 +244,14 @@
 >  	    fail "current thread stepped (wrong amount)"
 >  	}
 >      } else {
 > -      pass "other thread $i ran (1)"
 > +      set num_other_threads [expr $num_other_threads + 1]
 >      }
 >    }
 > +}
 > +if {$num_other_threads > 0} {
 > +  pass "other threads ran (1)"
 > +} else {
 > +  fail "other threads ran (no other threads ran) (1)"
 >  }
 >  
 >  # Test continue with scheduler locking


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]