----- Original Message ----- > From: "Xiao Ni" <xni@xxxxxxxxxx> > To: linux-raid@xxxxxxxxxxxxxxx > Cc: "jes sorensen" <jes.sorensen@xxxxxxxxxx> > 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@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html