Re: 2.4.0-test10pre5: still IDE lockups on HPT366 controller.

From: Mike Galbraith (mikeg@wen-online.de)
Date: Wed Oct 25 2000 - 01:32:45 EST


On Tue, 24 Oct 2000, Anton Blanchard wrote:

>
> > I've made a little progress fighting with bdflush. Can you please
> > try this and see if it helps you? I have still to figure out why,
> > but here, the first bdflush param _must_ be over 75 and under 90
> > to avoid zillions of context switches. That alone will probably
> > help enough, but I still think bdflush needs to do what the comments
> > say too.
>
> I sent this email a few days ago, but got no response. Can one of the mm
> guys (Rik, Andrea?) please comment?
>
> Anton
>
> -----
>
> > bdflush is broken in current kernels. I posted to linux-mm about this,
> > but Rik et al haven't shown any interest. I normally see bursts of
> > up to around 40K cs/second when doing writes; I hacked a little
> > premption counter into the kernel and verified that they're practially
> > all bdflush...
>
> I found that during a dbench run we were calling bdflush to synchronously
> flush out buffers too early. Changing nfract in /proc/sys/vm/bdflush from
> 40 to 100 improved this a lot.
>
> Looking at the code we seem to be doubling the number of dirty buffers
> (dirty *= 200). Can someone explain this?

Not yet, I'm currently pointing my little hammer at nr_free_buffer_pages()
because...

         soft_dirty_limit = tot * bdf_prm.b_un.nfract;
         hard_dirty_limit = soft_dirty_limit * 2;
 
+ if (time_after(jiffies, next)) {
+ next = jiffies + HZ;
+printk(KERN_ERR "dirty (%lu) avail (%u) idirty (%u) itarget (%lu)\n",
+ dirty/200, nr_free_buffer_pages(), nr_inactive_dirty_pages, inactive_target);
+ }

... produces the output below. I may have done something boneheaded,
but I think it's busted.

        -Mike

from fresh boot
dirty (112) avail (12780) idirty (2335) itarget (240)
dirty (113) avail (12340) idirty (2706) itarget (237)
dirty (121) avail (12091) idirty (2891) itarget (234)
dirty (121) avail (11697) idirty (3077) itarget (237)
dirty (122) avail (11233) idirty (3247) itarget (238)
dirty (123) avail (10733) idirty (3567) itarget (237)
dirty (134) avail (10262) idirty (3728) itarget (242)
dirty (134) avail (9436) idirty (4408) itarget (236)
dirty (118) avail (9208) idirty (4575) itarget (233)
dirty (118) avail (8457) idirty (5147) itarget (228)
dirty (106) avail (7699) idirty (5882) itarget (221)
dirty (80) avail (6994) idirty (6546) itarget (210)
dirty (38) avail (6316) idirty (7184) itarget (204)
dirty (28) avail (5675) idirty (7787) itarget (195)
dirty (17) avail (5063) idirty (8363) itarget (188)
dirty (7) avail (4504) idirty (8889) itarget (180)
dirty (0) avail (3979) idirty (9383) itarget (174)
dirty (0) avail (3500) idirty (9834) itarget (166)
dirty (0) avail (3052) idirty (10256) itarget (161)
dirty (0) avail (2639) idirty (10644) itarget (154)
dirty (0) avail (2252) idirty (11009) itarget (149)
dirty (0) avail (1891) idirty (11348) itarget (142)
dirty (0) avail (1561) idirty (11659) itarget (138)
dirty (0) avail (1412) idirty (11931) itarget (131)
dirty (0) avail (1391) idirty (12201) itarget (127)
dirty (0) avail (1369) idirty (12451) itarget (121)
dirty (0) avail (1352) idirty (12678) itarget (118)
dirty (0) avail (1333) idirty (12891) itarget (112)
dirty (0) avail (39) idirty (13090) itarget (109)
start iozone 240 8192
dirty (1) avail (4294967170) idirty (13166) itarget (108)
dirty (20089) avail (4294945270) idirty (23995) itarget (717)
dirty (22612) avail (4294941728) idirty (26463) itarget (884)
dirty (21742) avail (4294949723) idirty (22935) itarget (860)
dirty (24738) avail (4294941088) idirty (27374) itarget (1091)
dirty (24257) avail (4294939934) idirty (28069) itarget (1201)
dirty (24342) avail (4294939880) idirty (28122) itarget (1294)
dirty (23702) avail (4294947984) idirty (24087) itarget (1364)
dirty (21202) avail (4294942527) idirty (26787) itarget (1721)
dirty (19703) avail (4294944428) idirty (25832) itarget (2156)
done:
dirty (7) avail (28783) idirty (33) itarget (1642)
dirty (7) avail (28743) idirty (33) itarget (1617)

Enthusiasm: wagers one bogobeer bdflush kinda sorta works right
in about an hour. (If I really understood those darn lists, I'd
fix it instead:)

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



This archive was generated by hypermail 2b29 : Tue Oct 31 2000 - 21:00:15 EST