qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Orit Wasserman <owasserm@redhat.com>
To: Juan Quintela <quintela@redhat.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 01/38] bitmap: use long as index
Date: Tue, 24 Dec 2013 15:24:22 +0200	[thread overview]
Message-ID: <52B98B06.3090904@redhat.com> (raw)
In-Reply-To: <1387293974-24718-2-git-send-email-quintela@redhat.com>

On 12/17/2013 05:25 PM, Juan Quintela wrote:
> Move index and size fields from int to long.  We need that for
> migration.  long is 64 bits on sane architectures, and 32bits should
> be enough on all the 32bits architectures.
>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
>   include/qemu/bitmap.h | 77 ++++++++++++++++++++++++++-------------------------
>   include/qemu/bitops.h | 14 +++++-----
>   util/bitmap.c         | 60 +++++++++++++++++++--------------------
>   3 files changed, 76 insertions(+), 75 deletions(-)
>
> diff --git a/include/qemu/bitmap.h b/include/qemu/bitmap.h
> index 308bbb7..afdd257 100644
> --- a/include/qemu/bitmap.h
> +++ b/include/qemu/bitmap.h
> @@ -31,7 +31,7 @@
>    * bitmap_andnot(dst, src1, src2, nbits)	*dst = *src1 & ~(*src2)
>    * bitmap_complement(dst, src, nbits)		*dst = ~(*src)
>    * bitmap_equal(src1, src2, nbits)		Are *src1 and *src2 equal?
> - * bitmap_intersects(src1, src2, nbits) 	Do *src1 and *src2 overlap?
> + * bitmap_intersects(src1, src2, nbits)         Do *src1 and *src2 overlap?
>    * bitmap_empty(src, nbits)			Are all bits zero in *src?
>    * bitmap_full(src, nbits)			Are all bits set in *src?
>    * bitmap_set(dst, pos, nbits)			Set specified bit area
> @@ -62,71 +62,71 @@
>           )
>
>   #define DECLARE_BITMAP(name,bits)                  \
> -	unsigned long name[BITS_TO_LONGS(bits)]
> +        unsigned long name[BITS_TO_LONGS(bits)]
>
>   #define small_nbits(nbits)                      \
> -	((nbits) <= BITS_PER_LONG)
> +        ((nbits) <= BITS_PER_LONG)
>
> -int slow_bitmap_empty(const unsigned long *bitmap, int bits);
> -int slow_bitmap_full(const unsigned long *bitmap, int bits);
> +int slow_bitmap_empty(const unsigned long *bitmap, long bits);
> +int slow_bitmap_full(const unsigned long *bitmap, long bits);
>   int slow_bitmap_equal(const unsigned long *bitmap1,
> -                   const unsigned long *bitmap2, int bits);
> +                      const unsigned long *bitmap2, long bits);
>   void slow_bitmap_complement(unsigned long *dst, const unsigned long *src,
> -                         int bits);
> +                            long bits);
>   void slow_bitmap_shift_right(unsigned long *dst,
> -                          const unsigned long *src, int shift, int bits);
> +                             const unsigned long *src, int shift, long bits);
>   void slow_bitmap_shift_left(unsigned long *dst,
> -                         const unsigned long *src, int shift, int bits);
> +                            const unsigned long *src, int shift, long bits);
>   int slow_bitmap_and(unsigned long *dst, const unsigned long *bitmap1,
> -                 const unsigned long *bitmap2, int bits);
> +                    const unsigned long *bitmap2, long bits);
>   void slow_bitmap_or(unsigned long *dst, const unsigned long *bitmap1,
> -                 const unsigned long *bitmap2, int bits);
> +                    const unsigned long *bitmap2, long bits);
>   void slow_bitmap_xor(unsigned long *dst, const unsigned long *bitmap1,
> -                  const unsigned long *bitmap2, int bits);
> +                     const unsigned long *bitmap2, long bits);
>   int slow_bitmap_andnot(unsigned long *dst, const unsigned long *bitmap1,
> -                    const unsigned long *bitmap2, int bits);
> +                       const unsigned long *bitmap2, long bits);
>   int slow_bitmap_intersects(const unsigned long *bitmap1,
> -			const unsigned long *bitmap2, int bits);
> +                           const unsigned long *bitmap2, long bits);
>
> -static inline unsigned long *bitmap_new(int nbits)
> +static inline unsigned long *bitmap_new(long nbits)
>   {
> -    int len = BITS_TO_LONGS(nbits) * sizeof(unsigned long);
> +    long len = BITS_TO_LONGS(nbits) * sizeof(unsigned long);
>       return g_malloc0(len);
>   }
>
> -static inline void bitmap_zero(unsigned long *dst, int nbits)
> +static inline void bitmap_zero(unsigned long *dst, long nbits)
>   {
>       if (small_nbits(nbits)) {
>           *dst = 0UL;
>       } else {
> -        int len = BITS_TO_LONGS(nbits) * sizeof(unsigned long);
> +        long len = BITS_TO_LONGS(nbits) * sizeof(unsigned long);
>           memset(dst, 0, len);
>       }
>   }
>
> -static inline void bitmap_fill(unsigned long *dst, int nbits)
> +static inline void bitmap_fill(unsigned long *dst, long nbits)
>   {
>       size_t nlongs = BITS_TO_LONGS(nbits);
>       if (!small_nbits(nbits)) {
> -        int len = (nlongs - 1) * sizeof(unsigned long);
> +        long len = (nlongs - 1) * sizeof(unsigned long);
>           memset(dst, 0xff,  len);
>       }
>       dst[nlongs - 1] = BITMAP_LAST_WORD_MASK(nbits);
>   }
>
>   static inline void bitmap_copy(unsigned long *dst, const unsigned long *src,
> -                               int nbits)
> +                               long nbits)
>   {
>       if (small_nbits(nbits)) {
>           *dst = *src;
>       } else {
> -        int len = BITS_TO_LONGS(nbits) * sizeof(unsigned long);
> +        long len = BITS_TO_LONGS(nbits) * sizeof(unsigned long);
>           memcpy(dst, src, len);
>       }
>   }
>
>   static inline int bitmap_and(unsigned long *dst, const unsigned long *src1,
> -                             const unsigned long *src2, int nbits)
> +                             const unsigned long *src2, long nbits)
>   {
>       if (small_nbits(nbits)) {
>           return (*dst = *src1 & *src2) != 0;
> @@ -135,7 +135,7 @@ static inline int bitmap_and(unsigned long *dst, const unsigned long *src1,
>   }
>
>   static inline void bitmap_or(unsigned long *dst, const unsigned long *src1,
> -			const unsigned long *src2, int nbits)
> +                             const unsigned long *src2, long nbits)
>   {
>       if (small_nbits(nbits)) {
>           *dst = *src1 | *src2;
> @@ -145,7 +145,7 @@ static inline void bitmap_or(unsigned long *dst, const unsigned long *src1,
>   }
>
>   static inline void bitmap_xor(unsigned long *dst, const unsigned long *src1,
> -			const unsigned long *src2, int nbits)
> +                              const unsigned long *src2, long nbits)
>   {
>       if (small_nbits(nbits)) {
>           *dst = *src1 ^ *src2;
> @@ -155,7 +155,7 @@ static inline void bitmap_xor(unsigned long *dst, const unsigned long *src1,
>   }
>
>   static inline int bitmap_andnot(unsigned long *dst, const unsigned long *src1,
> -			const unsigned long *src2, int nbits)
> +                                const unsigned long *src2, long nbits)
>   {
>       if (small_nbits(nbits)) {
>           return (*dst = *src1 & ~(*src2)) != 0;
> @@ -163,8 +163,9 @@ static inline int bitmap_andnot(unsigned long *dst, const unsigned long *src1,
>       return slow_bitmap_andnot(dst, src1, src2, nbits);
>   }
>
> -static inline void bitmap_complement(unsigned long *dst, const unsigned long *src,
> -			int nbits)
> +static inline void bitmap_complement(unsigned long *dst,
> +                                     const unsigned long *src,
> +                                     long nbits)
>   {
>       if (small_nbits(nbits)) {
>           *dst = ~(*src) & BITMAP_LAST_WORD_MASK(nbits);
> @@ -174,7 +175,7 @@ static inline void bitmap_complement(unsigned long *dst, const unsigned long *sr
>   }
>
>   static inline int bitmap_equal(const unsigned long *src1,
> -			const unsigned long *src2, int nbits)
> +                               const unsigned long *src2, long nbits)
>   {
>       if (small_nbits(nbits)) {
>           return ! ((*src1 ^ *src2) & BITMAP_LAST_WORD_MASK(nbits));
> @@ -183,7 +184,7 @@ static inline int bitmap_equal(const unsigned long *src1,
>       }
>   }
>
> -static inline int bitmap_empty(const unsigned long *src, int nbits)
> +static inline int bitmap_empty(const unsigned long *src, long nbits)
>   {
>       if (small_nbits(nbits)) {
>           return ! (*src & BITMAP_LAST_WORD_MASK(nbits));
> @@ -192,7 +193,7 @@ static inline int bitmap_empty(const unsigned long *src, int nbits)
>       }
>   }
>
> -static inline int bitmap_full(const unsigned long *src, int nbits)
> +static inline int bitmap_full(const unsigned long *src, long nbits)
>   {
>       if (small_nbits(nbits)) {
>           return ! (~(*src) & BITMAP_LAST_WORD_MASK(nbits));
> @@ -202,7 +203,7 @@ static inline int bitmap_full(const unsigned long *src, int nbits)
>   }
>
>   static inline int bitmap_intersects(const unsigned long *src1,
> -			const unsigned long *src2, int nbits)
> +                                    const unsigned long *src2, long nbits)
>   {
>       if (small_nbits(nbits)) {
>           return ((*src1 & *src2) & BITMAP_LAST_WORD_MASK(nbits)) != 0;
> @@ -211,12 +212,12 @@ static inline int bitmap_intersects(const unsigned long *src1,
>       }
>   }
>
> -void bitmap_set(unsigned long *map, int i, int len);
> -void bitmap_clear(unsigned long *map, int start, int nr);
> +void bitmap_set(unsigned long *map, long i, long len);
> +void bitmap_clear(unsigned long *map, long start, long nr);
>   unsigned long bitmap_find_next_zero_area(unsigned long *map,
> -					 unsigned long size,
> -					 unsigned long start,
> -					 unsigned int nr,
> -					 unsigned long align_mask);
> +                                         unsigned long size,
> +                                         unsigned long start,
> +                                         unsigned long nr,
> +                                         unsigned long align_mask);
>
>   #endif /* BITMAP_H */
> diff --git a/include/qemu/bitops.h b/include/qemu/bitops.h
> index 304c90c..340b1e7 100644
> --- a/include/qemu/bitops.h
> +++ b/include/qemu/bitops.h
> @@ -28,7 +28,7 @@
>    * @nr: the bit to set
>    * @addr: the address to start counting from
>    */
> -static inline void set_bit(int nr, unsigned long *addr)
> +static inline void set_bit(long nr, unsigned long *addr)
>   {
>   	unsigned long mask = BIT_MASK(nr);
>           unsigned long *p = addr + BIT_WORD(nr);
> @@ -41,7 +41,7 @@ static inline void set_bit(int nr, unsigned long *addr)
>    * @nr: Bit to clear
>    * @addr: Address to start counting from
>    */
> -static inline void clear_bit(int nr, unsigned long *addr)
> +static inline void clear_bit(long nr, unsigned long *addr)
>   {
>   	unsigned long mask = BIT_MASK(nr);
>           unsigned long *p = addr + BIT_WORD(nr);
> @@ -54,7 +54,7 @@ static inline void clear_bit(int nr, unsigned long *addr)
>    * @nr: Bit to change
>    * @addr: Address to start counting from
>    */
> -static inline void change_bit(int nr, unsigned long *addr)
> +static inline void change_bit(long nr, unsigned long *addr)
>   {
>   	unsigned long mask = BIT_MASK(nr);
>           unsigned long *p = addr + BIT_WORD(nr);
> @@ -67,7 +67,7 @@ static inline void change_bit(int nr, unsigned long *addr)
>    * @nr: Bit to set
>    * @addr: Address to count from
>    */
> -static inline int test_and_set_bit(int nr, unsigned long *addr)
> +static inline int test_and_set_bit(long nr, unsigned long *addr)
>   {
>   	unsigned long mask = BIT_MASK(nr);
>           unsigned long *p = addr + BIT_WORD(nr);
> @@ -82,7 +82,7 @@ static inline int test_and_set_bit(int nr, unsigned long *addr)
>    * @nr: Bit to clear
>    * @addr: Address to count from
>    */
> -static inline int test_and_clear_bit(int nr, unsigned long *addr)
> +static inline int test_and_clear_bit(long nr, unsigned long *addr)
>   {
>   	unsigned long mask = BIT_MASK(nr);
>           unsigned long *p = addr + BIT_WORD(nr);
> @@ -97,7 +97,7 @@ static inline int test_and_clear_bit(int nr, unsigned long *addr)
>    * @nr: Bit to change
>    * @addr: Address to count from
>    */
> -static inline int test_and_change_bit(int nr, unsigned long *addr)
> +static inline int test_and_change_bit(long nr, unsigned long *addr)
>   {
>   	unsigned long mask = BIT_MASK(nr);
>           unsigned long *p = addr + BIT_WORD(nr);
> @@ -112,7 +112,7 @@ static inline int test_and_change_bit(int nr, unsigned long *addr)
>    * @nr: bit number to test
>    * @addr: Address to start counting from
>    */
> -static inline int test_bit(int nr, const unsigned long *addr)
> +static inline int test_bit(long nr, const unsigned long *addr)
>   {
>   	return 1UL & (addr[BIT_WORD(nr)] >> (nr & (BITS_PER_LONG-1)));
>   }
> diff --git a/util/bitmap.c b/util/bitmap.c
> index 687841d..9c6bb52 100644
> --- a/util/bitmap.c
> +++ b/util/bitmap.c
> @@ -36,9 +36,9 @@
>    * endian architectures.
>    */
>
> -int slow_bitmap_empty(const unsigned long *bitmap, int bits)
> +int slow_bitmap_empty(const unsigned long *bitmap, long bits)
>   {
> -    int k, lim = bits/BITS_PER_LONG;
> +    long k, lim = bits/BITS_PER_LONG;
>
>       for (k = 0; k < lim; ++k) {
>           if (bitmap[k]) {
> @@ -54,9 +54,9 @@ int slow_bitmap_empty(const unsigned long *bitmap, int bits)
>       return 1;
>   }
>
> -int slow_bitmap_full(const unsigned long *bitmap, int bits)
> +int slow_bitmap_full(const unsigned long *bitmap, long bits)
>   {
> -    int k, lim = bits/BITS_PER_LONG;
> +    long k, lim = bits/BITS_PER_LONG;
>
>       for (k = 0; k < lim; ++k) {
>           if (~bitmap[k]) {
> @@ -74,9 +74,9 @@ int slow_bitmap_full(const unsigned long *bitmap, int bits)
>   }
>
>   int slow_bitmap_equal(const unsigned long *bitmap1,
> -                      const unsigned long *bitmap2, int bits)
> +                      const unsigned long *bitmap2, long bits)
>   {
> -    int k, lim = bits/BITS_PER_LONG;
> +    long k, lim = bits/BITS_PER_LONG;
>
>       for (k = 0; k < lim; ++k) {
>           if (bitmap1[k] != bitmap2[k]) {
> @@ -94,9 +94,9 @@ int slow_bitmap_equal(const unsigned long *bitmap1,
>   }
>
>   void slow_bitmap_complement(unsigned long *dst, const unsigned long *src,
> -                            int bits)
> +                            long bits)
>   {
> -    int k, lim = bits/BITS_PER_LONG;
> +    long k, lim = bits/BITS_PER_LONG;
>
>       for (k = 0; k < lim; ++k) {
>           dst[k] = ~src[k];
> @@ -108,10 +108,10 @@ void slow_bitmap_complement(unsigned long *dst, const unsigned long *src,
>   }
>
>   int slow_bitmap_and(unsigned long *dst, const unsigned long *bitmap1,
> -                    const unsigned long *bitmap2, int bits)
> +                    const unsigned long *bitmap2, long bits)
>   {
> -    int k;
> -    int nr = BITS_TO_LONGS(bits);
> +    long k;
> +    long nr = BITS_TO_LONGS(bits);
>       unsigned long result = 0;
>
>       for (k = 0; k < nr; k++) {
> @@ -121,10 +121,10 @@ int slow_bitmap_and(unsigned long *dst, const unsigned long *bitmap1,
>   }
>
>   void slow_bitmap_or(unsigned long *dst, const unsigned long *bitmap1,
> -                    const unsigned long *bitmap2, int bits)
> +                    const unsigned long *bitmap2, long bits)
>   {
> -    int k;
> -    int nr = BITS_TO_LONGS(bits);
> +    long k;
> +    long nr = BITS_TO_LONGS(bits);
>
>       for (k = 0; k < nr; k++) {
>           dst[k] = bitmap1[k] | bitmap2[k];
> @@ -132,10 +132,10 @@ void slow_bitmap_or(unsigned long *dst, const unsigned long *bitmap1,
>   }
>
>   void slow_bitmap_xor(unsigned long *dst, const unsigned long *bitmap1,
> -                     const unsigned long *bitmap2, int bits)
> +                     const unsigned long *bitmap2, long bits)
>   {
> -    int k;
> -    int nr = BITS_TO_LONGS(bits);
> +    long k;
> +    long nr = BITS_TO_LONGS(bits);
>
>       for (k = 0; k < nr; k++) {
>           dst[k] = bitmap1[k] ^ bitmap2[k];
> @@ -143,10 +143,10 @@ void slow_bitmap_xor(unsigned long *dst, const unsigned long *bitmap1,
>   }
>
>   int slow_bitmap_andnot(unsigned long *dst, const unsigned long *bitmap1,
> -                       const unsigned long *bitmap2, int bits)
> +                       const unsigned long *bitmap2, long bits)
>   {
> -    int k;
> -    int nr = BITS_TO_LONGS(bits);
> +    long k;
> +    long nr = BITS_TO_LONGS(bits);
>       unsigned long result = 0;
>
>       for (k = 0; k < nr; k++) {
> @@ -157,10 +157,10 @@ int slow_bitmap_andnot(unsigned long *dst, const unsigned long *bitmap1,
>
>   #define BITMAP_FIRST_WORD_MASK(start) (~0UL << ((start) % BITS_PER_LONG))
>
> -void bitmap_set(unsigned long *map, int start, int nr)
> +void bitmap_set(unsigned long *map, long start, long nr)
>   {
>       unsigned long *p = map + BIT_WORD(start);
> -    const int size = start + nr;
> +    const long size = start + nr;
>       int bits_to_set = BITS_PER_LONG - (start % BITS_PER_LONG);
>       unsigned long mask_to_set = BITMAP_FIRST_WORD_MASK(start);
>
> @@ -177,10 +177,10 @@ void bitmap_set(unsigned long *map, int start, int nr)
>       }
>   }
>
> -void bitmap_clear(unsigned long *map, int start, int nr)
> +void bitmap_clear(unsigned long *map, long start, long nr)
>   {
>       unsigned long *p = map + BIT_WORD(start);
> -    const int size = start + nr;
> +    const long size = start + nr;
>       int bits_to_clear = BITS_PER_LONG - (start % BITS_PER_LONG);
>       unsigned long mask_to_clear = BITMAP_FIRST_WORD_MASK(start);
>
> @@ -212,10 +212,10 @@ void bitmap_clear(unsigned long *map, int start, int nr)
>    * power of 2. A @align_mask of 0 means no alignment is required.
>    */
>   unsigned long bitmap_find_next_zero_area(unsigned long *map,
> -					 unsigned long size,
> -					 unsigned long start,
> -					 unsigned int nr,
> -					 unsigned long align_mask)
> +                                         unsigned long size,
> +                                         unsigned long start,
> +                                         unsigned long nr,
> +                                         unsigned long align_mask)
>   {
>       unsigned long index, end, i;
>   again:
> @@ -237,9 +237,9 @@ again:
>   }
>
>   int slow_bitmap_intersects(const unsigned long *bitmap1,
> -                           const unsigned long *bitmap2, int bits)
> +                           const unsigned long *bitmap2, long bits)
>   {
> -    int k, lim = bits/BITS_PER_LONG;
> +    long k, lim = bits/BITS_PER_LONG;
>
>       for (k = 0; k < lim; ++k) {
>           if (bitmap1[k] & bitmap2[k]) {
>

Reviewed-by: Orit Wasserman <owasserm@redhat.com>

  parent reply	other threads:[~2013-12-24 13:24 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-17 15:25 [Qemu-devel] [PATCH v3 00/38] bitmap queue Juan Quintela
2013-12-17 15:25 ` [Qemu-devel] [PATCH 01/38] bitmap: use long as index Juan Quintela
2013-12-17 18:05   ` Eric Blake
2013-12-17 18:27     ` Stefan Weil
2013-12-17 20:21     ` Juan Quintela
2013-12-24 13:24   ` Orit Wasserman [this message]
2013-12-17 15:25 ` [Qemu-devel] [PATCH 02/38] memory: cpu_physical_memory_set_dirty_flags() result is never used Juan Quintela
2013-12-17 15:25 ` [Qemu-devel] [PATCH 03/38] memory: cpu_physical_memory_set_dirty_range() return void Juan Quintela
2013-12-17 15:25 ` [Qemu-devel] [PATCH 04/38] exec: use accessor function to know if memory is dirty Juan Quintela
2013-12-17 15:25 ` [Qemu-devel] [PATCH 05/38] memory: create function to set a single dirty bit Juan Quintela
2013-12-17 15:25 ` [Qemu-devel] [PATCH 06/38] exec: create function to get " Juan Quintela
2013-12-17 15:25 ` [Qemu-devel] [PATCH 07/38] memory: make cpu_physical_memory_is_dirty return bool Juan Quintela
2013-12-18 10:08   ` Orit Wasserman
2013-12-17 15:25 ` [Qemu-devel] [PATCH 08/38] memory: all users of cpu_physical_memory_get_dirty used only one flag Juan Quintela
2013-12-18 10:09   ` Orit Wasserman
2013-12-17 15:25 ` [Qemu-devel] [PATCH 09/38] memory: set single dirty flags when possible Juan Quintela
2013-12-18 10:10   ` Orit Wasserman
2013-12-17 15:25 ` [Qemu-devel] [PATCH 10/38] memory: cpu_physical_memory_set_dirty_range() always dirty all flags Juan Quintela
2013-12-18 10:12   ` Orit Wasserman
2013-12-17 15:25 ` [Qemu-devel] [PATCH 11/38] memory: cpu_physical_memory_mask_dirty_range() always clears a single flag Juan Quintela
2013-12-18 10:14   ` Orit Wasserman
2013-12-17 15:25 ` [Qemu-devel] [PATCH 12/38] memory: use bit 2 for migration Juan Quintela
2013-12-18 10:15   ` Orit Wasserman
2013-12-17 15:25 ` [Qemu-devel] [PATCH 13/38] memory: make sure that client is always inside range Juan Quintela
2013-12-18 10:16   ` Orit Wasserman
2013-12-17 15:25 ` [Qemu-devel] [PATCH 14/38] memory: only resize dirty bitmap when memory size increases Juan Quintela
2013-12-18 10:17   ` Orit Wasserman
2013-12-17 15:25 ` [Qemu-devel] [PATCH 15/38] memory: cpu_physical_memory_clear_dirty_flag() result is never used Juan Quintela
2013-12-18 10:17   ` Orit Wasserman
2013-12-17 15:25 ` [Qemu-devel] [PATCH 16/38] bitmap: Add bitmap_zero_extend operation Juan Quintela
2013-12-18 10:18   ` Orit Wasserman
2013-12-17 15:25 ` [Qemu-devel] [PATCH 17/38] memory: split dirty bitmap into three Juan Quintela
2013-12-18 10:22   ` Orit Wasserman
2013-12-17 15:25 ` [Qemu-devel] [PATCH 18/38] memory: unfold cpu_physical_memory_clear_dirty_flag() in its only user Juan Quintela
2013-12-18 10:28   ` Orit Wasserman
2013-12-18 10:36   ` Orit Wasserman
2013-12-17 15:25 ` [Qemu-devel] [PATCH 19/38] memory: unfold cpu_physical_memory_set_dirty() " Juan Quintela
2013-12-18 10:28   ` Orit Wasserman
2013-12-17 15:25 ` [Qemu-devel] [PATCH 20/38] memory: unfold cpu_physical_memory_set_dirty_flag() Juan Quintela
2013-12-18 10:29   ` Orit Wasserman
2013-12-17 15:25 ` [Qemu-devel] [PATCH 21/38] memory: make cpu_physical_memory_get_dirty() the main function Juan Quintela
2013-12-18 10:30   ` Orit Wasserman
2013-12-17 15:25 ` [Qemu-devel] [PATCH 22/38] memory: cpu_physical_memory_get_dirty() is used as returning a bool Juan Quintela
2013-12-18 10:33   ` Orit Wasserman
2013-12-17 15:25 ` [Qemu-devel] [PATCH 23/38] memory: s/mask/clear/ cpu_physical_memory_mask_dirty_range Juan Quintela
2013-12-18 10:38   ` Orit Wasserman
2013-12-17 15:26 ` [Qemu-devel] [PATCH 24/38] memory: use find_next_bit() to find dirty bits Juan Quintela
2013-12-18 11:48   ` Orit Wasserman
2013-12-17 15:26 ` [Qemu-devel] [PATCH 25/38] memory: cpu_physical_memory_set_dirty_range() now uses bitmap operations Juan Quintela
2013-12-18 11:50   ` Orit Wasserman
2013-12-17 15:26 ` [Qemu-devel] [PATCH 26/38] memory: cpu_physical_memory_clear_dirty_range() " Juan Quintela
2013-12-18 11:50   ` Orit Wasserman
2013-12-17 15:26 ` [Qemu-devel] [PATCH 27/38] memory: s/dirty/clean/ in cpu_physical_memory_is_dirty() Juan Quintela
2013-12-18 11:51   ` Orit Wasserman
2013-12-17 15:26 ` [Qemu-devel] [PATCH 28/38] memory: make cpu_physical_memory_reset_dirty() take a length parameter Juan Quintela
2013-12-18 11:53   ` Orit Wasserman
2013-12-17 15:26 ` [Qemu-devel] [PATCH 29/38] memory: cpu_physical_memory_set_dirty_tracking() should return void Juan Quintela
2013-12-18 11:54   ` Orit Wasserman
2013-12-17 15:26 ` [Qemu-devel] [PATCH 30/38] memory: split cpu_physical_memory_* functions to its own include Juan Quintela
2013-12-18 12:12   ` Orit Wasserman
2013-12-17 15:26 ` [Qemu-devel] [PATCH 31/38] memory: unfold memory_region_test_and_clear() Juan Quintela
2013-12-18 12:25   ` Orit Wasserman
2013-12-17 15:26 ` [Qemu-devel] [PATCH 32/38] kvm: use directly cpu_physical_memory_* api for tracking dirty pages Juan Quintela
2013-12-19 10:03   ` Orit Wasserman
2013-12-19 10:06   ` Peter Maydell
2013-12-19 13:24     ` Juan Quintela
2013-12-17 15:26 ` [Qemu-devel] [PATCH 33/38] kvm: refactor start address calculation Juan Quintela
2013-12-19 10:04   ` Orit Wasserman
2013-12-17 15:26 ` [Qemu-devel] [PATCH 34/38] memory: move bitmap synchronization to its own function Juan Quintela
2013-12-19 10:08   ` Orit Wasserman
2013-12-17 15:26 ` [Qemu-devel] [PATCH 35/38] memory: syncronize kvm bitmap using bitmaps operations Juan Quintela
2013-12-19 10:25   ` Orit Wasserman
2013-12-17 15:26 ` [Qemu-devel] [PATCH 36/38] ram: split function that synchronizes a range Juan Quintela
2013-12-19 10:45   ` Orit Wasserman
2013-12-17 15:26 ` [Qemu-devel] [PATCH 37/38] migration: synchronize memory bitmap 64bits at a time Juan Quintela
2013-12-19 11:22   ` Orit Wasserman
2013-12-17 15:26 ` [Qemu-devel] [PATCH 38/38] ram: align ram_addr_t's regions in multiples of 64 Juan Quintela
2013-12-17 16:05   ` Juan Quintela

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52B98B06.3090904@redhat.com \
    --to=owasserm@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).