Re: [PATCH v1 3/3] kvm tools: Add QCOW level2 caching support

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

 



On Wed, May 18, 2011 at 11:27 AM, Pekka Enberg <penberg@xxxxxxxxxx> wrote:
> On Wed, May 18, 2011 at 1:17 PM, Prasad Joshi <prasadjoshi124@xxxxxxxxx> wrote:
>> QCOW uses two tables level1 (L1) table and level2
>> (L2) table. The L1 table points to offset of L2
>> table. When a QCOW image is probed, the L1 table is
>> cached in the memory to avoid reading it from disk
>> on every reference. This caching imporves the
>> performance. The similar performance improvment can
>> be observed when L2 tables are also cached. It is
>> impossible to cache all of the L2 tables because of
>> the memory constraint. The patch adds L2 table
>> caching capability for upto 128 L2 tables, it uses
>> combination of RB tree and List to manage the L2
>> cached tables. The link list implementation helps
>> in building simple LRU structure and RB tree helps
>> in improving the search time during read/write
>> operations.
>
> Can you please split that text into more readable paragraphs?

Okay will do.

> The line
> wrapping column seems rather aggressive that's also contributing to
> unreadability.
>
>> @@ -16,6 +16,153 @@
>>  #include <linux/kernel.h>
>>  #include <linux/types.h>
>>
>> +static inline int insert(struct rb_root *root, struct qcow_l2_cache *new)
>> +{
>> +       struct rb_node **link = &(root->rb_node), *parent = NULL;
>> +       u64 offset = new->offset;
>> +
>> +       /* search the tree */
>> +       while (*link) {
>> +               struct qcow_l2_cache *t;
>> +
>> +               t = rb_entry(*link, struct qcow_l2_cache, node);
>> +               if (!t)
>> +                       goto error;
>> +
>
> [snip, snip]
>
> This function and others are way to big to be marked as "inline".
>
>                       Pekka
>
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux