Alan Cox wrote:
> 
> > I initially upgraded my kernel from 2.4.2-ac5 to 2.4.3 and the first thing I
> > noticed was that mysqld was stuck.  Killing it left it hanging in a D state.
> > Then I tried 2.4.2-ac28 (which I am using now), and the got the same result.
> 
> I'd expect that bit. 2.4.2-ac28 basically has the same new rwlock VM and
> behaviour as 2.4.3pre8. What would be really useful to know is if anyone can
> duplicate the problem non x86
> 
> > Can anyone reproduce this problem?
> 
> Yes

Untested patch:


--- semaphore.c.orig    Wed Apr  4 12:54:30 2001
+++ semaphore.c Wed Apr  4 12:54:58 2001
@@ -363,26 +363,26 @@
  */
 struct rw_semaphore *down_write_failed(struct rw_semaphore *sem)
 {
        struct task_struct *tsk = current;
        DECLARE_WAITQUEUE(wait, tsk);
 
        __up_write(sem);        /* this takes care of granting the lock
*/
 
-       add_wait_queue_exclusive(&sem->wait, &wait);
+       add_wait_queue_exclusive(&sem->write_bias_wait, &wait);
 
        while (atomic_read(&sem->count) < 0) {
                set_task_state(tsk, TASK_UNINTERRUPTIBLE);
                if (atomic_read(&sem->count) >= 0)
                        break;  /* we must attempt to acquire or bias
the lock */
                schedule();
        }
 
-       remove_wait_queue(&sem->wait, &wait);
+       remove_wait_queue(&sem->write_bias_wait, &wait);
        tsk->state = TASK_RUNNING;
 
        return sem;
 }
 
 asm(
 "
 .align 4
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to