* [Qemu-devel] [PATCH 1/2] rdma: constify ram_chunk_{index, start, end}
@ 2013-09-04 2:32 Isaku Yamahata
2013-09-04 2:32 ` [Qemu-devel] [PATCH 2/2] rdma: simplify qemu_rdma_register_and_get_keys() Isaku Yamahata
` (2 more replies)
0 siblings, 3 replies; 14+ messages in thread
From: Isaku Yamahata @ 2013-09-04 2:32 UTC (permalink / raw)
To: qemu-devel; +Cc: owasserm, pbonzini, mrhines, quintela
Signed-off-by: Isaku Yamahata <yamahata@private.email.ne.jp>
---
migration-rdma.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/migration-rdma.c b/migration-rdma.c
index e71c10a..db5a908 100644
--- a/migration-rdma.c
+++ b/migration-rdma.c
@@ -511,19 +511,21 @@ static int qemu_rdma_exchange_send(RDMAContext *rdma, RDMAControlHeader *head,
int *resp_idx,
int (*callback)(RDMAContext *rdma));
-static inline uint64_t ram_chunk_index(uint8_t *start, uint8_t *host)
+static inline uint64_t ram_chunk_index(const uint8_t *start,
+ const uint8_t *host)
{
return ((uintptr_t) host - (uintptr_t) start) >> RDMA_REG_CHUNK_SHIFT;
}
-static inline uint8_t *ram_chunk_start(RDMALocalBlock *rdma_ram_block,
+static inline uint8_t *ram_chunk_start(const RDMALocalBlock *rdma_ram_block,
uint64_t i)
{
return (uint8_t *) (((uintptr_t) rdma_ram_block->local_host_addr)
+ (i << RDMA_REG_CHUNK_SHIFT));
}
-static inline uint8_t *ram_chunk_end(RDMALocalBlock *rdma_ram_block, uint64_t i)
+static inline uint8_t *ram_chunk_end(const RDMALocalBlock *rdma_ram_block,
+ uint64_t i)
{
uint8_t *result = ram_chunk_start(rdma_ram_block, i) +
(1UL << RDMA_REG_CHUNK_SHIFT);
--
1.7.10.4
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [Qemu-devel] [PATCH 2/2] rdma: simplify qemu_rdma_register_and_get_keys()
2013-09-04 2:32 [Qemu-devel] [PATCH 1/2] rdma: constify ram_chunk_{index, start, end} Isaku Yamahata
@ 2013-09-04 2:32 ` Isaku Yamahata
2013-09-18 13:00 ` Juan Quintela
2013-09-18 15:01 ` Michael R. Hines
2013-09-18 12:55 ` [Qemu-devel] [PATCH 1/2] rdma: constify ram_chunk_{index, start, end} Juan Quintela
2013-09-18 14:28 ` Michael R. Hines
2 siblings, 2 replies; 14+ messages in thread
From: Isaku Yamahata @ 2013-09-04 2:32 UTC (permalink / raw)
To: qemu-devel; +Cc: owasserm, pbonzini, mrhines, quintela
Signed-off-by: Isaku Yamahata <yamahata@private.email.ne.jp>
---
migration-rdma.c | 23 +++++++----------------
1 file changed, 7 insertions(+), 16 deletions(-)
diff --git a/migration-rdma.c b/migration-rdma.c
index db5a908..941c07e 100644
--- a/migration-rdma.c
+++ b/migration-rdma.c
@@ -1128,8 +1128,7 @@ static int qemu_rdma_search_ram_block(RDMAContext *rdma,
*/
static int qemu_rdma_register_and_get_keys(RDMAContext *rdma,
RDMALocalBlock *block, uint8_t *host_addr,
- uint32_t *lkey, uint32_t *rkey, int chunk,
- uint8_t *chunk_start, uint8_t *chunk_end)
+ uint32_t *lkey, uint32_t *rkey, int chunk)
{
if (block->mr) {
if (lkey) {
@@ -1155,6 +1154,8 @@ static int qemu_rdma_register_and_get_keys(RDMAContext *rdma,
* If 'lkey', then we're the source VM, so grant access only to ourselves.
*/
if (!block->pmr[chunk]) {
+ uint8_t *chunk_start = ram_chunk_start(block, chunk);
+ uint8_t *chunk_end = ram_chunk_end(block, chunk);
uint64_t len = chunk_end - chunk_start;
DDPRINTF("Registering %" PRIu64 " bytes @ %p\n",
@@ -1849,7 +1850,6 @@ static int qemu_rdma_write_one(QEMUFile *f, RDMAContext *rdma,
struct ibv_send_wr *bad_wr;
int reg_result_idx, ret, count = 0;
uint64_t chunk, chunks;
- uint8_t *chunk_start, *chunk_end;
RDMALocalBlock *block = &(rdma->local_ram_blocks.block[current_index]);
RDMARegister reg;
RDMARegisterResult *reg_result;
@@ -1865,7 +1865,6 @@ retry:
sge.length = length;
chunk = ram_chunk_index(block->local_host_addr, (uint8_t *) sge.addr);
- chunk_start = ram_chunk_start(block, chunk);
if (block->is_ram_block) {
chunks = length / (1UL << RDMA_REG_CHUNK_SHIFT);
@@ -1884,8 +1883,6 @@ retry:
DDPRINTF("Writing %" PRIu64 " chunks, (%" PRIu64 " MB)\n",
chunks + 1, (chunks + 1) * (1UL << RDMA_REG_CHUNK_SHIFT) / 1024 / 1024);
- chunk_end = ram_chunk_end(block, chunk + chunks);
-
if (!rdma->pin_all) {
#ifdef RDMA_UNREGISTRATION_EXAMPLE
qemu_rdma_unregister_waiting(rdma);
@@ -1974,8 +1971,7 @@ retry:
/* try to overlap this single registration with the one we sent. */
if (qemu_rdma_register_and_get_keys(rdma, block,
(uint8_t *) sge.addr,
- &sge.lkey, NULL, chunk,
- chunk_start, chunk_end)) {
+ &sge.lkey, NULL, chunk)) {
fprintf(stderr, "cannot get lkey!\n");
return -EINVAL;
}
@@ -1995,8 +1991,7 @@ retry:
/* already registered before */
if (qemu_rdma_register_and_get_keys(rdma, block,
(uint8_t *)sge.addr,
- &sge.lkey, NULL, chunk,
- chunk_start, chunk_end)) {
+ &sge.lkey, NULL, chunk)) {
fprintf(stderr, "cannot get lkey!\n");
return -EINVAL;
}
@@ -2007,8 +2002,7 @@ retry:
send_wr.wr.rdma.rkey = block->remote_rkey;
if (qemu_rdma_register_and_get_keys(rdma, block, (uint8_t *)sge.addr,
- &sge.lkey, NULL, chunk,
- chunk_start, chunk_end)) {
+ &sge.lkey, NULL, chunk)) {
fprintf(stderr, "cannot get lkey!\n");
return -EINVAL;
}
@@ -3054,7 +3048,6 @@ static int qemu_rdma_registration_handle(QEMUFile *f, void *opaque,
for (count = 0; count < head.repeat; count++) {
uint64_t chunk;
- uint8_t *chunk_start, *chunk_end;
reg = ®isters[count];
network_to_register(reg);
@@ -3076,11 +3069,9 @@ static int qemu_rdma_registration_handle(QEMUFile *f, void *opaque,
host_addr = block->local_host_addr +
(reg->key.chunk * (1UL << RDMA_REG_CHUNK_SHIFT));
}
- chunk_start = ram_chunk_start(block, chunk);
- chunk_end = ram_chunk_end(block, chunk + reg->chunks);
if (qemu_rdma_register_and_get_keys(rdma, block,
(uint8_t *)host_addr, NULL, ®_result->rkey,
- chunk, chunk_start, chunk_end)) {
+ chunk)) {
fprintf(stderr, "cannot get rkey!\n");
ret = -EINVAL;
goto out;
--
1.7.10.4
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH 1/2] rdma: constify ram_chunk_{index, start, end}
2013-09-04 2:32 [Qemu-devel] [PATCH 1/2] rdma: constify ram_chunk_{index, start, end} Isaku Yamahata
2013-09-04 2:32 ` [Qemu-devel] [PATCH 2/2] rdma: simplify qemu_rdma_register_and_get_keys() Isaku Yamahata
@ 2013-09-18 12:55 ` Juan Quintela
2013-09-18 14:28 ` Michael R. Hines
2 siblings, 0 replies; 14+ messages in thread
From: Juan Quintela @ 2013-09-18 12:55 UTC (permalink / raw)
To: Isaku Yamahata; +Cc: owasserm, mrhines, qemu-devel, pbonzini
Isaku Yamahata <yamahata@private.email.ne.jp> wrote:
> Signed-off-by: Isaku Yamahata <yamahata@private.email.ne.jp>
Reviewed-by: Juan Quintela <quintela@redhat.com>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] rdma: simplify qemu_rdma_register_and_get_keys()
2013-09-04 2:32 ` [Qemu-devel] [PATCH 2/2] rdma: simplify qemu_rdma_register_and_get_keys() Isaku Yamahata
@ 2013-09-18 13:00 ` Juan Quintela
2013-09-18 15:01 ` Michael R. Hines
1 sibling, 0 replies; 14+ messages in thread
From: Juan Quintela @ 2013-09-18 13:00 UTC (permalink / raw)
To: Isaku Yamahata; +Cc: owasserm, mrhines, qemu-devel, pbonzini
Isaku Yamahata <yamahata@private.email.ne.jp> wrote:
> Signed-off-by: Isaku Yamahata <yamahata@private.email.ne.jp>
I don't understand this bit:
> + uint8_t *chunk_start = ram_chunk_start(block, chunk);
> + uint8_t *chunk_end = ram_chunk_end(block, chunk);
Here we are getting just the length of a chunk
> sge.length = length;
>
> chunk = ram_chunk_index(block->local_host_addr, (uint8_t *) sge.addr);
> - chunk_start = ram_chunk_start(block, chunk);
>
> if (block->is_ram_block) {
> chunks = length / (1UL << RDMA_REG_CHUNK_SHIFT);
> @@ -1884,8 +1883,6 @@ retry:
> DDPRINTF("Writing %" PRIu64 " chunks, (%" PRIu64 " MB)\n",
> chunks + 1, (chunks + 1) * (1UL << RDMA_REG_CHUNK_SHIFT) / 1024 / 1024);
>
> - chunk_end = ram_chunk_end(block, chunk + chunks);
> -
But here chuck_end was the length of a list of chucks.
> @@ -3076,11 +3069,9 @@ static int qemu_rdma_registration_handle(QEMUFile *f, void *opaque,
> host_addr = block->local_host_addr +
> (reg->key.chunk * (1UL << RDMA_REG_CHUNK_SHIFT));
> }
> - chunk_start = ram_chunk_start(block, chunk);
> - chunk_end = ram_chunk_end(block, chunk + reg->chunks);
> if (qemu_rdma_register_and_get_keys(rdma, block,
> (uint8_t *)host_addr, NULL, ®_result->rkey,
> - chunk, chunk_start, chunk_end)) {
> + chunk)) {
Same here.
I am missing something obvious?
PD. No, I don't claim to understand RDMA.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH 1/2] rdma: constify ram_chunk_{index, start, end}
2013-09-04 2:32 [Qemu-devel] [PATCH 1/2] rdma: constify ram_chunk_{index, start, end} Isaku Yamahata
2013-09-04 2:32 ` [Qemu-devel] [PATCH 2/2] rdma: simplify qemu_rdma_register_and_get_keys() Isaku Yamahata
2013-09-18 12:55 ` [Qemu-devel] [PATCH 1/2] rdma: constify ram_chunk_{index, start, end} Juan Quintela
@ 2013-09-18 14:28 ` Michael R. Hines
2013-09-20 7:55 ` Isaku Yamahata
2 siblings, 1 reply; 14+ messages in thread
From: Michael R. Hines @ 2013-09-18 14:28 UTC (permalink / raw)
To: Isaku Yamahata; +Cc: owasserm, quintela, mrhines, qemu-devel, pbonzini
On 09/03/2013 10:32 PM, Isaku Yamahata wrote:
> Signed-off-by: Isaku Yamahata <yamahata@private.email.ne.jp>
> ---
> migration-rdma.c | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/migration-rdma.c b/migration-rdma.c
> index e71c10a..db5a908 100644
> --- a/migration-rdma.c
> +++ b/migration-rdma.c
> @@ -511,19 +511,21 @@ static int qemu_rdma_exchange_send(RDMAContext *rdma, RDMAControlHeader *head,
> int *resp_idx,
> int (*callback)(RDMAContext *rdma));
>
> -static inline uint64_t ram_chunk_index(uint8_t *start, uint8_t *host)
> +static inline uint64_t ram_chunk_index(const uint8_t *start,
> + const uint8_t *host)
> {
> return ((uintptr_t) host - (uintptr_t) start) >> RDMA_REG_CHUNK_SHIFT;
> }
>
> -static inline uint8_t *ram_chunk_start(RDMALocalBlock *rdma_ram_block,
> +static inline uint8_t *ram_chunk_start(const RDMALocalBlock *rdma_ram_block,
> uint64_t i)
> {
> return (uint8_t *) (((uintptr_t) rdma_ram_block->local_host_addr)
> + (i << RDMA_REG_CHUNK_SHIFT));
> }
>
> -static inline uint8_t *ram_chunk_end(RDMALocalBlock *rdma_ram_block, uint64_t i)
> +static inline uint8_t *ram_chunk_end(const RDMALocalBlock *rdma_ram_block,
> + uint64_t i)
> {
> uint8_t *result = ram_chunk_start(rdma_ram_block, i) +
> (1UL << RDMA_REG_CHUNK_SHIFT);
Isaku, you are sending lots of "little" patches which may or may not be
properly rebased upon previous patches.
Could you please group your current patch series into a single series with a
descriptive cover letter along with the previous patches?
If you need create a new patch specifically for RDMA before a previous
patch as been applied to my tree, then please include the old one into
the new patch series with a description and a "resend" in the title.
Then I can review them at once apply them all to my tree
so the maintaner has an easier time.
Thanks,
- Michael
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] rdma: simplify qemu_rdma_register_and_get_keys()
2013-09-04 2:32 ` [Qemu-devel] [PATCH 2/2] rdma: simplify qemu_rdma_register_and_get_keys() Isaku Yamahata
2013-09-18 13:00 ` Juan Quintela
@ 2013-09-18 15:01 ` Michael R. Hines
2013-09-20 16:59 ` Isaku Yamahata
1 sibling, 1 reply; 14+ messages in thread
From: Michael R. Hines @ 2013-09-18 15:01 UTC (permalink / raw)
To: Isaku Yamahata; +Cc: owasserm, quintela, mrhines, qemu-devel, pbonzini
On 09/03/2013 10:32 PM, Isaku Yamahata wrote:
> Signed-off-by: Isaku Yamahata <yamahata@private.email.ne.jp>
> ---
> migration-rdma.c | 23 +++++++----------------
> 1 file changed, 7 insertions(+), 16 deletions(-)
>
> diff --git a/migration-rdma.c b/migration-rdma.c
> index db5a908..941c07e 100644
> --- a/migration-rdma.c
> +++ b/migration-rdma.c
> @@ -1128,8 +1128,7 @@ static int qemu_rdma_search_ram_block(RDMAContext *rdma,
> */
> static int qemu_rdma_register_and_get_keys(RDMAContext *rdma,
> RDMALocalBlock *block, uint8_t *host_addr,
> - uint32_t *lkey, uint32_t *rkey, int chunk,
> - uint8_t *chunk_start, uint8_t *chunk_end)
> + uint32_t *lkey, uint32_t *rkey, int chunk)
> {
> if (block->mr) {
> if (lkey) {
> @@ -1155,6 +1154,8 @@ static int qemu_rdma_register_and_get_keys(RDMAContext *rdma,
> * If 'lkey', then we're the source VM, so grant access only to ourselves.
> */
> if (!block->pmr[chunk]) {
> + uint8_t *chunk_start = ram_chunk_start(block, chunk);
> + uint8_t *chunk_end = ram_chunk_end(block, chunk);
> uint64_t len = chunk_end - chunk_start;
NACK. chunk_end cannot be calculated like this for all calls to this
function.
See below.......
>
> DDPRINTF("Registering %" PRIu64 " bytes @ %p\n",
> @@ -1849,7 +1850,6 @@ static int qemu_rdma_write_one(QEMUFile *f, RDMAContext *rdma,
> struct ibv_send_wr *bad_wr;
> int reg_result_idx, ret, count = 0;
> uint64_t chunk, chunks;
> - uint8_t *chunk_start, *chunk_end;
> RDMALocalBlock *block = &(rdma->local_ram_blocks.block[current_index]);
> RDMARegister reg;
> RDMARegisterResult *reg_result;
> @@ -1865,7 +1865,6 @@ retry:
> sge.length = length;
>
> chunk = ram_chunk_index(block->local_host_addr, (uint8_t *) sge.addr);
> - chunk_start = ram_chunk_start(block, chunk);
>
> if (block->is_ram_block) {
> chunks = length / (1UL << RDMA_REG_CHUNK_SHIFT);
> @@ -1884,8 +1883,6 @@ retry:
> DDPRINTF("Writing %" PRIu64 " chunks, (%" PRIu64 " MB)\n",
> chunks + 1, (chunks + 1) * (1UL << RDMA_REG_CHUNK_SHIFT) / 1024 / 1024);
>
> - chunk_end = ram_chunk_end(block, chunk + chunks);
> -
NACK.
The value of chunk_end changes based on whether or not the value of
block->is_ram_block is true of false.
> if (!rdma->pin_all) {
> #ifdef RDMA_UNREGISTRATION_EXAMPLE
> qemu_rdma_unregister_waiting(rdma);
> @@ -1974,8 +1971,7 @@ retry:
> /* try to overlap this single registration with the one we sent. */
> if (qemu_rdma_register_and_get_keys(rdma, block,
> (uint8_t *) sge.addr,
> - &sge.lkey, NULL, chunk,
> - chunk_start, chunk_end)) {
> + &sge.lkey, NULL, chunk)) {
> fprintf(stderr, "cannot get lkey!\n");
> return -EINVAL;
> }
> @@ -1995,8 +1991,7 @@ retry:
> /* already registered before */
> if (qemu_rdma_register_and_get_keys(rdma, block,
> (uint8_t *)sge.addr,
> - &sge.lkey, NULL, chunk,
> - chunk_start, chunk_end)) {
> + &sge.lkey, NULL, chunk)) {
> fprintf(stderr, "cannot get lkey!\n");
> return -EINVAL;
> }
> @@ -2007,8 +2002,7 @@ retry:
> send_wr.wr.rdma.rkey = block->remote_rkey;
>
> if (qemu_rdma_register_and_get_keys(rdma, block, (uint8_t *)sge.addr,
> - &sge.lkey, NULL, chunk,
> - chunk_start, chunk_end)) {
> + &sge.lkey, NULL, chunk)) {
> fprintf(stderr, "cannot get lkey!\n");
> return -EINVAL;
> }
> @@ -3054,7 +3048,6 @@ static int qemu_rdma_registration_handle(QEMUFile *f, void *opaque,
>
> for (count = 0; count < head.repeat; count++) {
> uint64_t chunk;
> - uint8_t *chunk_start, *chunk_end;
>
> reg = ®isters[count];
> network_to_register(reg);
> @@ -3076,11 +3069,9 @@ static int qemu_rdma_registration_handle(QEMUFile *f, void *opaque,
> host_addr = block->local_host_addr +
> (reg->key.chunk * (1UL << RDMA_REG_CHUNK_SHIFT));
> }
> - chunk_start = ram_chunk_start(block, chunk);
> - chunk_end = ram_chunk_end(block, chunk + reg->chunks);
> if (qemu_rdma_register_and_get_keys(rdma, block,
> (uint8_t *)host_addr, NULL, ®_result->rkey,
> - chunk, chunk_start, chunk_end)) {
> + chunk)) {
> fprintf(stderr, "cannot get rkey!\n");
> ret = -EINVAL;
> goto out;
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH 1/2] rdma: constify ram_chunk_{index, start, end}
2013-09-18 14:28 ` Michael R. Hines
@ 2013-09-20 7:55 ` Isaku Yamahata
2013-09-20 14:11 ` Michael R. Hines
0 siblings, 1 reply; 14+ messages in thread
From: Isaku Yamahata @ 2013-09-20 7:55 UTC (permalink / raw)
To: Michael R. Hines
Cc: Isaku Yamahata, quintela, qemu-devel, owasserm, mrhines, pbonzini
On Wed, Sep 18, 2013 at 10:28:51AM -0400, Michael R. Hines wrote:
> On 09/03/2013 10:32 PM, Isaku Yamahata wrote:
>> Signed-off-by: Isaku Yamahata <yamahata@private.email.ne.jp>
>> ---
>> migration-rdma.c | 8 +++++---
>> 1 file changed, 5 insertions(+), 3 deletions(-)
>>
>> diff --git a/migration-rdma.c b/migration-rdma.c
>> index e71c10a..db5a908 100644
>> --- a/migration-rdma.c
>> +++ b/migration-rdma.c
>> @@ -511,19 +511,21 @@ static int qemu_rdma_exchange_send(RDMAContext *rdma, RDMAControlHeader *head,
>> int *resp_idx,
>> int (*callback)(RDMAContext *rdma));
>>
>> -static inline uint64_t ram_chunk_index(uint8_t *start, uint8_t *host)
>> +static inline uint64_t ram_chunk_index(const uint8_t *start,
>> + const uint8_t *host)
>> {
>> return ((uintptr_t) host - (uintptr_t) start) >> RDMA_REG_CHUNK_SHIFT;
>> }
>>
>> -static inline uint8_t *ram_chunk_start(RDMALocalBlock *rdma_ram_block,
>> +static inline uint8_t *ram_chunk_start(const RDMALocalBlock *rdma_ram_block,
>> uint64_t i)
>> {
>> return (uint8_t *) (((uintptr_t) rdma_ram_block->local_host_addr)
>> + (i << RDMA_REG_CHUNK_SHIFT));
>> }
>>
>> -static inline uint8_t *ram_chunk_end(RDMALocalBlock *rdma_ram_block, uint64_t i)
>> +static inline uint8_t *ram_chunk_end(const RDMALocalBlock *rdma_ram_block,
>> + uint64_t i)
>> {
>> uint8_t *result = ram_chunk_start(rdma_ram_block, i) +
>> (1UL << RDMA_REG_CHUNK_SHIFT);
>
> Isaku, you are sending lots of "little" patches which may or may not be
> properly rebased upon previous patches.
>
> Could you please group your current patch series into a single series with a
> descriptive cover letter along with the previous patches?
>
> If you need create a new patch specifically for RDMA before a previous
> patch as been applied to my tree, then please include the old one into
> the new patch series with a description and a "resend" in the title.
>
> Then I can review them at once apply them all to my tree
> so the maintaner has an easier time.
Okay, will do. Which branch should I watch?
I'm aware of the following repo, but I'm not sure which branch to rebase.
https://github.com/hinesmr/qemu.git
thanks,
>
> Thanks,
> - Michael
>
>
--
yamahata
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH 1/2] rdma: constify ram_chunk_{index, start, end}
2013-09-20 7:55 ` Isaku Yamahata
@ 2013-09-20 14:11 ` Michael R. Hines
2013-09-24 16:36 ` Juan Quintela
0 siblings, 1 reply; 14+ messages in thread
From: Michael R. Hines @ 2013-09-20 14:11 UTC (permalink / raw)
To: Isaku Yamahata; +Cc: qemu-devel, owasserm, pbonzini, mrhines, quintela
On 09/20/2013 03:55 AM, Isaku Yamahata wrote:
> On Wed, Sep 18, 2013 at 10:28:51AM -0400, Michael R. Hines wrote:
>> On 09/03/2013 10:32 PM, Isaku Yamahata wrote:
>>> Signed-off-by: Isaku Yamahata <yamahata@private.email.ne.jp>
>>> ---
>>> migration-rdma.c | 8 +++++---
>>> 1 file changed, 5 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/migration-rdma.c b/migration-rdma.c
>>> index e71c10a..db5a908 100644
>>> --- a/migration-rdma.c
>>> +++ b/migration-rdma.c
>>> @@ -511,19 +511,21 @@ static int qemu_rdma_exchange_send(RDMAContext *rdma, RDMAControlHeader *head,
>>> int *resp_idx,
>>> int (*callback)(RDMAContext *rdma));
>>>
>>> -static inline uint64_t ram_chunk_index(uint8_t *start, uint8_t *host)
>>> +static inline uint64_t ram_chunk_index(const uint8_t *start,
>>> + const uint8_t *host)
>>> {
>>> return ((uintptr_t) host - (uintptr_t) start) >> RDMA_REG_CHUNK_SHIFT;
>>> }
>>>
>>> -static inline uint8_t *ram_chunk_start(RDMALocalBlock *rdma_ram_block,
>>> +static inline uint8_t *ram_chunk_start(const RDMALocalBlock *rdma_ram_block,
>>> uint64_t i)
>>> {
>>> return (uint8_t *) (((uintptr_t) rdma_ram_block->local_host_addr)
>>> + (i << RDMA_REG_CHUNK_SHIFT));
>>> }
>>>
>>> -static inline uint8_t *ram_chunk_end(RDMALocalBlock *rdma_ram_block, uint64_t i)
>>> +static inline uint8_t *ram_chunk_end(const RDMALocalBlock *rdma_ram_block,
>>> + uint64_t i)
>>> {
>>> uint8_t *result = ram_chunk_start(rdma_ram_block, i) +
>>> (1UL << RDMA_REG_CHUNK_SHIFT);
>> Isaku, you are sending lots of "little" patches which may or may not be
>> properly rebased upon previous patches.
>>
>> Could you please group your current patch series into a single series with a
>> descriptive cover letter along with the previous patches?
>>
>> If you need create a new patch specifically for RDMA before a previous
>> patch as been applied to my tree, then please include the old one into
>> the new patch series with a description and a "resend" in the title.
>>
>> Then I can review them at once apply them all to my tree
>> so the maintaner has an easier time.
> Okay, will do. Which branch should I watch?
> I'm aware of the following repo, but I'm not sure which branch to rebase.
> https://github.com/hinesmr/qemu.git
There's no need to rebase against github or track my branches.
Just use qemu.org master.
- Michael
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] rdma: simplify qemu_rdma_register_and_get_keys()
2013-09-18 15:01 ` Michael R. Hines
@ 2013-09-20 16:59 ` Isaku Yamahata
2013-09-20 17:44 ` Michael R. Hines
0 siblings, 1 reply; 14+ messages in thread
From: Isaku Yamahata @ 2013-09-20 16:59 UTC (permalink / raw)
To: Michael R. Hines
Cc: Isaku Yamahata, quintela, qemu-devel, owasserm, mrhines, pbonzini
On Wed, Sep 18, 2013 at 11:01:16AM -0400, Michael R. Hines wrote:
> The value of chunk_end changes based on whether or not the value of
> block->is_ram_block is true of false.
When is block->is_ram_block set to false?
Looking at __qemu_rdma_add_block() and qemu_rdma_init_ram_blocks(),
is_ram_block seems to be always set to true because local->init = false
when __qemu_rdma_add_block() is called.
--
yamahata
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] rdma: simplify qemu_rdma_register_and_get_keys()
2013-09-20 16:59 ` Isaku Yamahata
@ 2013-09-20 17:44 ` Michael R. Hines
0 siblings, 0 replies; 14+ messages in thread
From: Michael R. Hines @ 2013-09-20 17:44 UTC (permalink / raw)
To: Isaku Yamahata
Cc: Isaku Yamahata, quintela, qemu-devel, owasserm, mrhines, pbonzini
On 09/20/2013 12:59 PM, Isaku Yamahata wrote:
> On Wed, Sep 18, 2013 at 11:01:16AM -0400, Michael R. Hines wrote:
>> The value of chunk_end changes based on whether or not the value of
>> block->is_ram_block is true of false.
> When is block->is_ram_block set to false?
> Looking at __qemu_rdma_add_block() and qemu_rdma_init_ram_blocks(),
> is_ram_block seems to be always set to true because local->init = false
> when __qemu_rdma_add_block() is called.
That's correct, but I have other patches (not yet posted)
that depend on block->is_ram_block.
Please don't delete it =)
- Michael
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH 1/2] rdma: constify ram_chunk_{index, start, end}
2013-09-20 14:11 ` Michael R. Hines
@ 2013-09-24 16:36 ` Juan Quintela
2013-09-24 17:21 ` Michael R. Hines
0 siblings, 1 reply; 14+ messages in thread
From: Juan Quintela @ 2013-09-24 16:36 UTC (permalink / raw)
To: Michael R. Hines; +Cc: Isaku Yamahata, owasserm, pbonzini, mrhines, qemu-devel
"Michael R. Hines" <mrhines@linux.vnet.ibm.com> wrote:
> On 09/20/2013 03:55 AM, Isaku Yamahata wrote:
>> On Wed, Sep 18, 2013 at 10:28:51AM -0400, Michael R. Hines wrote:
>>> On 09/03/2013 10:32 PM, Isaku Yamahata wrote:
>>>> Signed-off-by: Isaku Yamahata <yamahata@private.email.ne.jp>
>
> There's no need to rebase against github or track my branches.
>
> Just use qemu.org master.
Michael, I sent this on my pull request (it was trivial enough).
How do you want to track migration-rdma patches? Should they pass
through you, or should I pick them depending on your Ack/Nack?
Later, Juan.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH 1/2] rdma: constify ram_chunk_{index, start, end}
2013-09-24 16:36 ` Juan Quintela
@ 2013-09-24 17:21 ` Michael R. Hines
2013-09-24 17:38 ` Juan Quintela
0 siblings, 1 reply; 14+ messages in thread
From: Michael R. Hines @ 2013-09-24 17:21 UTC (permalink / raw)
To: quintela; +Cc: Isaku Yamahata, owasserm, pbonzini, mrhines, qemu-devel
On 09/24/2013 12:36 PM, Juan Quintela wrote:
> "Michael R. Hines" <mrhines@linux.vnet.ibm.com> wrote:
>> On 09/20/2013 03:55 AM, Isaku Yamahata wrote:
>>> On Wed, Sep 18, 2013 at 10:28:51AM -0400, Michael R. Hines wrote:
>>>> On 09/03/2013 10:32 PM, Isaku Yamahata wrote:
>>>>> Signed-off-by: Isaku Yamahata <yamahata@private.email.ne.jp>
>> There's no need to rebase against github or track my branches.
>>
>> Just use qemu.org master.
> Michael, I sent this on my pull request (it was trivial enough).
> How do you want to track migration-rdma patches? Should they pass
> through you, or should I pick them depending on your Ack/Nack?
>
> Later, Juan.
>
That's a good question - as I'm also new to the maintenance process,
what would you recommend?
I will definitely be contributing/monitoring/reviewing the RDMA code for
the forseeable future....
- Michael
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH 1/2] rdma: constify ram_chunk_{index, start, end}
2013-09-24 17:21 ` Michael R. Hines
@ 2013-09-24 17:38 ` Juan Quintela
2013-09-24 17:44 ` Michael R. Hines
0 siblings, 1 reply; 14+ messages in thread
From: Juan Quintela @ 2013-09-24 17:38 UTC (permalink / raw)
To: Michael R. Hines; +Cc: Isaku Yamahata, owasserm, pbonzini, mrhines, qemu-devel
"Michael R. Hines" <mrhines@linux.vnet.ibm.com> wrote:
> On 09/24/2013 12:36 PM, Juan Quintela wrote:
>> "Michael R. Hines" <mrhines@linux.vnet.ibm.com> wrote:
>>> On 09/20/2013 03:55 AM, Isaku Yamahata wrote:
>>>> On Wed, Sep 18, 2013 at 10:28:51AM -0400, Michael R. Hines wrote:
>>>>> On 09/03/2013 10:32 PM, Isaku Yamahata wrote:
>>>>>> Signed-off-by: Isaku Yamahata <yamahata@private.email.ne.jp>
>>> There's no need to rebase against github or track my branches.
>>>
>>> Just use qemu.org master.
>> Michael, I sent this on my pull request (it was trivial enough).
>> How do you want to track migration-rdma patches? Should they pass
>> through you, or should I pick them depending on your Ack/Nack?
>>
>> Later, Juan.
>>
>
> That's a good question - as I'm also new to the maintenance process,
> what would you recommend?
>
> I will definitely be contributing/monitoring/reviewing the RDMA code
> for the forseeable future....
I integrate it, and in migration-rdma.c, I wait for your nack/ack.
what do you think?
Later, Juan.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Qemu-devel] [PATCH 1/2] rdma: constify ram_chunk_{index, start, end}
2013-09-24 17:38 ` Juan Quintela
@ 2013-09-24 17:44 ` Michael R. Hines
0 siblings, 0 replies; 14+ messages in thread
From: Michael R. Hines @ 2013-09-24 17:44 UTC (permalink / raw)
To: quintela; +Cc: Isaku Yamahata, owasserm, qemu-devel, mrhines, pbonzini
On 09/24/2013 01:38 PM, Juan Quintela wrote:
> "Michael R. Hines" <mrhines@linux.vnet.ibm.com> wrote:
>> On 09/24/2013 12:36 PM, Juan Quintela wrote:
>>> "Michael R. Hines" <mrhines@linux.vnet.ibm.com> wrote:
>>>> On 09/20/2013 03:55 AM, Isaku Yamahata wrote:
>>>>> On Wed, Sep 18, 2013 at 10:28:51AM -0400, Michael R. Hines wrote:
>>>>>> On 09/03/2013 10:32 PM, Isaku Yamahata wrote:
>>>>>>> Signed-off-by: Isaku Yamahata <yamahata@private.email.ne.jp>
>>>> There's no need to rebase against github or track my branches.
>>>>
>>>> Just use qemu.org master.
>>> Michael, I sent this on my pull request (it was trivial enough).
>>> How do you want to track migration-rdma patches? Should they pass
>>> through you, or should I pick them depending on your Ack/Nack?
>>>
>>> Later, Juan.
>>>
>> That's a good question - as I'm also new to the maintenance process,
>> what would you recommend?
>>
>> I will definitely be contributing/monitoring/reviewing the RDMA code
>> for the forseeable future....
> I integrate it, and in migration-rdma.c, I wait for your nack/ack.
> what do you think?
>
> Later, Juan.
>
Sounds like a plan. Thank you =)
- Michael
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2013-09-24 17:45 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-09-04 2:32 [Qemu-devel] [PATCH 1/2] rdma: constify ram_chunk_{index, start, end} Isaku Yamahata
2013-09-04 2:32 ` [Qemu-devel] [PATCH 2/2] rdma: simplify qemu_rdma_register_and_get_keys() Isaku Yamahata
2013-09-18 13:00 ` Juan Quintela
2013-09-18 15:01 ` Michael R. Hines
2013-09-20 16:59 ` Isaku Yamahata
2013-09-20 17:44 ` Michael R. Hines
2013-09-18 12:55 ` [Qemu-devel] [PATCH 1/2] rdma: constify ram_chunk_{index, start, end} Juan Quintela
2013-09-18 14:28 ` Michael R. Hines
2013-09-20 7:55 ` Isaku Yamahata
2013-09-20 14:11 ` Michael R. Hines
2013-09-24 16:36 ` Juan Quintela
2013-09-24 17:21 ` Michael R. Hines
2013-09-24 17:38 ` Juan Quintela
2013-09-24 17:44 ` Michael R. Hines
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.