This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: RFA: nptl threading support for schedlock.exp
- From: Daniel Jacobowitz <drow at mvista dot com>
- To: Elena Zannoni <ezannoni at redhat dot com>
- Cc: "J. Johnston" <jjohnstn at redhat dot com>, gdb-patches at sources dot redhat dot com
- Date: Wed, 7 May 2003 17:19:14 -0400
- Subject: Re: RFA: nptl threading support for schedlock.exp
- References: <3EA6E7F2.7090301@redhat.com> <16057.30346.898651.547299@localhost.redhat.com>
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
>
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer