Messages in this thread | | | Date | Tue, 27 May 2014 08:49:12 -0400 | From | Vivek Goyal <> | Subject | Re: [PATCH RFC] blkcg: prepare blkcg knobs for default hierarchy |
| |
On Fri, May 23, 2014 at 01:39:57PM -0400, Tejun Heo wrote: > Hello, Vivek. > > On Wed, Apr 23, 2014 at 03:21:09PM -0400, Vivek Goyal wrote: > > What about sync/async differentiation? Throttling layer seems to flag a request sync > > only if bio->bi_rw flag has REQ_SYNC set. While CFQ seems to consider > > request sync if bio is either read or bio->bi_rw has REQ_SYNC flag set. > > Working on this again, AFAICS, both treat REQ_SYNC the same way as far > as stats are concerned. If SYNC is set, it's sync; otherwise, it's > accounted as async whether read or write.
Ok, that seems to be the case.
static inline void blkg_rwstat_add(struct blkg_rwstat *rwstat, int rw, uint64_t val) { u64_stats_update_begin(&rwstat->syncp);
if (rw & REQ_SYNC) rwstat->cnt[BLKG_RWSTAT_SYNC] += val; else rwstat->cnt[BLKG_RWSTAT_ASYNC] += val;
u64_stats_update_end(&rwstat->syncp); }
So sync will represent not policy specific interpretation of sync but based on sync flag on request.
I guess it is fine. So far nobody seems to be complaining.
Thanks Vivek
| |