Messages in this thread | | | Date | Sun, 19 Apr 2009 17:51:14 +0900 | From | Tejun Heo <> | Subject | Re: [PATCH] [RFC] make hd_struct->in_flight atomic to avoid diskstat corruption |
| |
Hello,
Jens Axboe wrote: > On Thu, Apr 16 2009, Tejun Heo wrote: >> Hello, Nikanth, Jens. >> >> Nikanth Karthikesan wrote: >>>> Hmm. Did you observe this behaviour? >>> Sorry, not on current kernels. But on a very old 2.6.5 kernel. >>> >>> Reading Documentation/iostats.txt and the changelog of commit >>> e71bf0d0ee89e51b92776391c5634938236977d5 made me assume that this could be a >>> problem even today. >> The only problem we can run into there is if a request doesn't get >> attributed to a partition on issue but gets attributed to a partition >> on completion, which seems to be possible if a new partition is added >> while IO on the whole device which fell into the new partition area is >> already in progress, which, on the first glance, seems possible if the >> admin tries really hard. I think we can get around the problem by >> doing part->in_flight = min(max(new_val, part0->in_flight), 0) in >> dec_in_flight(). This is pretty extreme corner case tho. > > Heh, that is pretty extreme. I'd prefer just quiescing the queue, > perhaps we should do that for partition map swaps.
Yeah, I think that would be the better approach for swapping ptbl. RCU isn't really necessary there.
Thanks.
-- tejun
| |