Skip to contentSkip to conversation

D state after applying ps hang patch

DISCUSSION David Ford 2 participants 5 messages Jan 29, 2001 Block layer

lore
Share & tools
lore

David Ford

author
#0 lore raw

kernel 2.4.0-ac12

# ps -eo user,pid,args,wchan|egrep "imap|update|procmail"
root         7 [kupdate]        get_request_wait
david      627 imapd            get_request_wait
david      752 procmail -f linu down
david      761 procmail -f linu down
david      799 procmail -f linu down
david      854 procmail -f linu down
david      886 procmail -f linu down
david      847 imapd            get_request_wait
david     1079 procmail -f linu down
david     3280 imapd            interruptible_sleep_on_locked
david     3321 imapd            interruptible_sleep_on_locked

and the cpu load is artificially inflated to 9.17

-d

--
There is a natural aristocracy among men. The grounds of this are virtue and talents. Thomas Jefferson The good thing about standards is that there are so many to choose from. Andrew S. Tanenbaum

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/

#1 lore raw
Quoted 15 lines · David Ford

kernel 2.4.0-ac12

# ps -eo user,pid,args,wchan|egrep "imap|update|procmail"
root         7 [kupdate]        get_request_wait
david      627 imapd            get_request_wait
david      752 procmail -f linu down
david      761 procmail -f linu down
david      799 procmail -f linu down
david      854 procmail -f linu down
david      886 procmail -f linu down
david      847 imapd            get_request_wait
david     1079 procmail -f linu down
david     3280 imapd            interruptible_sleep_on_locked
david     3321 imapd            interruptible_sleep_on_locked
Quoted 1 line

and the cpu load is artificially inflated to 9.17

Which patch specifically?

Signature · 5 lines
Jens Axboe
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/
author
#2 lore raw
In reply to David Ford

The one LInus posted plus his addendum for the ll_rw_blk.
http://blue-labs.org/patches/ps-hang.patch

-d

Quoted 16 lines · Jens Axboe
Quoted 15 lines · David Ford

kernel 2.4.0-ac12

# ps -eo user,pid,args,wchan|egrep "imap|update|procmail"
root         7 [kupdate]        get_request_wait
david      627 imapd            get_request_wait
david      752 procmail -f linu down
david      761 procmail -f linu down
david      799 procmail -f linu down
david      854 procmail -f linu down
david      886 procmail -f linu down
david      847 imapd            get_request_wait
david     1079 procmail -f linu down
david     3280 imapd            interruptible_sleep_on_locked
david     3321 imapd            interruptible_sleep_on_locked
Quoted 3 lines
Quoted 1 line

and the cpu load is artificially inflated to 9.17

Which patch specifically?

--
There is a natural aristocracy among men. The grounds of this are virtue and talents. Thomas Jefferson The good thing about standards is that there are so many to choose from. Andrew S. Tanenbaum

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/

#3 lore raw
In reply to David Ford
Quoted 2 lines · David Ford

The one LInus posted plus his addendum for the ll_rw_blk.
http://blue-labs.org/patches/ps-hang.patch

You merged it wrong, Linus suggested to remove the entire

		if (!list_empty(&q->request_freelist[rw])) {
			blk_refill_freelist(q, rw);
			list_add(&req->table, &q->request_freelist[rw]);
			return;
		}

In fact, with the change you made the box can't possible survive for very long - once the queue freelists are empty, you will deadlock immediately.

Try this ll_rw_blk.c change instead, on top of pre11. Include Linus' mm fixes of course.

block/ll_rw_blk.c renamed from opt/kernel/linux-2.4.1-pre10/drivers/block/ll_rw_blk.c +2 -0
@@ -633,6 +634,8 @@
 		if (!list_empty(&q->request_freelist[rw])) {
 			blk_refill_freelist(q, rw);
 			list_add(&req->table, &q->request_freelist[rw]);
+			if (waitqueue_active(&q->wait_for_request))
+				wake_up_nr(&q->wait_for_request, 2);
 			return;
 		}
 
Signature · 6 lines
Jens Axboe

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/
#4 lore raw
In reply to David Ford
Quoted 2 lines · Jens Axboe

Try this ll_rw_blk.c change instead, on top of pre11. Include Linus' mm fixes of course.

On top of ac12 I mean, pre11 already has a different (but functional) change.

Signature · 6 lines
Jens Axboe

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/