Re: [Qemu-devel] [PATCH V5] migration: add capability to bypass the shared memory

2018-04-25 Thread Lai Jiangshan
On Fri, Apr 20, 2018 at 12:38 AM, Dr. David Alan Gilbert wrote: >> -static void ram_list_init_bitmaps(void) >> +static void ram_list_init_bitmaps(RAMState *rs) >> { >> RAMBlock *block; >> unsigned long pages; >> @@ -2151,9 +2152,17 @@ static void ram_list_init_bitmaps(void) >> /*

Re: [Qemu-devel] [PATCH V4] migration: add capability to bypass the shared memory

2018-04-16 Thread Lai Jiangshan
On Tue, Apr 10, 2018 at 1:30 AM, Dr. David Alan Gilbert wrote: >> >> +bool migrate_bypass_shared_memory(void) >> +{ >> +MigrationState *s; >> + >> +/* it is not workable with postcopy yet. */ >> +if (migrate_postcopy_ram()) { >> +return false; >> +} > > Please change this

[Qemu-devel] [PATCH V5] migration: add capability to bypass the shared memory

2018-04-16 Thread Lai Jiangshan
Ortiz Cc: Sebastien Boeuf Cc: James O. D. Hunt Cc: Xu Wang Cc: Peng Tao Cc: Xiao Guangrong Cc: Xiao Guangrong Signed-off-by: Lai Jiangshan --- Changes in V5: check cappability conflict in migrate_caps_check() Changes in V4: fixes checkpatch.pl errors Changes in V3: rebased on upstream

Re: [Qemu-devel] [PATCH V4] migration: add capability to bypass the shared memory

2018-04-11 Thread Lai Jiangshan
On Tue, Apr 10, 2018 at 1:30 AM, Dr. David Alan Gilbert wrote: > Hi, > > * Lai Jiangshan (jiangshan...@gmail.com) wrote: >> 1) What's this >> >> When the migration capability 'bypass-shared-memory' >> is set, the shared memory will be bypassed when

[Qemu-devel] [PATCH V4] migration: add capability to bypass the shared memory

2018-04-04 Thread Lai Jiangshan
c: Xiao Guangrong Signed-off-by: Lai Jiangshan --- Changes in V4: fixes checkpatch.pl errors Changes in V3: rebased on upstream master update the available version of the capability to v2.13 Changes in V2: rebased on 2.11.1 migration/migration.c | 14 ++ migration/migrat

[Qemu-devel] [PATCH V3] migration: add capability to bypass the shared memory

2018-04-01 Thread Lai Jiangshan
c: Xiao Guangrong Signed-off-by: Lai Jiangshan --- Changes in V3: rebased on upstream master update the available version of the capability to v2.13 Changes in V2: rebased on 2.11.1 migration/migration.c | 13 + migration/migration.h | 1 + migration/ram.c | 26 +++

[Qemu-devel] [PATCH] migration: add capability to bypass the shared memory

2018-03-31 Thread Lai Jiangshan
c: Xiao Guangrong Signed-off-by: Lai Jiangshan --- migration/migration.c | 13 + migration/migration.h | 1 + migration/ram.c | 26 +- qapi/migration.json | 8 +++- 4 files changed, 38 insertions(+), 10 deletions(-) diff --git a/migration/migrat

Re: [Qemu-devel] [PATCH] migration: add capability to bypass the shared memory

2018-03-31 Thread Lai Jiangshan
The attached patch is based on v2.11.1. It was pushed on https://github.com/hyperhq/qemu v2.11.1-template The updated patch for upstream qemu is on https://github.com/hyperhq/qemu upstream-template On Sat, Mar 31, 2018 at 4:45 PM, Lai Jiangshan wrote: > --- > migration/migration.

Re: [Qemu-devel] [PATCH] add migration capability to bypass the shared memory

2017-01-12 Thread Lai Jiangshan
e guest? i.e, the mapping from guest physical address to the > host virtual address be the same? I don't understand the question, the patch doesn't change the memory hotplugging nor the way how the pages are mapped in the guest physical. > > Thanks, > Jianjun > > >

Re: [Qemu-devel] [PATCH] add migration capability to bypass the shared memory

2016-08-29 Thread Lai Jiangshan
On Wed, Aug 10, 2016 at 5:03 PM, Juan Quintela wrote: > Lai Jiangshan wrote: > > Hi > > First of all, I like a lot the patchset, but I would preffer to split it > to find "possible" bugs along the lines, especially in postcopy, but not only. Hello, thanks for rev

Re: [Qemu-devel] [PATCH V2] add migration capability to bypass the shared memory

2016-08-12 Thread Lai Jiangshan
On Fri, Aug 12, 2016 at 2:48 PM, Li, Liang Z wrote: >> >> > BTW. Is it possible to bypass the shared block in the >> >> 'ram_find_and_save_block'? >> >> > I mean no to check if a page is dirty for a shared block, it may >> >> > make things >> >> faster. >> >> >> >> Nice spotted. That would make t

Re: [Qemu-devel] [PATCH V2] add migration capability to bypass the shared memory

2016-08-11 Thread Lai Jiangshan
Note, the old local migration patchset: https://lists.gnu.org/archive/html/qemu-devel/2013-12/msg00073.html this patch can be considered as a new local migration implementation, but with more restrictions (the memory must set shared when boot the qemu)

Re: [Qemu-devel] [PATCH V2] add migration capability to bypass the shared memory

2016-08-11 Thread Lai Jiangshan
On Thu, Aug 11, 2016 at 3:11 PM, Li, Liang Z wrote: >> >> >> >> I might have missed something, could you tell me more? >> >> >> >> void bitmap_set(unsigned long *map, long start, long nr); I think the >> >> @start and @nr are both the number of the bits. >> >> >> >> thanks, >> >> Lai >> > >> > You

Re: [Qemu-devel] [PATCH V2] add migration capability to bypass the shared memory

2016-08-09 Thread Lai Jiangshan
On Wed, Aug 10, 2016 at 10:22 AM, Li, Liang Z wrote: > Hi Jiangshan, > > Glad to see your patch. It's a simple implementation which could provide very > useful functions. > >> +static void migration_bitmap_init(unsigned long *bitmap) { >> +RAMBlock *block; >> + >> +bitmap_clear(bitmap, 0,

Re: [Qemu-devel] [PATCH] add migration capability to bypass the shared memory

2016-08-09 Thread Lai Jiangshan
On Wed, Aug 10, 2016 at 3:12 AM, Dr. David Alan Gilbert wrote: > * Lai Jiangshan (jiangshan...@gmail.com) wrote: >> The feature vm-template makes the containers(VMs) can >> be started in 130ms and save 80M memory for every >> container(VM). So that the hyper containers

[Qemu-devel] [PATCH V2] add migration capability to bypass the shared memory

2016-08-09 Thread Lai Jiangshan
ure. No one need yet another post copy migration method, but it is possible when some crazy man need it. Changed from v1: fix style Signed-off-by: Lai Jiangshan --- exec.c| 5 + include/exec/cpu-common.h | 1 + include/migration/migration.h | 1 + migration/migr

[Qemu-devel] [PATCH] add migration capability to bypass the shared memory

2016-08-09 Thread Lai Jiangshan
et another post copy migration method, but it is possible when some crazy man need it. Signed-off-by: Lai Jiangshan --- exec.c| 5 + include/exec/cpu-common.h | 1 + include/migration/migration.h | 1 + migration/migration.c | 9 + migration/ram.

[Qemu-devel] [PATCH 2/2 V2] coroutine: add qemu_coroutine_run() wrapper

2012-04-06 Thread Lai Jiangshan
Wrapper for qemu_coroutine_create()+qemu_coroutine_enter() Signed-off-by: Lai Jiangshan Reviewed-by: Paolo Bonzini --- block.c | 28 +++- hw/9pfs/virtio-9p.c |4 +--- nbd.c |2 +- qemu-coroutine.h| 12 qemu-io.c

[Qemu-devel] [PATCH 1/2 V2] coroutine: init unlock_bh during boot

2012-04-06 Thread Lai Jiangshan
use __attribute__((constructor)) to do the initialization. Signed-off-by: Lai Jiangshan Reviewed-by: Paolo Bonzini --- qemu-coroutine-lock.c |9 + 1 files changed, 5 insertions(+), 4 deletions(-) diff --git a/qemu-coroutine-lock.c b/qemu-coroutine-lock.c index 26ad76b..03b999e

[Qemu-devel] [PATCH 05/10] coroutine: add qemu_co_runnable_schedule()

2012-04-03 Thread Lai Jiangshan
split qemu_co_queue_next() as two parts: the first part is dequeuing next from the wait queue. the second part is schedule it to the runnable queue(qemu_co_runnable_schedule()) Signed-off-by: Lai Jiangshan --- qemu-coroutine-lock.c |9 +++-- 1 files changed, 7 insertions(+), 2

[Qemu-devel] [PATCH 03/10] coroutine: rename qemu_co_queue_next_bh() to qemu_co_process_runnable()

2012-04-03 Thread Lai Jiangshan
Signed-off-by: Lai Jiangshan --- qemu-coroutine-lock.c |6 +++--- trace-events |2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/qemu-coroutine-lock.c b/qemu-coroutine-lock.c index 10e8dbb..90141cd 100644 --- a/qemu-coroutine-lock.c +++ b/qemu-coroutine

[Qemu-devel] [PATCH 06/10] coroutine: move runnale coroutine code to qemu-coroutine.c

2012-04-03 Thread Lai Jiangshan
runnable coroutine queue is the core mangement of the coroutine. Signed-off-by: Lai Jiangshan --- qemu-coroutine-lock.c | 27 --- qemu-coroutine.c | 27 +++ qemu-coroutine.h |7 +++ trace-events |2 +- 4 files

[Qemu-devel] [PATCH 01/10] coroutine: use qemu_coroutine_switch() directly

2012-04-03 Thread Lai Jiangshan
When qemu_coroutine_switch() in the qemu_coroutine_yield() returns, It must be someone calls qemu_coroutine_enter() for it, so the @to is active, the tests in coroutine_swap() are unneeded, so we use qemu_coroutine_switch() directly in qemu_coroutine_yield(). Signed-off-by: Lai Jiangshan

[Qemu-devel] [PATCH 09/10] coroutine: schedule timeout coroutine instead process it directly

2012-04-03 Thread Lai Jiangshan
Avoid a timer callback spends too much time. Signed-off-by: Lai Jiangshan --- qemu-coroutine-sleep.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/qemu-coroutine-sleep.c b/qemu-coroutine-sleep.c index fd65274..df9254a 100644 --- a/qemu-coroutine-sleep.c +++ b/qemu

[Qemu-devel] [PATCH 08/10] coroutine: process the coroutines woken by child when child yield

2012-04-03 Thread Lai Jiangshan
If the child wake up someone, process them. It would the child complete its works if woken coroutine release the locks that the child needs. It may help for the cache, if the child wake up some someone, they are probably accessing the same data. Signed-off-by: Lai Jiangshan --- qemu

[Qemu-devel] [PATCH 07/10] coroutine: split qemu-coroutine-lock.c

2012-04-03 Thread Lai Jiangshan
queues are not just internal things for locks, split them. Signed-off-by: Lai Jiangshan --- Makefile.objs |2 +- qemu-coroutine-lock.c | 49 +-- qemu-coroutine-queue.c | 76 trace-events

[Qemu-devel] [PATCH 04/10] coroutine: init co_runnable_bh during boot

2012-04-03 Thread Lai Jiangshan
use __attribute__((constructor)) to do the initialization. Signed-off-by: Lai Jiangshan --- qemu-coroutine-lock.c |9 + 1 files changed, 5 insertions(+), 4 deletions(-) diff --git a/qemu-coroutine-lock.c b/qemu-coroutine-lock.c index 90141cd..7c29bc4 100644 --- a/qemu-coroutine

[Qemu-devel] [PATCH 10/10] coroutine: add qemu_coroutine_run() wrapper

2012-04-03 Thread Lai Jiangshan
Wrapper for qemu_coroutine_create()+qemu_coroutine_enter() Signed-off-by: Lai Jiangshan --- block.c | 28 +++- hw/9pfs/virtio-9p.c |4 +--- nbd.c |2 +- qemu-coroutine.h| 12 qemu-io.c |4 +--- 5 files

[Qemu-devel] [PATCH 02/10] coroutine: rename unlock_bh_queue to co_runnable_queue

2012-04-03 Thread Lai Jiangshan
It stands for runnable Coroutines. Signed-off-by: Lai Jiangshan --- qemu-coroutine-lock.c | 18 +- 1 files changed, 9 insertions(+), 9 deletions(-) diff --git a/qemu-coroutine-lock.c b/qemu-coroutine-lock.c index 26ad76b..10e8dbb 100644 --- a/qemu-coroutine-lock.c +++ b/qemu

Re: [Qemu-devel] [PATCH] use: fix bit test

2012-04-02 Thread Lai Jiangshan
On 04/02/2012 05:50 PM, Andreas Färber wrote: > Am 02.04.2012 08:35, schrieb Lai Jiangshan: >> >> use & instead of the wrong && >> >> Signed-off-by: Lai Jiangshan > > Patch looks okay but the subject should probably be fixed to say "usb:" &g

[Qemu-devel] [PATCH] use: fix bit test

2012-04-01 Thread Lai Jiangshan
use & instead of the wrong && Signed-off-by: Lai Jiangshan --- diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c index 73b0c7f..89c2406 100644 --- a/hw/usb/hcd-xhci.c +++ b/hw/usb/hcd-xhci.c @@ -502,7 +502,7 @@ static void xhci_irq_update(XHCIState *xhci) int level = 0;

Re: [Qemu-devel] [PATCH 2/7] Convert pc cpu to qdev

2012-03-14 Thread Lai Jiangshan
On 03/13/2012 07:04 PM, Andreas Färber wrote: > Am 13.03.2012 10:32, schrieb Lai Jiangshan: >> On 02/16/2012 08:51 PM, Anthony Liguori wrote: >>> On 02/16/2012 06:01 AM, Jan Kiszka wrote: >>>> On 2012-02-16 00:16, Igor Mammedov wrote: >>>>

Re: [Qemu-devel] [PATCH 2/7] Convert pc cpu to qdev

2012-03-13 Thread Lai Jiangshan
On 02/16/2012 08:51 PM, Anthony Liguori wrote: > On 02/16/2012 06:01 AM, Jan Kiszka wrote: >> On 2012-02-16 00:16, Igor Mammedov wrote: >>> +static ICCBusDeviceInfo cpu_device_info = { >>> +.qdev.name = "cpu-pc", >>> +.qdev.size = sizeof(CPUPC), >>> +.qdev.reset = cpu_device_reset, >>>

[Qemu-devel] [PATCH 1/2] cleanup, Remove duplicated code

2012-01-12 Thread Lai Jiangshan
These two blocks of code are exactly the same, remove one. Signed-off-by: Lai Jiangshan --- cpus.c |8 1 files changed, 0 insertions(+), 8 deletions(-) diff --git a/cpus.c b/cpus.c index 857f96f..f45a438 100644 --- a/cpus.c +++ b/cpus.c @@ -565,14 +565,6 @@ static void

[Qemu-devel] [PATCH 2/2] cleanup, save a syscall

2012-01-12 Thread Lai Jiangshan
Signed-off-by: Lai Jiangshan --- main-loop.c |4 +--- 1 files changed, 1 insertions(+), 3 deletions(-) diff --git a/main-loop.c b/main-loop.c index 60e9748..692381c 100644 --- a/main-loop.c +++ b/main-loop.c @@ -142,14 +142,12 @@ static int qemu_signal_init(void) */ sigemptyset

[Qemu-devel] [PATCH 1/1 V6 resent ] qemu-kvm: fix improper nmi emulation

2011-10-25 Thread Lai Jiangshan
doing (3). > > > > (note an additional issue with 3 is whether to make it a vm or vcpu > > ioctl - we've been assuming vcpu ioctl but it's not necessarily the best > > choice). > > It is the 2) approach. It only changes the user space site, the kernel site is

[Qemu-devel] [BUG] qemu-kvm: memory_region_add_subregion_common: Assertion `!subregion->parent' failed.

2011-10-25 Thread Lai Jiangshan
This bug is triggered for my Windows XP guest, but not for my linux guests. The gdb result shows that a "vga.vram" memoryregion is added twice. libvirt log --- 2011-10-25 16:18:58.117: starting up LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin QEMU_AUDIO_DRV=none /home/laijs/bin/qe

Re: [Qemu-devel] [PATCH 1/1 V6] qemu-kvm: fix improper nmi emulation

2011-10-19 Thread Lai Jiangshan
On 10/19/2011 05:29 PM, Avi Kivity wrote: > > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA1 > > On 10/18/2011 09:41 PM, Jan Kiszka wrote: >> >> Looks OK to me. >> >> > > Same here. Who will merge it? Thanks, Lai > > - -- > I have a truly marvellous patch that fixes the bug which this > si

[Qemu-devel] [PATCH 1/1 V6] qemu: fix improper nmi emulation

2011-10-19 Thread Lai Jiangshan
hen upstream gains that support. I'm working on > a basic version an will incorporate the logic if your qemu patch is > already available. > > Jan > Patch for qemu.git From: Lai Jiangshan Currently, NMI interrupt is blindly sent to all the vCPUs when NMI button event hap

Re: [Qemu-devel] [PATCH 1/1 V6] qemu-kvm: fix improper nmi emulation

2011-10-18 Thread Lai Jiangshan
On 10/19/2011 03:41 AM, Jan Kiszka wrote: > On 2011-10-17 18:00, Lai Jiangshan wrote: >> On 10/17/2011 05:49 PM, Avi Kivity wrote: >>> On 10/17/2011 11:40 AM, Lai Jiangshan wrote: >>>>>> >>>>> >>>>> LINT1 may have been programmed as

[Qemu-devel] [PATCH 1/1 V6] qemu-kvm: fix improper nmi emulation

2011-10-17 Thread Lai Jiangshan
On 10/17/2011 05:49 PM, Avi Kivity wrote: > On 10/17/2011 11:40 AM, Lai Jiangshan wrote: >>>> >>> >>> LINT1 may have been programmed as a level -triggered interrupt instead >>> of edge triggered (NMI or interrupt). We can use the ioctl argument for >&g

Re: [Qemu-devel] [PATCH 1/1 V5] kernel/kvm: introduce KVM_SET_LINT1 and fix improper nmi emulation

2011-10-17 Thread Lai Jiangshan
On 10/16/2011 05:39 PM, Avi Kivity wrote: > On 10/14/2011 11:03 AM, Lai Jiangshan wrote: >> Currently, NMI interrupt is blindly sent to all the vCPUs when NMI >> button event happens. This doesn't properly emulate real hardware on >> which NMI button event triggers LINT

Re: [Qemu-devel] [PATCH 1/1 V5] kernel/kvm: introduce KVM_SET_LINT1 and fix improper nmi emulation

2011-10-17 Thread Lai Jiangshan
On 10/16/2011 05:39 PM, Avi Kivity wrote: > On 10/14/2011 11:03 AM, Lai Jiangshan wrote: >> Currently, NMI interrupt is blindly sent to all the vCPUs when NMI >> button event happens. This doesn't properly emulate real hardware on >> which NMI button event triggers LINT

Re: [Qemu-devel] [PATCH 1/1 V5 tuning] kernel/kvm: introduce KVM_SET_LINT1 and fix improper nmi emulation

2011-10-16 Thread Lai Jiangshan
On 10/14/2011 08:07 PM, Jan Kiszka wrote: > On 2011-10-14 13:59, Sasha Levin wrote: >> On Fri, 2011-10-14 at 17:51 +0800, Lai Jiangshan wrote: >>> Currently, NMI interrupt is blindly sent to all the vCPUs when NMI >>> button event happens. This doesn't properly em

[Qemu-devel] [PATCH 1/2 V5 tuning] qemu-kvm: Synchronize kernel headers

2011-10-14 Thread Lai Jiangshan
Synchronize newest kernel headers which have KVM_CAP_SET_LINT1 and KVM_SET_LINT1 by ./scripts/update-linux-headers.sh Signed-off-by: Lai Jiangshan --- linux-headers/asm-powerpc/kvm.h | 19 +-- linux-headers/asm-x86/kvm_para.h | 14 ++ linux-headers

[Qemu-devel] [PATCH 1/1 V5 tuning] kernel/kvm: introduce KVM_SET_LINT1 and fix improper nmi emulation

2011-10-14 Thread Lai Jiangshan
that kdump initiated by NMI sometimes doesn't work on KVM, because kdump assumes NMI is masked on CPUs other than CPU0. With this patch, we introduce introduce KVM_SET_LINT1, and we can use KVM_SET_LINT1 to correctly emulate NMI button without change the old KVM_NMI behavior. Signed-o

Re: [Qemu-devel] [PATCH 1/1 V5] kernel/kvm: introduce KVM_SET_LINT1 and fix improper nmi emulation

2011-10-14 Thread Lai Jiangshan
On 10/14/2011 05:07 PM, Jan Kiszka wrote: > On 2011-10-14 11:03, Lai Jiangshan wrote: >> Currently, NMI interrupt is blindly sent to all the vCPUs when NMI >> button event happens. This doesn't properly emulate real hardware on >> which NMI button event triggers LINT1. Be

[Qemu-devel] [PATCH 2/2 V5] qemu-kvm: fix improper nmi emulation

2011-10-14 Thread Lai Jiangshan
rwise when in-kernel irqchip is enabled, get the in-kernel LAPIC states and test the APIC_LVT_MASKED, if LINT1 is unmasked, and then delivering the NMI directly. - otherwise, userland lapic emulates NMI button and inject NMI if it is unmasked. Signed-off-by: Lai Jiangshan Reported-by: Kenji

[Qemu-devel] [PATCH 1/1 V5] kernel/kvm: introduce KVM_SET_LINT1 and fix improper nmi emulation

2011-10-14 Thread Lai Jiangshan
that kdump initiated by NMI sometimes doesn't work on KVM, because kdump assumes NMI is masked on CPUs other than CPU0. With this patch, we introduce introduce KVM_SET_LINT1, and we can use KVM_SET_LINT1 to correctly emulate NMI button without change the old KVM_NMI behavior. Signed-o

[Qemu-devel] [PATCH 1/2 V5] qemu-kvm: Synchronize kernel headers

2011-10-14 Thread Lai Jiangshan
Synchronize newest kernel headers which have KVM_CAP_SET_LINT1 and KVM_SET_LINT1 by ./scripts/update-linux-headers.sh Signed-off-by: Lai Jiangshan --- linux-headers/asm-powerpc/kvm.h | 19 +-- linux-headers/asm-x86/kvm.h |1 + linux-headers/asm-x86

Re: [Qemu-devel] [PATCH 1/1 V4] qemu-kvm: fix improper nmi emulation

2011-10-14 Thread Lai Jiangshan
On 10/14/2011 02:49 PM, Jan Kiszka wrote: > On 2011-10-14 08:36, Lai Jiangshan wrote: >> On 10/14/2011 01:53 PM, Jan Kiszka wrote: >>> On 2011-10-14 02:53, Lai Jiangshan wrote: >>>> >>>>> >>>>> As explained in some other mail, we could

[Qemu-devel] [PATCH 1/1 V4] qemu-kvm: fix improper nmi emulation

2011-10-13 Thread Lai Jiangshan
On 10/14/2011 01:53 PM, Jan Kiszka wrote: > On 2011-10-14 02:53, Lai Jiangshan wrote: >> >>> >>> As explained in some other mail, we could then emulate the missing >>> kernel feature by reading out the current in-kernel APIC state, testing >>> if L

[Qemu-devel] [PATCH 1/1 V3] kernel/kvm: fix improper nmi emulation

2011-10-13 Thread Lai Jiangshan
Tested-by: Lai Jiangshan --- Documentation/virtual/kvm/api.txt | 18 ++ arch/x86/kvm/irq.h|1 + arch/x86/kvm/lapic.c |7 +++ arch/x86/kvm/x86.c|5 - 4 files changed, 30 insertions(+), 1 deletions(-) diff --git a/Doc

[Qemu-devel] [PATCH 1/1 V3] qemu-kvm: fix improper nmi emulation

2011-10-13 Thread Lai Jiangshan
in-kernel irqchip is enabled, send nmi event to kernel as the current code does. LINT1 should be emulated in kernel. Signed-off-by: Kenji Kaneshige Tested-by: Lai Jiangshan --- hw/apic.c | 11 +++ hw/apic.h |1 + monitor.c |6 +- 3 files changed, 17 insertions(+), 1 deletion

Re: [Qemu-devel] [PATCH 2/2 V2] qemu-kvm: fix improper nmi emulation

2011-10-13 Thread Lai Jiangshan
> > As explained in some other mail, we could then emulate the missing > kernel feature by reading out the current in-kernel APIC state, testing > if LINT1 is unmasked, and then delivering the NMI directly. > Only the thread of the VCPU can safely get the in-kernel LAPIC states, so this approac

[Qemu-devel] [PATCH 2/2 V2] qemu-kvm: fix improper nmi emulation

2011-10-11 Thread Lai Jiangshan
in-kernel irqchip is enabled, send nmi event to kernel as the current code does. LINT1 should be emulated in kernel. (laijs) changed from v1: use KVM_CAP_LAPIC_NMI adjust the pic_deliver_nmi() API Signed-off-by: Kenji Kaneshige Tested-by: Lai Jiangshan --- hw/apic.c | 26

[Qemu-devel] [PATCH 1/2 V2] qemu-kvm: Synchronize kernel headers

2011-10-11 Thread Lai Jiangshan
Synchronize newest kernel headers which have KVM_CAP_IRQCHIP_LAPIC_NMI by ./scripts/update-linux-headers.sh Signed-off-by: Lai Jiangshan --- linux-headers/asm|1 + linux-headers/asm-powerpc/kvm.h | 19 +-- linux-headers/asm-x86/kvm_para.h | 14

[Qemu-devel] [PATCH 1/1 V2] kernel/kvm: fix improper nmi emulation

2011-10-11 Thread Lai Jiangshan
MI Signed-off-by: Kenji Kaneshige Tested-by: Lai Jiangshan --- Documentation/virtual/kvm/api.txt | 20 arch/x86/kvm/irq.h|1 + arch/x86/kvm/lapic.c |7 +++ arch/x86/kvm/x86.c| 12 include/l

Re: [Qemu-devel] [PATCH] qemu: Fix inject-nmi

2011-10-09 Thread Lai Jiangshan
On 09/26/2011 04:21 PM, Avi Kivity wrote: > On 09/25/2011 08:22 PM, Jan Kiszka wrote: >> On 2011-09-25 16:07, Avi Kivity wrote: >> > On 09/23/2011 12:31 PM, Lai Jiangshan wrote: >> >> > Moreover: wrong indention. >> >> > >> >> &

[Qemu-devel] [PATCH] kernel/kvm: fix improper nmi emulation (was: Re: [PATCH] qemu: Fix inject-nmi)

2011-10-09 Thread Lai Jiangshan
NT1 on the processor. LINT1 is emulated in in-kernel irqchip. - When in-kernel irqchip is disabled, KVM_NMI ioctl is handled as a request of injecting NMI to the processor. This assumes LINT1 is already emulated in userland. Signed-off-by: Kenji Kaneshige Tested-by: Lai Jiangshan --- ar

[Qemu-devel] [PATCH 2/2] seabios: fix mptable nmi entry (was: Re: [PATCH] qemu: Fix inject-nmi)

2011-10-09 Thread Lai Jiangshan
Signed-off-by: Kenji Kaneshige Reviewed-by: Lai Jiangshan --- src/mptable.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: seabios/src/mptable.c === --- seabios.orig/src/mptable.c +++ seabios/src/mptable.c @

[Qemu-devel] [PATCH 1/2] seabios: Add Local APIC NMI Structure to ACPI MADT (was: Re: [PATCH] qemu: Fix inject-nmi)

2011-10-09 Thread Lai Jiangshan
From: Kenji Kaneshige ACPI NMI Structure describes LINT pin (LINT0 or LINT1) information to which NMI is connected, and it is needed by OS to initialize local APIC. Signed-off-by: Kenji Kaneshige Reviewed-by: Lai Jiangshan --- src/acpi.c | 22 -- 1 file changed, 20

[Qemu-devel] [PATCH] qemu-kvm: fix improper nmi emulation (was: Re: [PATCH] qemu: Fix inject-nmi)

2011-10-09 Thread Lai Jiangshan
in-kernel irqchip is enabled, send nmi event to kernel as the current code does. LINT1 should be emulated in kernel. Signed-off-by: Kenji Kaneshige Tested-by: Lai Jiangshan --- hw/apic.c | 16 hw/apic.h |1 + monitor.c |5 ++--- 3 files changed, 19 insertions(+), 3

Re: [Qemu-devel] [PATCH] qemu: Fix inject-nmi

2011-09-23 Thread Lai Jiangshan
On 09/22/2011 10:51 PM, Jan Kiszka wrote: > On 2011-09-22 11:50, Lai Jiangshan wrote: >> >> From: KAMEZAWA Hiroyuki >> Subject: [PATCH] Fix inject-nmi >> >> Now, inject-nmi sends NMI to all cpus...but this doesn't emulate >> pc hardware 'NMI bu

[Qemu-devel] [PATCH] qemu: Fix inject-nmi

2011-09-22 Thread Lai Jiangshan
From: KAMEZAWA Hiroyuki Subject: [PATCH] Fix inject-nmi Now, inject-nmi sends NMI to all cpus...but this doesn't emulate pc hardware 'NMI button', which triggers LINT1. So, now, LINT1 mask is ignored by inject-nmi and NMIs are sent to all cpus without checking LINT1 mask. Because Linux masks L

[Qemu-devel] [PATCH 2/2 V9] qmp, inject-nmi: convert do_inject_nmi() to QObject

2011-04-27 Thread Lai Jiangshan
r x86 guest currently, it will returns "Unsupported" error for non-x86 guest. This error and this behavior are described in the comments. Signed-off-by: Lai Jiangshan --- hmp-commands.hx | 21 +++-- monitor.c | 20 +--- qmp-commands.hx | 2

[Qemu-devel] [PATCH 0/2 V9] hmp,qmp: add inject-nmi

2011-04-27 Thread Lai Jiangshan
Adds new QERR_UNSUPPORTED, converts "nmi" to "inject-nmi" and make it supports qmp. Lai Jiangshan (2): qemu,qmp: QError: New QERR_UNSUPPORTED qmp,inject-nmi: convert do_inject_nmi() to QObject hmp-commands.hx | 21 +++-- mo

[Qemu-devel] [PATCH 1/2 V9] qemu, qmp: QError: New QERR_UNSUPPORTED

2011-04-27 Thread Lai Jiangshan
New QERR_UNSUPPORTED for unsupported commands or requests. Signed-off-by: Lai Jiangshan --- qerror.c |4 qerror.h |3 +++ 2 files changed, 7 insertions(+), 0 deletions(-) diff --git a/qerror.c b/qerror.c index 4855604..f905887 100644 --- a/qerror.c +++ b/qerror.c @@ -206,6

Re: [Qemu-devel] [RFC PATCH 0/3 V8] QAPI: add inject-nmi qmp command

2011-04-26 Thread Lai Jiangshan
On 04/26/2011 09:29 PM, Anthony Liguori wrote: > On 04/26/2011 08:26 AM, Luiz Capitulino wrote: >> On Thu, 21 Apr 2011 11:23:54 +0800 >> Lai Jiangshan wrote: >> >>> >>> Hi, Anthony Liguori >>> >>> Any suggestion? >>> >&g

Re: [Qemu-devel] [RFC PATCH 0/3 V8] QAPI: add inject-nmi qmp command

2011-04-20 Thread Lai Jiangshan
Hi, Anthony Liguori Any suggestion? Although all command line interfaces will be converted to to use QMP interfaces in 0.16, I hope inject-nmi come into QAPI earlier, 0.15. Thanks, Lai

[Qemu-devel] [RFC PATCH 2/3 V8] qapi, nmi: add inject-nmi qmp command

2011-04-19 Thread Lai Jiangshan
inject-nmi command injects an NMI on all CPUs of guest. It is only supported for x86 guest currently, it will returns "Unsupported" error for non-x86 guest. Signed-off-by: Lai Jiangshan --- qapi-schema.json | 12 qmp.c| 17 + 2 files c

[Qemu-devel] [RFC PATCH 3/3 V8] qapi-hmp: Convert HMP nmi to use QMP

2011-04-19 Thread Lai Jiangshan
Convert the name of HMP nmi to inject-nmi, and use QMP inject-nmi. The behavier is also changed, it injects NMI to all CPUs of the guest. When the guest is non-x86, it reports "Unsupported" error. Signed-off-by: Lai Jiangshan --- hmp-commands.hx | 18 ---

[Qemu-devel] [RFC PATCH 1/3 V8] QError: Introduce QERR_UNSUPPORTED

2011-04-19 Thread Lai Jiangshan
New QERR_UNSUPPORTED for unsupported commands or requests. Signed-off-by: Lai Jiangshan --- qerror.c |4 qerror.h |3 +++ 2 files changed, 7 insertions(+), 0 deletions(-) diff --git a/qerror.c b/qerror.c index c76257f..bafe520 100644 --- a/qerror.c +++ b/qerror.c @@ -213,6

[Qemu-devel] [RFC PATCH 0/3 V8] QAPI: add inject-nmi qmp command

2011-04-19 Thread Lai Jiangshan
" can't work in my box. Lai Jiangshan (3): QError: Introduce QERR_UNSUPPORTED qapi,nmi: add inject-nmi qmp command qapi-hmp: Convert HMP nmi to use QMP hmp-commands.hx | 18 -- hmp.c| 12 hmp.h|1 + monitor.c|

Re: [Qemu-devel] [PATCH 2/2 V7] qemu, qmp: add inject-nmi qmp command

2011-04-19 Thread Lai Jiangshan
On 04/04/2011 09:09 PM, Anthony Liguori wrote: > On 04/04/2011 07:19 AM, Markus Armbruster wrote: >> [Note cc: Anthony] >> >> "Daniel P. Berrange" writes: >> >>> On Mon, Mar 07, 2011 at 05:46:28PM +0800, Lai Jiangshan wrote: >>>> Fro

Re: [Qemu-devel] [PATCH 2/2 V7] qemu, qmp: add inject-nmi qmp command

2011-04-19 Thread Lai Jiangshan
On 04/20/2011 09:53 AM, Lai Jiangshan wrote: > On 04/04/2011 09:09 PM, Anthony Liguori wrote: >> On 04/04/2011 07:19 AM, Markus Armbruster wrote: >>> [Note cc: Anthony] >>> >>> "Daniel P. Berrange" writes: >>> >>>> On Mon, Mar

[Qemu-devel] [PATCH V2] qemu, qmp: add keydown and keyup command for qmp

2011-03-09 Thread Lai Jiangshan
t;keycode": 59 } } #press down f1 { "execute": "keyup", "arguments": { "keycode": 59 } }#release f1 { "execute": "keyup", "arguments": { "keycode": 56 } }#release alt { "execute": "keyup",

[Qemu-devel] [PATCH 2/2 V7] qemu,qmp: add inject-nmi qmp command

2011-03-07 Thread Lai Jiangshan
From: Lai Jiangshan Date: Mon, 7 Mar 2011 17:05:15 +0800 Subject: [PATCH 2/2] qemu,qmp: add inject-nmi qmp command inject-nmi command injects an NMI on all CPUs of guest. It is only supported for x86 guest currently, it will returns "Unsupported" error for non-x86 guest. --- hmp-c

[Qemu-devel] [PATCH 1/2] qemu,qmp: QError: New QERR_UNSUPPORTED

2011-03-07 Thread Lai Jiangshan
From: Lai Jiangshan Date: Mon, 7 Mar 2011 17:05:04 +0800 Subject: [PATCH 1/2] qemu,qmp: QError: New QERR_UNSUPPORTED New QERR_UNSUPPORTED for unsupported commands or requests. --- qerror.h |3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/qerror.h b/qerror.h index

[Qemu-devel] [PATCH 0/2 V7] add inject-nmi qmp command

2011-03-07 Thread Lai Jiangshan
From: Lai Jiangshan Date: Mon, 7 Mar 2011 17:08:46 +0800 Subject: [PATCH 0/2 V7] qemu,qmp: add inject-nmi qmp command The new qmp command "inject-nmi" is different from the hmp monitor command "nmi". The first one injects an NMI on all CPUs, and the second one injects an NMI

[Qemu-devel] Re: [PATCH V6 1/4 resend] nmi: convert cpu_index to cpu-index

2011-02-20 Thread Lai Jiangshan
Hi, Luiz Capitulino Any problem? Thanks, Lai On 02/14/2011 06:09 PM, Lai Jiangshan wrote: > "cpu-index" which uses hyphen is better name. > > Signed-off-by: Lai Jiangshan > --- > diff --git a/hmp-commands.hx b/hmp-commands.hx > index 5d4cb9e..e43ac7c 100644 >

[Qemu-devel] Re: [PATCH V6 1/4] nmi: convert cpu_index to cpu-index

2011-02-14 Thread Lai Jiangshan
On 02/09/2011 07:48 PM, Luiz Capitulino wrote: > > You should use Anthony's tree: > > git://git.qemu.org/qemu.git > Done, thank you for your concern and patience. see my sent emails: [PATCH V6 1/4 resend] [PATCH V6 2/4 resend] [PATCH V6 3/4 resend] [PATCH V6 4/4 resend] Thanks again. Lai

[Qemu-devel] [PATCH V6 3/4 resend] qmp, nmi: convert do_inject_nmi() to QObject

2011-02-14 Thread Lai Jiangshan
Make we can inject NMI via qemu-monitor-protocol. We use "inject-nmi" for the qmp command name, the meaning is clearer. Signed-off-by: Lai Jiangshan --- diff --git a/hmp-commands.hx b/hmp-commands.hx index b2c6cd6..6d3e7d2 100644 --- a/hmp-commands.hx +++ b/hmp-commands.hx @@ -74

[Qemu-devel] [PATCH V6 2/4 resend] nmi: make cpu-index argument optional

2011-02-14 Thread Lai Jiangshan
uster for correcting the logic detecting "cpu-index" is given or not. Signed-off-by: Lai Jiangshan --- diff --git a/hmp-commands.hx b/hmp-commands.hx index e43ac7c..ec1a4db 100644 --- a/hmp-commands.hx +++ b/hmp-commands.hx @@ -721,9 +721,10 @@ ETEXI #if defined(TARGET_I386) {

[Qemu-devel] [PATCH V6 1/4 resend] nmi: convert cpu_index to cpu-index

2011-02-14 Thread Lai Jiangshan
"cpu-index" which uses hyphen is better name. Signed-off-by: Lai Jiangshan --- diff --git a/hmp-commands.hx b/hmp-commands.hx index 5d4cb9e..e43ac7c 100644 --- a/hmp-commands.hx +++ b/hmp-commands.hx @@ -721,7 +721,7 @@ ETEXI #if defined(TARGET_I386) { .name

[Qemu-devel] [PATCH V6 4/4 resend] nmi: report error(QError) when the cpu-index is invalid

2011-02-14 Thread Lai Jiangshan
When cpu-index is found invalid in runtime, it will report QERR_INVALID_PARAMETER_VALUE. Signed-off-by: Lai Jiangshan --- diff --git a/monitor.c b/monitor.c index 1b1c0ba..82935f0 100644 --- a/monitor.c +++ b/monitor.c @@ -2563,6 +2563,7 @@ static int do_inject_nmi(Monitor *mon, const QDict

[Qemu-devel] Re: [PATCH V6 1/4] nmi: convert cpu_index to cpu-index

2011-02-08 Thread Lai Jiangshan
On 02/01/2011 09:29 PM, Luiz Capitulino wrote: > On Thu, 27 Jan 2011 16:20:27 +0800 > Lai Jiangshan wrote: > >> "cpu-index" which uses hyphen is better name. >> >> Signed-off-by: Lai Jiangshan > > It looks ok from a quick pass, but I can't ap

[Qemu-devel] [PATCH V6 4/4] nmi: report error(QError) when the cpu-index is invalid

2011-01-27 Thread Lai Jiangshan
When cpu-index is found invalid in runtime, it will report QERR_INVALID_PARAMETER_VALUE. Signed-off-by: Lai Jiangshan --- diff --git a/monitor.c b/monitor.c index 1b1c0ba..82935f0 100644 --- a/monitor.c +++ b/monitor.c @@ -2563,6 +2563,7 @@ static int do_inject_nmi(Monitor *mon, const QDict

[Qemu-devel] [PATCH V6 3/4] qmp, nmi: convert do_inject_nmi() to QObject

2011-01-27 Thread Lai Jiangshan
Make we can inject NMI via qemu-monitor-protocol. We use "inject-nmi" for the qmp command name, the meaning is clearer. Signed-off-by: Lai Jiangshan --- diff --git a/hmp-commands.hx b/hmp-commands.hx index ec1a4db..e763bf9 100644 --- a/hmp-commands.hx +++ b/hmp-commands.hx @@ -72

[Qemu-devel] [PATCH V6 1/4] nmi: convert cpu_index to cpu-index

2011-01-27 Thread Lai Jiangshan
"cpu-index" which uses hyphen is better name. Signed-off-by: Lai Jiangshan --- diff --git a/hmp-commands.hx b/hmp-commands.hx index 5d4cb9e..e43ac7c 100644 --- a/hmp-commands.hx +++ b/hmp-commands.hx @@ -721,7 +721,7 @@ ETEXI #if defined(TARGET_I386) { .name

[Qemu-devel] [PATCH V6 2/4] nmi: make cpu-index argument optional

2011-01-27 Thread Lai Jiangshan
uster for correcting the logic detecting "cpu-index" is given or not. Signed-off-by: Lai Jiangshan --- diff --git a/hmp-commands.hx b/hmp-commands.hx index e43ac7c..ec1a4db 100644 --- a/hmp-commands.hx +++ b/hmp-commands.hx @@ -721,9 +721,10 @@ ETEXI #if defined(TARGET_I386) {

[Qemu-devel] [PATCH V5 2/4] nmi: make cpu-index argument optional

2011-01-10 Thread Lai Jiangshan
When the argument "cpu-index" is not given, then "nmi" command will inject NMI on all CPUs. This simulate the nmi button on physical machine. Thanks to Markus Armbruster for correcting the logic detecting "cpu-index" is given or not. Signed-off-by: Lai J

[Qemu-devel] [PATCH V5 3/4] qmp, nmi: convert do_inject_nmi() to QObject

2011-01-10 Thread Lai Jiangshan
Make we can inject NMI via qemu-monitor-protocol. We use "inject-nmi" for the qmp command name, the meaning is clearer. Signed-off-by: Lai Jiangshan --- diff --git a/hmp-commands.hx b/hmp-commands.hx index a49fcd4..4db413d 100644 --- a/hmp-commands.hx +++ b/hmp-commands.hx @@ -72

[Qemu-devel] [PATCH V5 4/4] nmi: report error(QError) when the cpu-index is invalid

2011-01-10 Thread Lai Jiangshan
When cpu-index is found invalid in runtime, it will report QERR_INVALID_PARAMETER_VALUE. Signed-off-by: Lai Jiangshan --- diff --git a/monitor.c b/monitor.c index 1bee840..7402c0f 100644 --- a/monitor.c +++ b/monitor.c @@ -2535,6 +2535,7 @@ static int do_inject_nmi(Monitor *mon, const QDict

[Qemu-devel] [PATCH V5 1/4] nmi: convert cpu_index to cpu-index

2011-01-10 Thread Lai Jiangshan
"cpu-index" is better name. Signed-off-by: Lai Jiangshan --- diff --git a/hmp-commands.hx b/hmp-commands.hx index df134f8..99b96a8 100644 --- a/hmp-commands.hx +++ b/hmp-commands.hx @@ -721,7 +721,7 @@ ETEXI #if defined(TARGET_I386) { .name = "nmi",

Re: [Qemu-devel] [PATCH 2/3] nmi: make cpu-index argument optional

2010-12-20 Thread Lai Jiangshan
On 12/21/2010 12:58 AM, Markus Armbruster wrote: > Lai Jiangshan writes: > >> When the argument "cpu-index" is not given, >> then "nmi" command will inject NMI on all CPUs. >> >> This simulate the nmi button on physical machine. >> >

Re: [Qemu-devel] [PATCH 1/3] nmi: convert cpu_index to cpu-index

2010-12-20 Thread Lai Jiangshan
On 12/21/2010 01:00 AM, Markus Armbruster wrote: > Lai Jiangshan writes: > >> "cpu-index" is better name. >> >> Signed-off-by: Lai Jiangshan >> --- >> diff --git a/hmp-commands.hx b/hmp-commands.hx >> index 4befbe2..8de7aa3 100644 >> -

[Qemu-devel] [PATCH V4 3/3] qmp, nmi: convert do_inject_nmi() to QObject, QError

2010-12-19 Thread Lai Jiangshan
Make we can inject NMI via qemu-monitor-protocol. We use "inject-nmi" for the qmp command name, the meaning is clearer. When cpu-index is found invalid in runtime, it will report QERR_INVALID_PARAMETER_VALUE. Signed-off-by: Lai Jiangshan --- diff --git a/hmp-commands.hx b/hmp-command

[Qemu-devel] [PATCH 1/3] nmi: convert cpu_index to cpu-index

2010-12-19 Thread Lai Jiangshan
"cpu-index" is better name. Signed-off-by: Lai Jiangshan --- diff --git a/hmp-commands.hx b/hmp-commands.hx index 4befbe2..8de7aa3 100644 --- a/hmp-commands.hx +++ b/hmp-commands.hx @@ -721,7 +721,7 @@ ETEXI #if defined(TARGET_I386) { .name = "nmi",

[Qemu-devel] [PATCH 2/3] nmi: make cpu-index argument optional

2010-12-19 Thread Lai Jiangshan
When the argument "cpu-index" is not given, then "nmi" command will inject NMI on all CPUs. This simulate the nmi button on physical machine. Signed-off-by: Lai Jiangshan --- diff --git a/hmp-commands.hx b/hmp-commands.hx index 8de7aa3..d8fe4c0 100644 --- a/hmp-c

  1   2   >