[dm-devel] [PATCH 0/4] Integrate dm-latency functionality to dm-statistics
Mikulas Patocka
mpatocka at redhat.com
Mon Jun 15 12:47:38 UTC 2015
On Sun, 14 Jun 2015, Coly Li wrote:
> ? 15/6/10 ??5:20, Mikulas Patocka ??:
> > Hi
> >
> > Here I'm sending patches that add funcionality provided by dm-latency into
> > dm-statistics framework. Dm-latency was introduced in this post
> > https://www.redhat.com/archives/dm-devel/2015-February/msg00158.html ,
> > however, there is already similar framework dm-statistics in the kernel.
> > In order to have cleaner and easier to maintain code, it is better to
> > integrate dm-latency functionality into dm-statistics, rather than having
> > two frameworks that do similar things.
> >
> > This patch series makes these changes:
> > * it is possible to use precise time measurement with nanosecond
> > granularity (previously, time was measured in jiffies)
> > * it is possible to collect histogram of latencies. The histogram
> > boundaries may be selected by the user and there is unlimited number of
> > possible boundaries (in dm-latency, the histogram boundaries were fixed)
> > * it is possible to use dm-statistics on multipath
> >
> > The documentation of these extensions is in
> > Documentation/device-mapper/statistics.txt
> >
> > I'd like to ask people who designed dm-latency to check this patchset, try
> > to use it and tell us if it provides sufficient functionality to them (the
> > indended functinality of dm-latency was to predict hard disk failures from
> > i/o request latency histogram).
> >
>
> Hi Mikulas,
>
> I was in travel last week, sorry for late response. Here are some
> comments from me, just for your information,
>
> 1, If I understand correctly, latency histogram boundaries are organized
> by list in your implementation, and the list is searched in linear
> order. We had a similar but a little bit simple implementation, with
> very high I/O request work load on multiple hard disks, we observed 1%
> CPU performance cost. This is why dm-latency uses a very simple static
> array of counters to record I/O latency. I suggest you should do some
> benchmarks to compare the performance cost.
It is searched using binary search - so the complexity is logarithmic.
> 2, There should be a maximum latency histogram boundaries limitation.
> Maybe you do it in the patch and I missed it, that's should be my fault.
There is no maximum - and there doesn't need to be any maximum because the
array is allocated dynamically.
> 3, in message_stats_create() I see more code to handle arguments
> checking. hmm, I don't check this cold block very carefully, but I
> suggest that string checking in kernel space should be very careful, if
> you may simplify current designment and remove the code for arguments
> checking, it might be better.
I don't know why should I remove the code for arguments checking. We check
arguments in the kernel, even if the function may be only called by root -
to prevent bugs in userspace tools from causing kernel crash.
> 4, there are some minor suggestions, I will add my comments in other
> emails.
>
> For rest of the patch set, they are good to me. Thanks for your effort
> to make a good start :-)
>
> Coly
Mikulas
More information about the dm-devel
mailing list