Re: linear writes to raid5

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

 



>>>>> Neil Brown (NB) writes:

 NB> raid5 shouldn't need to merge small requests into large requests.
 NB> That is what the 'elevator' or io_scheduler algorithms are for.  There
 NB> already merge multiple bio's into larger 'requests'.  If they aren't
 NB> doing that, then something needs to be fixed.

hmm. then why filesystems try to allocate big chunks and submit them
at once? what's the point to have bio subsystem?

 NB> It is certainly possible that raid5 is doing something wrong that
 NB> makes merging harder - maybe sending bios in the wrong order, or
 NB> sending them with unfortunate timing.  And if that is the case it
 NB> certainly makes sense to fix it.  
 NB> But I really don't see that raid5 should be merging requests together
 NB> - that is for a lower-level to do.

well, another thing is that it's extremly cheap to merge them in raid5
because we know request size and what stripes it covers. at same time
 block layer doesn't know that and need to _search_ where to merge to.

 NB> This implies 3millisecs have passed since the queue was plugged, which
 NB> is a long time.....
 NB> I guess what could be happening is that the queue is being unplugged
 NB> every 3msec whether it is really needed or not.
 NB> i.e. we plug the queue, more requests come, the stripes we plugged the
 NB> queue for get filled up and processes, but the timer never gets reset.
 NB> Maybe we need to find a way to call blk_remove_plug when there are no
 NB> stripes waiting for pre-read...

 NB> Alternately, stripes on the delayed queue could get a timestamp, and
 NB> only get removed if they are older than 3msec.  Then we would replug
 NB> the queue if there were some new stripes left....

could we somehow mark all stripes that belong to given incoming request
in make_request() and skip them in raid5_activate_delayed() ? after the
whole incoming request is processed, drop the mark.

thanks, Alex
-
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