Re: [PATCH] replay: notify the main loop when there are no instructions

2020-06-15 Thread Paolo Bonzini
On 15/06/20 07:39, Pavel Dovgalyuk wrote:
>>
> 
> Thanks, but this patch and "replay: synchronize on every virtual timer
> callback" were not included.
> 
> Replay tests are succeeded only with these patches.

Added back both.  I'll be faster this time, promised.

Paolo




Re: [PATCH] replay: notify the main loop when there are no instructions

2020-06-14 Thread Pavel Dovgalyuk



On 01.06.2020 17:01, Paolo Bonzini wrote:

On 01/06/20 12:35, Pavel Dovgalyuk wrote:

ping

On 22.05.2020 09:47, Pavel Dovgalyuk wrote:

When QEMU is executed in console mode without any external event sources,
main loop may sleep for a very long time. But in case of replay
there is another event source - event log.
This patch adds main loop notification when the vCPU loop has nothing
to do and main loop should process the inputs from the event log.

Signed-off-by: Pavel Dovgalyuk 

It's a long weekend here today but I should get a QEMU pull request
submitted on Wednesday.


Thanks, but this patch and "replay: synchronize on every virtual timer 
callback" were not included.


Replay tests are succeeded only with these patches.




Paolo


   0 files changed

diff --git a/cpus.c b/cpus.c
index 7ce0d569b3..b4d0d9f21b 100644
--- a/cpus.c
+++ b/cpus.c
@@ -1362,6 +1362,13 @@ static int64_t tcg_get_icount_limit(void)
   }
   }
   +static void notify_aio_contexts(void)
+{
+    /* Wake up other AioContexts.  */
+    qemu_clock_notify(QEMU_CLOCK_VIRTUAL);
+    qemu_clock_run_timers(QEMU_CLOCK_VIRTUAL);
+}
+
   static void handle_icount_deadline(void)
   {
   assert(qemu_in_vcpu_thread());
@@ -1370,9 +1377,7 @@ static void handle_icount_deadline(void)

QEMU_TIMER_ATTR_ALL);

     if (deadline == 0) {
-    /* Wake up other AioContexts.  */
-    qemu_clock_notify(QEMU_CLOCK_VIRTUAL);
-    qemu_clock_run_timers(QEMU_CLOCK_VIRTUAL);
+    notify_aio_contexts();
   }
   }
   }
@@ -1395,6 +1400,10 @@ static void prepare_icount_for_run(CPUState *cpu)
   cpu->icount_extra = cpu->icount_budget - insns_left;
     replay_mutex_lock();
+
+    if (cpu->icount_budget == 0 && replay_has_checkpoint()) {
+    notify_aio_contexts();
+    }
   }
   }
  




Re: [PATCH] replay: notify the main loop when there are no instructions

2020-06-01 Thread Paolo Bonzini
On 01/06/20 12:35, Pavel Dovgalyuk wrote:
> ping
> 
> On 22.05.2020 09:47, Pavel Dovgalyuk wrote:
>> When QEMU is executed in console mode without any external event sources,
>> main loop may sleep for a very long time. But in case of replay
>> there is another event source - event log.
>> This patch adds main loop notification when the vCPU loop has nothing
>> to do and main loop should process the inputs from the event log.
>>
>> Signed-off-by: Pavel Dovgalyuk 

It's a long weekend here today but I should get a QEMU pull request
submitted on Wednesday.

Paolo

>>   0 files changed
>>
>> diff --git a/cpus.c b/cpus.c
>> index 7ce0d569b3..b4d0d9f21b 100644
>> --- a/cpus.c
>> +++ b/cpus.c
>> @@ -1362,6 +1362,13 @@ static int64_t tcg_get_icount_limit(void)
>>   }
>>   }
>>   +static void notify_aio_contexts(void)
>> +{
>> +    /* Wake up other AioContexts.  */
>> +    qemu_clock_notify(QEMU_CLOCK_VIRTUAL);
>> +    qemu_clock_run_timers(QEMU_CLOCK_VIRTUAL);
>> +}
>> +
>>   static void handle_icount_deadline(void)
>>   {
>>   assert(qemu_in_vcpu_thread());
>> @@ -1370,9 +1377,7 @@ static void handle_icount_deadline(void)
>>    
>> QEMU_TIMER_ATTR_ALL);
>>     if (deadline == 0) {
>> -    /* Wake up other AioContexts.  */
>> -    qemu_clock_notify(QEMU_CLOCK_VIRTUAL);
>> -    qemu_clock_run_timers(QEMU_CLOCK_VIRTUAL);
>> +    notify_aio_contexts();
>>   }
>>   }
>>   }
>> @@ -1395,6 +1400,10 @@ static void prepare_icount_for_run(CPUState *cpu)
>>   cpu->icount_extra = cpu->icount_budget - insns_left;
>>     replay_mutex_lock();
>> +
>> +    if (cpu->icount_budget == 0 && replay_has_checkpoint()) {
>> +    notify_aio_contexts();
>> +    }
>>   }
>>   }
>>  
> 




Re: [PATCH] replay: notify the main loop when there are no instructions

2020-06-01 Thread Pavel Dovgalyuk

ping

On 22.05.2020 09:47, Pavel Dovgalyuk wrote:

When QEMU is executed in console mode without any external event sources,
main loop may sleep for a very long time. But in case of replay
there is another event source - event log.
This patch adds main loop notification when the vCPU loop has nothing
to do and main loop should process the inputs from the event log.

Signed-off-by: Pavel Dovgalyuk 
---
  0 files changed

diff --git a/cpus.c b/cpus.c
index 7ce0d569b3..b4d0d9f21b 100644
--- a/cpus.c
+++ b/cpus.c
@@ -1362,6 +1362,13 @@ static int64_t tcg_get_icount_limit(void)
  }
  }
  
+static void notify_aio_contexts(void)

+{
+/* Wake up other AioContexts.  */
+qemu_clock_notify(QEMU_CLOCK_VIRTUAL);
+qemu_clock_run_timers(QEMU_CLOCK_VIRTUAL);
+}
+
  static void handle_icount_deadline(void)
  {
  assert(qemu_in_vcpu_thread());
@@ -1370,9 +1377,7 @@ static void handle_icount_deadline(void)
QEMU_TIMER_ATTR_ALL);
  
  if (deadline == 0) {

-/* Wake up other AioContexts.  */
-qemu_clock_notify(QEMU_CLOCK_VIRTUAL);
-qemu_clock_run_timers(QEMU_CLOCK_VIRTUAL);
+notify_aio_contexts();
  }
  }
  }
@@ -1395,6 +1400,10 @@ static void prepare_icount_for_run(CPUState *cpu)
  cpu->icount_extra = cpu->icount_budget - insns_left;
  
  replay_mutex_lock();

+
+if (cpu->icount_budget == 0 && replay_has_checkpoint()) {
+notify_aio_contexts();
+}
  }
  }
  





Re: [PATCH] replay: notify the main loop when there are no instructions

2020-05-22 Thread no-reply
Patchew URL: 
https://patchew.org/QEMU/159013007895.28110.2020104406699709721.stgit@pasha-ThinkPad-X280/



Hi,

This series failed the docker-quick@centos7 build test. Please find the testing 
commands and
their output below. If you have Docker installed, you can probably reproduce it
locally.

=== TEST SCRIPT BEGIN ===
#!/bin/bash
make docker-image-centos7 V=1 NETWORK=1
time make docker-test-quick@centos7 SHOW_ENV=1 J=14 NETWORK=1
=== TEST SCRIPT END ===

qemu-system-aarch64: cannot set up guest memory 'cubieboard.ram': Cannot 
allocate memory
Broken pipe
/tmp/qemu-test/src/tests/qtest/libqtest.c:166: kill_qemu() tried to terminate 
QEMU process but encountered exit status 1 (expected 0)
ERROR - too few tests run (expected 67, got 19)
make: *** [check-qtest-aarch64] Error 1
Traceback (most recent call last):
  File "./tests/docker/docker.py", line 664, in 
sys.exit(main())
---
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['sudo', '-n', 'docker', 'run', 
'--label', 'com.qemu.instance.uuid=7ed21bd09cfe4abb91aa69bcf8295719', '-u', 
'1001', '--security-opt', 'seccomp=unconfined', '--rm', '-e', 'TARGET_LIST=', 
'-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=14', '-e', 'DEBUG=', '-e', 
'SHOW_ENV=1', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', 
'/home/patchew/.cache/qemu-docker-ccache:/var/tmp/ccache:z', '-v', 
'/var/tmp/patchew-tester-tmp-8uoujxs2/src/docker-src.2020-05-22-08.42.20.23794:/var/tmp/qemu:z,ro',
 'qemu:centos7', '/var/tmp/qemu/run', 'test-quick']' returned non-zero exit 
status 2.
filter=--filter=label=com.qemu.instance.uuid=7ed21bd09cfe4abb91aa69bcf8295719
make[1]: *** [docker-run] Error 1
make[1]: Leaving directory `/var/tmp/patchew-tester-tmp-8uoujxs2/src'
make: *** [docker-run-test-quick@centos7] Error 2

real18m3.909s
user0m8.461s


The full log is available at
http://patchew.org/logs/159013007895.28110.2020104406699709721.stgit@pasha-ThinkPad-X280/testing.docker-quick@centos7/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-de...@redhat.com