From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Clements Subject: Re: [ANNOUNCE][PATCH 2.6] md: persistent (file-backed) bitmap and async writes Date: Tue, 21 Sep 2004 15:19:03 -0400 Sender: linux-raid-owner@vger.kernel.org Message-ID: <41507EA7.1000905@steeleye.com> References: <40198E85.29EBC8E0@SteelEye.com> <16422.62911.755570.855200@notabene.cse.unsw.edu.au> <4027E342.D02202F1@SteelEye.com> <16424.8182.876520.280031@notabene.cse.unsw.edu.au> <402D3A86.97CF894F@SteelEye.com> <16456.2775.641721.204171@notabene.cse.unsw.edu.au> <4048F9AA.1BBD67F@SteelEye.com> <406B1024.7BF88C@SteelEye.com> <16528.49083.998593.199805@cse.unsw.edu.au> <40C6273B.2060200@steeleye.com> <16590.38597.170409.499394@cse.unsw.edu.au> <40D9FA9E.9010003@steeleye.com> <40F7E50F.2040308@steeleye.com> <16649.61212.310271.36561@cse.unsw.edu.au> <4119400A.40307@steeleye.com> <16668.12228.187383.596856@cse.unsw.edu.au> <414F9FD4.4070308@steeleye.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <414F9FD4.4070308@steeleye.com> To: Neil Brown Cc: jejb@steeleye.com, linux-raid@vger.kernel.org List-Id: linux-raid.ids Paul Clements wrote: > OK, here we go again. The patch has been updated to 2.6.9-rc2 and mdadm > 1.7.0, and I've implemented the suggestions you've made below... > > Patches: http://parisc-linux.org/~jejb/md_bitmap/ Well, I ran some simple write performance benchmarks today and I was stunned to find the bitmap performance was terrible. After debugging a while, I realized the problem was having the bitmap daemon do the wait_on_page_writeback...if the daemon got caught at the wrong time, it could take quite a while to come back around and do the writeback. So, I added yet another thread, the bitmap writeback daemon (whose sole purpose is to wait for page writebacks) and now things are running excellently. My simple benchmarks, which previously showed about a 25-30% slowdown when using a bitmap vs. not using one, now show only a 4% slowdown, which is pretty close to the margin of error in the test itself. Check out the new patch here: http://parisc-linux.org/~jejb/md_bitmap/md_bitmap_2_37_2_6_9_rc2.diff Thanks again, Paul > Neil Brown wrote: > >> This is definitely heading in the right direction. However I think >> you have missed some of the subtleties of plugging. > > > [snip] > >> That should then have the bitmap updates happening before the >> data updates, and should cluster bitmap updates better. > > > OK, I've fixed that. > >> The next step would be to stop write_page from being synchronous - I'm >> not comfortable about ->unplug-fn having to wait for disk io. > > > Well, it still does have to wait for the bitmap writes to complete > before letting the regular writes go, but I see your point about the > writes being submitted simultaneously (nearly) rather than being > completely serialized. > >> This looks to be quite awkward as there is not call-back that happens >> when writeback on a page is completed. You need to have a kernel >> thread to wait for the pages to complete. I would get the >> bitmap_daemon to do this. > > > OK, this is what I've done...there didn't seem to be a better place to > do it. > >> Does that make sense? > > > Certainly does, and seems to work... > - > To unsubscribe from this list: send the line "unsubscribe linux-raid" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >