On 08/10/2013 06:53 AM, Max Filippov wrote:
> On Sat, Aug 10, 2013 at 8:42 PM, Richard Henderson wrote:
>> On 08/10/2013 05:45 AM, Peter Maydell wrote:
>>> Well, it depends. If we're going to dump all the in-tree
>>> disassemblers and always use an external objdump, that's fine.
>>
>> It's temptin
On Sat, Aug 10, 2013 at 8:42 PM, Richard Henderson wrote:
> On 08/10/2013 05:45 AM, Peter Maydell wrote:
>> Well, it depends. If we're going to dump all the in-tree
>> disassemblers and always use an external objdump, that's fine.
>
> It's tempting, given that the only internal disassemblers that
On 08/10/2013 05:45 AM, Peter Maydell wrote:
> Well, it depends. If we're going to dump all the in-tree
> disassemblers and always use an external objdump, that's fine.
It's tempting, given that the only internal disassemblers that
are not missing opcodes are for the extinct cpus.
r~
On Fri, Aug 09, 2013 at 11:30:14PM -0400, Kevin O'Connor wrote:
> On Fri, Aug 09, 2013 at 11:45:59AM +0200, Gerd Hoffmann wrote:
> > Hi,
> >
> > > Converting src/smm.c to use a runtime value isn't hard - just change
> > > the assembler from: "mov $" __stringify(PORT_ACPI_PM_BASE) " + 0x04,
> > >
On 10 August 2013 11:22, Claudio Fontana wrote:
> On Sat, Aug 10, 2013 at 11:16 AM, Peter Maydell
> wrote:
>> On 9 August 2013 20:19, Richard Henderson wrote:
>>> We have one host platform (aarch64), and three target platforms
>>> (openrisc, unicore32, xtensa) with no built-in disassembly suppor
--On 10 August 2013 11:06:04 +0100 Alex Bligh wrote:
The penultimate patch is patch which is created in an automated manner
using scripts/switch-timer-api, added in this patch set. It violates some
coding standards (e.g. line length >= 80 characters), but this is
preferable in terms of giving
Il 10/08/2013 12:06, Alex Bligh ha scritto:
> Changes since v8:
> * PR_SET_TIMERSLACK commit should have relevant configure patch within
> * Delete timerlist_set_notify_cb, put into timerlist_new
> * Add missing QLIST_INIT of clock->timerlists
> * Fix documentation for timerlist_get_clock
> * Renam
Currently we use a separate timer list group (main_loop_tlg)
for the main loop. This patch replaces this with a dummy AioContext
used just for timers in the main loop.
Signed-off-by: Alex Bligh
---
include/block/aio.h |3 +++
include/qemu/timer.h |9 ++---
main-loop.c |
Occasionally running make check I am seeing the following opaque error:
ERROR:tests/libqtest.c:69:init_socket: assertion failed (ret != -1): (-1 !=
-1)
Rerunning it it runs clean. Any ideas?
--
Alex Bligh
Paolo,
On 9 Aug 2013, at 11:03, Paolo Bonzini wrote:
> Il 08/08/2013 23:42, Alex Bligh ha scritto:
>> Add a notify pointer to QEMUTimerList so it knows what to notify
>> on a timer change.
>
> If we do the "two AioContexts" trick, this can simply be a back-pointer
> to the AioContext.
Actually
Paolo,
On 9 Aug 2013, at 15:59, Paolo Bonzini wrote:
> It's not papering over anything.
>
> Timers right now are provided by the event loop. If you make
> AioContexts have timers, you can have a new AioContext for the timers
> that the event loop handles before your patches.
>
> It's not relat
Currently we use a separate timer list group (main_loop_tlg)
for the main loop. This patch replaces this with a dummy AioContext
used just for timers in the main loop.
Signed-off-by: Alex Bligh
---
include/block/aio.h |3 +++
include/qemu/timer.h |9 ++---
main-loop.c |
Convert aio_poll to use deadline based on AioContext's timers.
aio_poll has been changed to return accurately whether progress
has occurred. Prior to this commit, aio_poll always returned
true if g_poll was entered, whether or not any progress was
made. This required a change to tests/test-aio.c w
On 08/09/2013 06:08 PM, Max Filippov wrote:
> +return $ret . " --adjust-vma=" . $vma;
Interesting. I didn't consider this, as that option
doesn't appear in objdump --help.
Thanks,
r~
Convert mainloop to use timeout from default timerlist group
(i.e. the current 3 static timers)
Signed-off-by: Alex Bligh
---
main-loop.c | 45 ++---
1 file changed, 34 insertions(+), 11 deletions(-)
diff --git a/main-loop.c b/main-loop.c
index a44fff6.
Where supported, called prctl(PR_SET_TIMERSLACK, 1, ...) to
set one nanosecond timer slack to increase precision of timer
calls.
Signed-off-by: Alex Bligh
---
configure| 18 ++
qemu-timer.c |7 +++
2 files changed, 25 insertions(+)
diff --git a/configure b/configur
On Sat, Aug 10, 2013 at 11:16 AM, Peter Maydell
wrote:
> On 9 August 2013 20:19, Richard Henderson wrote:
>> We have one host platform (aarch64), and three target platforms
>> (openrisc, unicore32, xtensa) with no built-in disassembly support,
>> thanks largely to gplv3 silliness.
>
> FWIW, there
Rearrange timer.h so it is in order by function type.
Make legacy functions call non-legacy functions rather than vice-versa.
Convert cpus.c to use new API.
Signed-off-by: Alex Bligh
---
cpus.c | 112 -
hw/acpi/piix4.c |2 +-
hw/input/tsc2005.c |4 +-
hw/i
Add a test harness for AioContext timers. The g_source equivalent is
unsatisfactory as it suffers from false wakeups.
Signed-off-by: Alex Bligh
---
tests/test-aio.c | 136 ++
1 file changed, 136 insertions(+)
diff --git a/tests/test-aio.c b/t
Remove alarm timers from qemu-timers.c now we use g_poll / ppoll
instead.
Signed-off-by: Alex Bligh
---
include/qemu/timer.h |3 -
main-loop.c |4 -
qemu-timer.c | 500 +-
vl.c |4 +-
4 files changed, 4
--On 10 August 2013 11:24:01 +0800 Wenchao Xia
wrote:
I'd like form a series which remove AioContext's concept and
bind to glib's main loop more closely. Since changed place will be
a bit much so want to know your opinion before real coding:
This may well clash with the aio / timers pat
Remove the legacy interface from include/qemu/timers.h.
Ensure struct QEMUClock is not exposed at all.
Signed-off-by: Alex Bligh
---
include/qemu/timer.h | 214 +-
qemu-timer.c | 35 +
2 files changed, 5 insertions(+), 244 delet
Convert rtc_clock to be a QEMUClockType
Move rtc_clock users to use the new API
Signed-off-by: Alex Bligh
---
hw/arm/omap1.c|4 ++--
hw/arm/pxa2xx.c | 35 +++
hw/arm/strongarm.c| 10 +-
hw/timer/m48t59.c |
Now we have timerlistgroups implemented and main_loop_tlg, we
no longer need the concept of a default timer list associated
with each clock. Remove it and simplify initialisation of
clocks and timer lists.
Signed-off-by: Alex Bligh
---
include/qemu/timer.h |6 +
qemu-timer.c |
Convert block_job_sleep_ns and co_sleep_ns to use the new timer
API.
Signed-off-by: Alex Bligh
---
block/backup.c|4 ++--
block/commit.c|2 +-
block/mirror.c|4 ++--
block/stream.c|2 +-
blockjob.c|4 ++--
includ
Split QEMUClock into QEMUClock and QEMUTimerList so that we can
have more than one QEMUTimerList associated with the same clock.
Introduce a main_loop_timerlist concept and make existing
qemu_clock_* calls that actually should operate on a QEMUTimerList
call the relevant QEMUTimerList implementati
Notify all timerlists derived from vm_clock in icount warp
calculations.
When calculating timer delay based on vm_clock deadline, use
all timerlists.
For compatibility, maintain an apparent bug where when using
icount, if no vm_clock timer was set, qemu_clock_deadline
would return INT32_MAX and a
Add documentation for existing qemu timer calls. Add new format
calls of the format timer_XXX rather than qemu_XXX_timer
for consistency.
Signed-off-by: Alex Bligh
---
include/qemu/timer.h | 206 --
1 file changed, 184 insertions(+), 22 deletions(
Add utility functions qemu_clock_get_ms and qemu_clock_get_us
Signed-off-by: Alex Bligh
---
include/qemu/timer.h | 28
1 file changed, 28 insertions(+)
diff --git a/include/qemu/timer.h b/include/qemu/timer.h
index fae92b3..2561740 100644
--- a/include/qemu/timer.
Remove qemu_clock_deadline and qemu_timerlist_deadline now we are using
the ns functions throughout.
Signed-off-by: Alex Bligh
---
include/qemu/timer.h | 16
qemu-timer.c | 20
2 files changed, 36 deletions(-)
diff --git a/include/qemu/timer.h b
Introduce new API for creating timers - timer_new and
_ns, _ms, _us derivatives.
Signed-off-by: Alex Bligh
---
include/qemu/timer.h | 69 ++
1 file changed, 69 insertions(+)
diff --git a/include/qemu/timer.h b/include/qemu/timer.h
index 0ae1d53.
include/qemu/timer.h has no need to include main-loop.h and
doing so causes an issue for the next patch. Unfortunately
various files assume including timers.h will pull in main-loop.h.
Untangle this mess.
Signed-off-by: Alex Bligh
---
dma-helpers.c |1 +
hw/dma/xilinx_axidma.c
Add a notify pointer to QEMUTimerList so it knows what to notify
on a timer change.
Signed-off-by: Alex Bligh
---
async.c |7 ++-
include/qemu/timer.h | 27 +++
qemu-timer.c | 31 ---
3 files changed, 53 inserti
Add scripts/switch-timer-api to programatically rewrite source
files to use the new timer system.
Signed-off-by: Alex Bligh
---
scripts/switch-timer-api | 178 ++
1 file changed, 178 insertions(+)
diff --git a/scripts/switch-timer-api b/scripts/switc
[ This patch set is available from git at:
https://github.com/abligh/qemu/tree/aio-timers9
As autogenerated patch 30 of the series is too large for the mailing list. ]
This patch series adds support for timers attached to an AioContext clock
which get called within aio_poll.
In doing so it rem
On qemu_mod_timer_ns, ensure qemu_notify or aio_notify is called to
end the appropriate poll(), irrespective of use_icount value.
On qemu_clock_enable, ensure qemu_notify or aio_notify is called for
all QEMUTimerLists attached to the QEMUClock.
Signed-off-by: Alex Bligh
---
include/qemu/timer.h
Add a QEMUTimerListGroup each AioContext (meaning a QEMUTimerList
associated with each clock is added) and delete it when the
AioContext is freed.
Signed-off-by: Alex Bligh
---
async.c |2 ++
include/block/aio.h |4
tests/test-aio.c |3 +++
tests/te
Add QEMUTimerListGroup and helper functions, to represent
a QEMUTimerList associated with each clock. Add a default
QEMUTimerListGroup representing the default timer lists
which are not associated with any other object (e.g.
an AioContext as added by future patches).
Signed-off-by: Alex Bligh
---
Add aio_timer_init and aio_timer_new wrapper functions.
Signed-off-by: Alex Bligh
---
include/block/aio.h | 43 +++
1 file changed, 43 insertions(+)
diff --git a/include/block/aio.h b/include/block/aio.h
index a13f6e8..b08de19 100644
--- a/include/block
Calculate the timeout in aio_ctx_prepare taking into account
the timers attached to the AioContext.
Alter aio_ctx_check similarly.
Signed-off-by: Alex Bligh
---
async.c | 13 +++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/async.c b/async.c
index 2051921..dd27459
Add utility functions to qemu-timer.c for nanosecond timing.
Add qemu_clock_deadline_ns to calculate deadlines to
nanosecond accuracy.
Add utility function qemu_soonest_timeout to calculate soonest deadline.
Add qemu_timeout_ns_to_ms to convert a timeout in nanoseconds back to
milliseconds for w
Make treatment of disabled clocks consistent in deadline calculation
Signed-off-by: Alex Bligh
---
qemu-timer.c |2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/qemu-timer.c b/qemu-timer.c
index df8f12b..be29adf 100644
--- a/qemu-timer.c
+++ b/qemu-timer.c
@@ -264,7 +264,7
Add qemu_poll_ns which works like g_poll but takes a nanosecond
timeout.
Signed-off-by: Alex Bligh
---
configure| 19 +++
include/qemu/timer.h | 12
qemu-timer.c | 24
3 files changed, 55 insertions(+)
diff --git a/
Make qemu_run_timers and qemu_run_all_timers return progress
so that aio_poll etc. can determine whether a timer has been
run.
Signed-off-by: Alex Bligh
---
include/qemu/timer.h | 21 +++--
qemu-timer.c | 18 --
2 files changed, 31 insertions(+), 8 del
Rename qemu_new_clock to qemu_clock_new.
Expose clock types.
Signed-off-by: Alex Bligh
---
include/qemu/timer.h |4
qemu-timer.c | 12
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/include/qemu/timer.h b/include/qemu/timer.h
index a9afdb3..da43cb
Rename four functions in preparation for new API.
Rename qemu_timer_expired to timer_expired
Rename qemu_timer_expire_time_ns to timer_expire_time_ns
Rename qemu_timer_pending to timer_pending
Rename qemu_timer_expired_ns to timer_expired_ns
Signed-off-by: Alex Bligh
---
backends/baum.c
On 9 August 2013 20:19, Richard Henderson wrote:
> We have one host platform (aarch64), and three target platforms
> (openrisc, unicore32, xtensa) with no built-in disassembly support,
> thanks largely to gplv3 silliness.
FWIW, there's an aarch64 BSD disassembler available as part
of vixl: https:
On 10 August 2013 04:23, Anup Patel wrote:
>
> On Fri, Aug 9, 2013 at 9:53 PM, Peter Maydell
> wrote:
>> +static const MemMapEntry a15memmap[] = {
>> +[VIRT_FLASH] = { 0, 0x10 },
>> +[VIRT_CPUPERIPHS] = { 0x10, 0x8000 },
>> +/* GIC distributor and CPU interfaces sit inside th
On 9 August 2013 20:03, Mian M. Hamayun
wrote:
> On 09/08/2013 15:24, Peter Maydell wrote:
>> This set of #ifdefs is pretty messy. I suggest splitting kvm.c
>> into three:
>>target-arm/kvm.c -- anything common to both 32 and 64 bit
>>target-arm/kvm32.c -- non-TARGET_AARCH64 functions
>>
Il 10/08/2013 05:27, liu ping fan ha scritto:
>> > ... except if we get rid of TimerListGroup completely and put it in
>> > AioContext. To do so, we can have _two_ AioContexts in main-loop.c.
>> > One is for the block layer, the other is only used for timers. Later we
> Why can the AioContexts of
Il 10/08/2013 00:57, Alex Bligh ha scritto:
> There are a large number of users of qemu_free_timer (now timer_free).
>
> If someone does not call qemu_free_timer having called qemu_new_timer,
> the timer sits there and basically does nothing.
If you have called qemu_del_timer, it is a memory leak
Il 10/08/2013 05:24, Wenchao Xia ha scritto:
> Hi folks,
> I'd like form a series which remove AioContext's concept and
> bind to glib's main loop more closely. Since changed place will be
> a bit much so want to know your opinion before real coding:
I'm not sure I understand... What does it bu
On 08/09/2013 08:03 AM, Stefan Hajnoczi wrote:
On Fri, Aug 09, 2013 at 03:05:22PM +0100, Andrei Mikhailovsky wrote:
I can confirm that I am having similar issues with ubuntu vm guests using fio
with bs=4k direct=1 numjobs=4 iodepth=16. Occasionally i see hang tasks,
occasionally guest vm stops
53 matches
Mail list logo