* Will the write request starve? [not found] <1275697636.31829381.1409722922411.JavaMail.zimbra@redhat.com> @ 2014-09-03 5:59 ` Xiao Ni 2014-09-03 8:18 ` Xiao Ni 0 siblings, 1 reply; 2+ messages in thread From: Xiao Ni @ 2014-09-03 5:59 UTC (permalink / raw) To: linux-raid; +Cc: jes sorensen Hi all I meet a problem and I can't find the answer. Could you help me? When raid5d want to handle a request, it need to get stripes by __get_priority_stripe. In the __get_priority_stripe function, it always try to get stripe from handle_list. Make an assumption that the raid of level 5 is assembled with 4 disks, and the raid is normal. Now the a write request just want to write a single chunk, so we choose RMW and the stripe will put on the delay_list, then activate it and put it to hold_list. But if there are many read requests after the write request, when raid5d handle stripes it will get stripe from handle_list. So will the write request starve? Certainly I know it will not, because many tests have been done. But I can't find the reason why it will not starve. And there is a variable bypass_count, what's the function about it? If bypass_count < bypass_threshold, it can get a chance to wait for the next write request to get a full write. So avoid read requests. Am I right? Best Regards Xiao ^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Will the write request starve? 2014-09-03 5:59 ` Will the write request starve? Xiao Ni @ 2014-09-03 8:18 ` Xiao Ni 0 siblings, 0 replies; 2+ messages in thread From: Xiao Ni @ 2014-09-03 8:18 UTC (permalink / raw) To: linux-raid; +Cc: jes sorensen ----- Original Message ----- > From: "Xiao Ni" <xni@redhat.com> > To: linux-raid@vger.kernel.org > Cc: "jes sorensen" <jes.sorensen@redhat.com> > Sent: Wednesday, September 3, 2014 1:59:08 PM > Subject: Will the write request starve? > > Hi all > > I meet a problem and I can't find the answer. Could you help me? > When raid5d want to handle a request, it need to get stripes by > __get_priority_stripe. > In the __get_priority_stripe function, it always try to get stripe from > handle_list. > > Make an assumption that the raid of level 5 is assembled with 4 disks, and > the raid > is normal. Now the a write request just want to write a single chunk, so we > choose RMW Sorry, it'll choose RCW > and the stripe will put on the delay_list, then activate it and put it to > hold_list. > But if there are many read requests after the write request, when raid5d > handle stripes > it will get stripe from handle_list. So will the write request starve? > > Certainly I know it will not, because many tests have been done. But I > can't find > the reason why it will not starve. > > And there is a variable bypass_count, what's the function about it? If > bypass_count < > bypass_threshold, it can get a chance to wait for the next write request to > get a full write. > So avoid read requests. Am I right? > > Best Regards > Xiao > -- > 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 > ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-09-03 8:18 UTC | newest] Thread overview: 2+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <1275697636.31829381.1409722922411.JavaMail.zimbra@redhat.com> 2014-09-03 5:59 ` Will the write request starve? Xiao Ni 2014-09-03 8:18 ` Xiao Ni
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).