Re: [Qemu-devel] [PATCH 0/2] Disassembly with external objdump

2013-08-10 Thread Richard Henderson
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

Re: [Qemu-devel] [PATCH 0/2] Disassembly with external objdump

2013-08-10 Thread Max Filippov
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

Re: [Qemu-devel] [PATCH 0/2] Disassembly with external objdump

2013-08-10 Thread Richard Henderson
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~

Re: [Qemu-devel] [SeaBIOS] [PATCH] acpi: hide 64-bit PCI hole for Windows XP

2013-08-10 Thread Kevin O'Connor
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, > > >

Re: [Qemu-devel] [PATCH 0/2] Disassembly with external objdump

2013-08-10 Thread Peter Maydell
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

Re: [Qemu-devel] [RFC] [PATCHv9 00/31] aio / timers: Add AioContext timers and use ppoll

2013-08-10 Thread Alex Bligh
--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

Re: [Qemu-devel] [RFC] [PATCHv9 00/31] aio / timers: Add AioContext timers and use ppoll

2013-08-10 Thread Paolo Bonzini
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

[Qemu-devel] [RFC] [PATCHv2] aio / timers pt2: Replace main_loop_tlg with qemu_dummy_timer_ctx

2013-08-10 Thread Alex Bligh
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 |

[Qemu-devel] peculiar make check problems: tests/libqtest.c

2013-08-10 Thread Alex Bligh
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

Re: [Qemu-devel] [RFC] [PATCHv8 11/30] aio / timers: Add a notify callback to QEMUTimerList

2013-08-10 Thread 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

Re: [Qemu-devel] [RFC] [PATCHv8 09/30] aio / timers: Add QEMUTimerListGroup and helper functions

2013-08-10 Thread Alex Bligh
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

[Qemu-devel] [RFC] [PATCH] aio / timers pt2: Replace main_loop_tlg with qemu_dummy_timer_ctx

2013-08-10 Thread Alex Bligh
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 |

[Qemu-devel] [RFC] [PATCHv9 15/31] aio / timers: Convert aio_poll to use AioContext timers' deadline

2013-08-10 Thread Alex Bligh
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

Re: [Qemu-devel] [PATCH 2/2] disas: Add disas-objdump.pl

2013-08-10 Thread Richard Henderson
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~

[Qemu-devel] [RFC] [PATCHv9 16/31] aio / timers: Convert mainloop to use timeout

2013-08-10 Thread Alex Bligh
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.

[Qemu-devel] [RFC] [PATCHv9 06/31] aio / timers: Add prctl(PR_SET_TIMERSLACK, 1, ...) to reduce timer slack

2013-08-10 Thread Alex Bligh
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

Re: [Qemu-devel] [PATCH 0/2] Disassembly with external objdump

2013-08-10 Thread Claudio Fontana
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

[Qemu-devel] [RFC] [PATCHv9 24/31] aio / timers: Rearrange timer.h & make legacy functions call non-legacy

2013-08-10 Thread Alex Bligh
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

[Qemu-devel] [RFC] [PATCHv9 28/31] aio / timers: Add test harness for AioContext timers

2013-08-10 Thread Alex Bligh
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

[Qemu-devel] [RFC] [PATCHv9 21/31] aio / timers: Remove alarm timers

2013-08-10 Thread Alex Bligh
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

Re: [Qemu-devel] [RFC] Convert AioContext to Gsource sub classes

2013-08-10 Thread Alex Bligh
--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

[Qemu-devel] [RFC] [PATCHv9 31/31] aio / timers: Remove legacy interface

2013-08-10 Thread Alex Bligh
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

[Qemu-devel] [RFC] [PATCHv9 26/31] aio / timers: Convert rtc_clock to be a QEMUClockType

2013-08-10 Thread Alex Bligh
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 |

[Qemu-devel] [RFC] [PATCHv9 25/31] aio / timers: Remove main_loop_timerlist

2013-08-10 Thread Alex Bligh
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 |

[Qemu-devel] [RFC] [PATCHv9 27/31] aio / timers: convert block_job_sleep_ns and co_sleep_ns to new API

2013-08-10 Thread Alex Bligh
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

[Qemu-devel] [RFC] [PATCHv9 08/31] aio / timers: Split QEMUClock into QEMUClock and QEMUTimerList

2013-08-10 Thread Alex Bligh
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

[Qemu-devel] [RFC] [PATCHv9 19/31] aio / timers: Use all timerlists in icount warp calculations

2013-08-10 Thread Alex Bligh
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

[Qemu-devel] [RFC] [PATCHv9 20/31] aio / timers: Add documentation and new format calls

2013-08-10 Thread Alex Bligh
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(

[Qemu-devel] [RFC] [PATCHv9 23/31] aio / timers: Add qemu_clock_get_ms and qemu_clock_get_ms

2013-08-10 Thread Alex Bligh
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.

[Qemu-devel] [RFC] [PATCHv9 22/31] aio / timers: Remove legacy qemu_clock_deadline & qemu_timerlist_deadline

2013-08-10 Thread Alex Bligh
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

[Qemu-devel] [RFC] [PATCHv9 18/31] aio / timers: Introduce new API timer_new and friends

2013-08-10 Thread Alex Bligh
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.

[Qemu-devel] [RFC] [PATCHv9 09/31] aio / timers: Untangle include files

2013-08-10 Thread Alex Bligh
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

[Qemu-devel] [RFC] [PATCHv9 12/31] aio / timers: Add a notify callback to QEMUTimerList

2013-08-10 Thread Alex Bligh
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

[Qemu-devel] [RFC] [PATCHv9 29/31] aio / timers: Add scripts/switch-timer-api

2013-08-10 Thread Alex Bligh
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

[Qemu-devel] [RFC] [PATCHv9 00/31] aio / timers: Add AioContext timers and use ppoll

2013-08-10 Thread Alex Bligh
[ 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

[Qemu-devel] [RFC] [PATCHv9 17/31] aio / timers: On timer modification, qemu_notify or aio_notify

2013-08-10 Thread Alex Bligh
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

[Qemu-devel] [RFC] [PATCHv9 11/31] aio / timers: Add QEMUTimerListGroup to AioContext

2013-08-10 Thread Alex Bligh
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

[Qemu-devel] [RFC] [PATCHv9 10/31] aio / timers: Add QEMUTimerListGroup and helper functions

2013-08-10 Thread Alex Bligh
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 ---

[Qemu-devel] [RFC] [PATCHv9 14/31] aio / timers: Add aio_timer_init & aio_timer_new wrappers

2013-08-10 Thread 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

[Qemu-devel] [RFC] [PATCHv9 13/31] aio / timers: aio_ctx_prepare sets timeout from AioContext timers

2013-08-10 Thread Alex Bligh
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

[Qemu-devel] [RFC] [PATCHv9 03/31] aio / timers: add qemu-timer.c utility functions

2013-08-10 Thread Alex Bligh
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

[Qemu-devel] [RFC] [PATCHv9 04/31] aio / timers: Consistent treatment of disabled clocks for deadlines

2013-08-10 Thread Alex Bligh
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

[Qemu-devel] [RFC] [PATCHv9 05/31] aio / timers: add ppoll support with qemu_poll_ns

2013-08-10 Thread Alex Bligh
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/

[Qemu-devel] [RFC] [PATCHv9 07/31] aio / timers: Make qemu_run_timers and qemu_run_all_timers return progress

2013-08-10 Thread Alex Bligh
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

[Qemu-devel] [RFC] [PATCHv9 02/31] aio / timers: Rename qemu_new_clock and expose clock types

2013-08-10 Thread Alex Bligh
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

[Qemu-devel] [RFC] [PATCHv9 01/31] aio / timers: Rename qemu_timer_* functions

2013-08-10 Thread Alex Bligh
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

Re: [Qemu-devel] [PATCH 0/2] Disassembly with external objdump

2013-08-10 Thread Peter Maydell
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:

Re: [Qemu-devel] [PATCH v5 2/2] hw/arm: Add 'virt' platform

2013-08-10 Thread Peter Maydell
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

Re: [Qemu-devel] [PATCH v2 3/7] AARCH64: Add aarch64 CPU initialization, get and put registers support

2013-08-10 Thread Peter Maydell
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 >>

Re: [Qemu-devel] [RFC] [PATCHv8 09/30] aio / timers: Add QEMUTimerListGroup and helper functions

2013-08-10 Thread Paolo Bonzini
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

Re: [Qemu-devel] [RFC] [PATCHv8 13/30] aio / timers: Add aio_timer_new wrapper

2013-08-10 Thread Paolo Bonzini
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

Re: [Qemu-devel] [RFC] Convert AioContext to Gsource sub classes

2013-08-10 Thread Paolo Bonzini
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

Re: [Qemu-devel] [ceph-users] qemu-1.4.0 and onwards, linux kernel 3.2.x, ceph-RBD, heavy I/O leads to kernel_hung_tasks_timout_secs message and unresponsive qemu-process, [Bug 1207686]

2013-08-10 Thread Josh Durgin
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