Message ID | 1761964d57e56e8d29280b62315de665865299d6.1318326683.git.quintela@redhat.com |
---|---|
State | New |
Headers | show |
On 10/11/2011 05:00 AM, Juan Quintela wrote: > Signed-off-by: Juan Quintela<quintela@redhat.com> The original intention of returning zero was to force a quick finish of the migration. I think this code makes things more brittle because now if you're not doing error checking in the throttling path, you'll just pause the migration forever instead of fast forwarding to a point where you're actually checking for errors. Regards, Anthony Liguori > --- > buffered_file.c | 6 +++--- > 1 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/buffered_file.c b/buffered_file.c > index 486af57..bcdf04f 100644 > --- a/buffered_file.c > +++ b/buffered_file.c > @@ -193,9 +193,9 @@ static int buffered_rate_limit(void *opaque) > { > QEMUFileBuffered *s = opaque; > > - if (s->has_error) > - return 0; > - > + if (s->has_error) { > + return 1; > + } > if (s->freeze_output) > return 1; >
Anthony Liguori <anthony@codemonkey.ws> wrote: > On 10/11/2011 05:00 AM, Juan Quintela wrote: >> Signed-off-by: Juan Quintela<quintela@redhat.com> > > The original intention of returning zero was to force a quick finish > of the migration. > > I think this code makes things more brittle because now if you're not > doing error checking in the throttling path, you'll just pause the > migration forever instead of fast forwarding to a point where you're > actually checking for errors. This is the only caller: while (!qemu_file_rate_limit(f)) { int bytes_sent; bytes_sent = ram_save_block(f); bytes_transferred += bytes_sent; if (bytes_sent == 0) { /* no more blocks */ break; } } The error that I was finding is that whe get one error, we stay on that loop a lot of time. This change just made the error be discovered instantanously. Later, Juan. > > Regards, > > Anthony Liguori > >> --- >> buffered_file.c | 6 +++--- >> 1 files changed, 3 insertions(+), 3 deletions(-) >> >> diff --git a/buffered_file.c b/buffered_file.c >> index 486af57..bcdf04f 100644 >> --- a/buffered_file.c >> +++ b/buffered_file.c >> @@ -193,9 +193,9 @@ static int buffered_rate_limit(void *opaque) >> { >> QEMUFileBuffered *s = opaque; >> >> - if (s->has_error) >> - return 0; >> - >> + if (s->has_error) { >> + return 1; >> + } >> if (s->freeze_output) >> return 1; >>
diff --git a/buffered_file.c b/buffered_file.c index 486af57..bcdf04f 100644 --- a/buffered_file.c +++ b/buffered_file.c @@ -193,9 +193,9 @@ static int buffered_rate_limit(void *opaque) { QEMUFileBuffered *s = opaque; - if (s->has_error) - return 0; - + if (s->has_error) { + return 1; + } if (s->freeze_output) return 1;
Signed-off-by: Juan Quintela <quintela@redhat.com> --- buffered_file.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)