Re: [RFC PATCH 7/6] savevm: Create a new continue flag to avoid resending block name

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

 



On 06/08/2010 11:32 PM, Alex Williamson wrote:
On Tue, 2010-06-08 at 15:11 -0600, Alex Williamson wrote:
Allows us to compress the protocol a bit.
...
@@ -284,6 +290,33 @@ int ram_save_live(Monitor *mon, QEMUFile *f, int stage, void *opaque)
      return (stage == 2)&&  (expected_time<= migrate_max_downtime());
  }

+static inline void *host_from_stream_offset(QEMUFile *f,
+                                            ram_addr_t offset,
+                                            int flags)

This probably shouldn't be inline.  When sending, we'll continue from
COMPRESS or PAGE.  We'd get out of sync on the recv if the compiler
created separate static blocks.  Compiler folks correct me if this can't
happen.

There is only one static variable even if the inlining happens in multiple places. In fact, inlining is totally transparent.

Example:

$ cat > x.c <<\EOF
#ifndef force_inline
#define force_inline inline __attribute__((always_inline))
#endif

static force_inline int f()
{
	static int i;
	return i++;
}

int main()
{
	printf ("%d\n", f());
	printf ("%d\n", f());
	printf ("%d\n", f());
	printf ("%d\n", f());
}
EOF
$ gcc -o - -Dforce_inline= -S x.c | egrep -cw _?f
7
$ gcc -o - -S x.c | egrep -cw _?f
0
$ gcc x.c && ./a.out
0
1
2
3

Paolo
--
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