open-power / HTX

Apache License 2.0
14 stars 19 forks source link

hung_io_design_change #147

Closed preeti-dhir closed 5 years ago

preeti-dhir commented 6 years ago

Problem:

hxestorage exerciser reporting IO hung: Before starting any IO. each thread will create an entry of LBA no.s where it is going to do IO and the current time. This entry will be there till the time thread finished its entire operation e.g. "WRC". Once, entire operation is done, entry will be removed.In the meantime, hang_monitor thread will keep on scanning all the entries at regular interval. If it finds any entry older than 10 min. it will report that IO is hung. Problem here is, the time should not be considered for the entire operation. It should be for each inidividual IO in that. Solution:

This needed a design change as below: In the new design, the time taken will be considered for each individual IO in the operation. SO, entry in the array will be created before starting the operation to update the LBA range. But time will be updated only before starting the actual IO operation and a flag will be set to inform that IO is in progress. The difference of this time and current time will be taken into consideration only when "IO in progress" flag will be set.