RFA: nptl threading support for schedlock.exp

J. Johnston jjohnstn@redhat.com
Thu May 8 19:23:00 GMT 2003


Patch checked in.  Thanks.

-- Jeff J.

Daniel Jacobowitz wrote:
> On Wed, May 07, 2003 at 05:11:38PM -0400, Elena Zannoni wrote:
> 
>>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.
> 
> 
> Looks good to me too.
> 
> 
>> > 
>> > -- 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
>>
> 
> 




More information about the Gdb-patches mailing list