Will the write request starve?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
--
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




[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux