On 03/20/2012 04:30 PM, Kang Kai wrote: > On 2012年03月19日 16:11, Jubi Taneja wrote: >> Hi >> >> In LTP(Jan 2012 release) Open Posix Test Suite, the test case >> "pthread_rwlock_rdlock/2-1.c" >> fails for Linux Kernel 3.0.18 for target ARM. >> >> >> The exact output of the program is: >> main: has priority: 3 >> main: attempt read lock >> main: acquired read lock >> main: create wr_thread, with priority: 2 >> wr_thread: attempt write lock >> main: create rd_thread, with priority: 1 >> rd_thread: attempt read lock >> rd_thread: acquired read lock >> rd_thread: unlock read lock >> Test FAILED: rd_thread did not block on read lock, when a reader owns the >> lock, and a higher >> priority writer is waiting for the lock > > Hi Jubi, > > I am using eglibc and meet the same failure. My analysis is that > > This test case is to test option *Thread Execution Scheduling* of pthread > rwlock. > But eglibc/libc don't support this option. They provide a > rwlock->__data.*__flags* option to identify > perfer 'read lock' or write lock, and the default is 'read lock' first. So > second reader can get the lock > when a higher priority writer is waiting for the lock.
This's a glibc's bug. POSIX said: "If the Thread Execution Scheduling option is supported, and the threads involved in the lock are executing with the scheduling policies SCHED_FIFO or SCHED_RR, the calling thread shall not acquire the lock if a writer holds the lock or if writers of higher or equal priority are blocked on the lock; otherwise, the calling thread shall acquire the lock." But at glibc, reader always acquire rwlock if there's not a writer held this lock. so test fail. Thanks, Wanlong Gao > > Regards, > Kai > >> >> >> >> The path of the program si : >> VDLTP_20120104/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_rdlock >> >> Ca anyone please explain why it fails at this point? I am unable to catch >> the exact reason. >> >> Looking forward to your reply. >> >> Thanks, >> Jubi >> >> >> ------------------------------------------------------------------------------ >> This SF email is sponsosred by: >> Try Windows Azure free for 90 days Click Here >> http://p.sf.net/sfu/sfd2d-msazure >> >> >> _______________________________________________ >> Ltp-list mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/ltp-list > > > > ------------------------------------------------------------------------------ > This SF email is sponsosred by: > Try Windows Azure free for 90 days Click Here > http://p.sf.net/sfu/sfd2d-msazure > > > > _______________________________________________ > Ltp-list mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/ltp-list ------------------------------------------------------------------------------ This SF email is sponsosred by: Try Windows Azure free for 90 days Click Here http://p.sf.net/sfu/sfd2d-msazure _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
