Re: [kvm-devel] [PATCH] Add the arg module for kvm_arch_init
Christian Borntraeger wrote: Am Freitag, 23. November 2007 schrieb Zhang, Xiantao: From: Zhang Xiantao [EMAIL PROTECTED] Date: Fri, 23 Nov 2007 07:28:35 +0800 Subject: [PATCH] Add the arg module for kvm_arch_into Add the arg module for kvm_arch_into, since some archs may need module info. Signed-off-by: Zhang Xiantao [EMAIL PROTECTED] Can you explain what you try to achieve? Would the macro THIS_MODULE be sufficient as well? No, THIS_MODULE just stands for itself. But for IA64, we need another module, and it will register some information to kvm module. So, we have to keep it. Xiantao - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] [PATCH] Add the arg module for kvm_arch_init
Am Freitag, 23. November 2007 schrieb Zhang, Xiantao: From: Zhang Xiantao [EMAIL PROTECTED] Date: Fri, 23 Nov 2007 07:28:35 +0800 Subject: [PATCH] Add the arg module for kvm_arch_into Add the arg module for kvm_arch_into, since some archs may need module info. Signed-off-by: Zhang Xiantao [EMAIL PROTECTED] Can you explain what you try to achieve? Would the macro THIS_MODULE be sufficient as well? Christian - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
[kvm-devel] [ kvm-Bugs-1836917 ] Cannot install 64bit Windows Vista guest
Bugs item #1836917, was opened at 2007-11-23 16:47 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=893831aid=1836917group_id=180599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: yunfeng (yunfeng) Assigned to: Nobody/Anonymous (nobody) Summary: Cannot install 64bit Windows Vista guest Initial Comment: On kernel commit:9fbcc4a1b7cf873a5aa1a357320fb82d588aa316 I tried once to install 64bit windows vista os into a 20G image,it could finish files copying, but hanged at “completing installation”. qemu-system-x86_64 -hda kvm_vista_RTM_smp_acpi_32e.img -net nic,macaddr=00:16:3e:44:de:5e,model=rtl8139 -net tap,script=/etc/kvm/qemu-ifup -m 1024 - cdrom /share/xvs/img/installation/Vista64.iso -boot d -- You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=893831aid=1836917group_id=180599 - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
[kvm-devel] KVM Test result, kernel 51727a1.. , userspace 6a385c9..
Hi, all, This is today's KVM test result against kvm.git 51727A110220681F6F43B005D069E28C58F5D151 and kvm-userspace.git 6a385c9539f9746d7ff51ef34c064c3eba86448b. One regression: 1. Cannot install 64bit vista guests. https://sourceforge.net/tracker/?func=detailatid=893831aid=1836905group_id=180599 Old issues: 2. Fails to save/restore guests https://sourceforge.net/tracker/index.php?func=detailaid=1824525group_id=180599atid=893831 3. xp and win2k3 guest crashes https://sourceforge.net/tracker/?func=detailatid=893831aid=1819768group_id=180599 4. xpsp2 with 2vpus may fail to boot -no-kvm-irqchip has the same issue. It exists on paxville,woodcrest and clowertown, but doesn't exist on weybridge and santarosa. https://sourceforge.net/tracker/index.php?func=detailaid=1805017group_id=180599atid=893831 5. Cannot boot 32bit smp RHEL5.1 guest on 64bit host https://sourceforge.net/tracker/?func=detailatid=893831aid=1812043group_id=180599 6 Some ltp cases fail on KVM guests https://sourceforge.net/tracker/index.php?func=detailaid=1741316group_id=180599atid=893831 Test environment Platform woodcrest CPU 4 Memory size 8G' Details PAE: 1. boot guest with 256M memory PASS 2. boot two windows xp guest PASS 3. boot 4 same guest in parallel PASS 4. boot linux and windows guest in parallel PASS 5. boot 4G linux guest PASS 6. boot guest with 1500M memory PASS 7. boot windows 2003 with ACPI enabled PASS 8. boot Windows xp with ACPI enabled PASS 9. boot Windows 2000 without ACPI PASS 10. kernel build on SMP linux guest PASS 11. LTP on SMP linux guest PASS 12. boot base kernel linux PASS 13. save/restore 32-bit HVM guests FAIL 14. live migration 32-bit HVM guests FAIL 15. boot SMP Windows xp with ACPI enabled FAIL 16. boot SMP windows 2003 with ACPI enabled FAIL 17. boot SMP Windows 2000 with ACPI enabled FAIL IA32e: 1. boot four 32-bit guest in parallel PASS 2. boot four 64-bit guest in parallel PASS 3. boot 4G 64-bit guest PASS 4. boot 4G pae guest PASS 5. boot 32-bit linux and 32 bit windows guest in parallel PASS 6. boot 32-bit guest with 1500M memory PASS 7. boot 64-bit guest with 1500M memory PASS 8. boot 32-bit guest with 256M memory PASS 9. boot 64-bit guest with 256M memory PASS 10. boot two 32-bit windows xp in parallel PASS 11. boot four 32-bit different guest in para PASS 12. save/restore 64-bit linux guests FAIL 13. save/restore 32-bit linux guests FAIL 14. boot 32-bit SMP windows 2003 with ACPI enabled PASS 15. boot 32bit SMP Windows 2000 with ACPI enabled FAIL 16. boot 32-bit SMP Windows xp with ACPI enabled FAIL 17. boot 32-bit Windows 2000 without ACPI PASS 18. boot 64-bit Windows xp with ACPI enabled PASS 19. boot 32-bit Windows xp without ACPI PASS 20. boot 64-bit vista PASS 21. kernel build in 32-bit linux guest OS PASS 22. kernel build in 64-bit linux guest OS PASS 23. LTP on SMP 32-bit linux guest OS PASS 24. LTP on SMP 64-bit linux guest OS PASS 25. boot 64-bit guests with ACPI enabled PASS 26. boot 32-bit x-server PASS 27. boot 64-bit SMP windows XP with ACPI enabled FAIL 28. boot 64-bit SMP windows 2003 with ACPI enabled FAIL Report Summary on IA32-pae Summary Test Report of Last Session = Total PassFailNoResult Crash = control_panel 8 5 3 00 Restart 2 2 0 00 gtest 13 11 2 00 =
[kvm-devel] [ kvm-Bugs-1836905 ] Cannot install 64bit Windows Vista guest
Bugs item #1836905, was opened at 2007-11-23 16:20 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=893831aid=1836905group_id=180599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: yunfeng (yunfeng) Assigned to: Nobody/Anonymous (nobody) Summary: Cannot install 64bit Windows Vista guest Initial Comment: On kernel commit:9fbcc4a1b7cf873a5aa1a357320fb82d588aa316 I tried once to install 64bit windows vista os into a 20G image,it could finish files copying, but hanged at “completing installation”. qemu-system-x86_64 -hda kvm_vista_RTM_smp_acpi_32e.img -net nic,macaddr=00:16:3e:44:de:5e,model=rtl8139 -net tap,script=/etc/kvm/qemu-ifup -m 1024 - cdrom /share/xvs/img/installation/Vista64.iso -boot d -- You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=893831aid=1836905group_id=180599 - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] [PATCH] Add the arg module for kvm_arch_init
Zhang, Xiantao wrote: No, THIS_MODULE just stands for itself. But for IA64, we need another module, and it will register some information to kvm module. So, we have to keep it. That answer confuses me. kvm_arch_init() for ia64 will reside in kvm.ko just like kvm_init(), right? So THIS_MODULE will be the same in kvm_arch_init() and kvm_init(). So which module are you giving as argument? - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] emulation failed but !mmio_needed? rip 10000 fc 0f 01 15
On Saturday 24 November 2007 07:23:20 Neo Jia wrote: hi, I happened to get a emulation fail when running the following command: System environment: Intel Core 2 Duo (E6600) x86_64 Fedora 8 (2.6.23.1-49.fc8). qemu-img create -f qcow debian-testing.img 10G sudo qemu-system-x86_64 -cdrom /home/cjia/download/debian-testing-i386-netinst.iso -hda debian-testing.img -boot d -m 1024 Everything works fine until it prompts me that the installation is complete and need reboot. sudo qemu-system-x86_64 -cdrom /home/cjia/download/debian-testing-i386-netinst.iso -hda debian-testing.img -boot d -m 1024 exception 13 (0) rax 0100 rbx 0100 rcx rdx 0600 rsi rdi rsp rbp r8 r9 r10 r11 r12 r13 r14 r15 rip 0001 rflags 00033003 cs f000 (000f/ p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0) ds (/ p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0) es (/ p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0) ss (/ p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0) fs (/ p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0) gs (/ p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0) tr 0080 (40c0/2088 p 1 dpl 0 db 0 s 0 type b l 0 g 0 avl 0) ldt (/ p 1 dpl 0 db 0 s 0 type 2 l 0 g 0 avl 0) gdt 0/ idt 0/ cr0 6010 cr2 0 cr3 0 cr4 0 cr8 0 efer 0 code: 00 00 00 00 ea 5b e0 00 f0 31 30 2f 32 38 2f 30 37 00 fc f5 -- fc 0f 01 15 92 a0 31 00 b8 18 00 00 00 8e d8 8e c0 8e e0 8e e8 31 c0 bf 00 30 39 00 b9 7c Aborted --- dmesg: kvm: emulating exchange as write emulation failed but !mmio_needed? rip 1 fc 0f 01 15// I searched through the source code but not find a place to generate but !mmio_needed? string ... It due to one instruction haven't been emulated: 0xfc(one byte instruction). Look it up in SDM Vol.2B's opcode map, you can find that's CLD. And look at what is CLD in SDM Vol.2, you will find CLD - Clear direction flag. So we miss this in x86_emulate.c. The version of kvm I used for kvm module is 694401697ccd822bb08019731c3ee1bb34323d8e and the kvm-userspace is a57b838b49bc4e4e7439b18d0323385d53e41c7f. // Not sure if this is the right way to show the version I am using. If not, please correct me, this is the first time I am using git... Yeah, that's the right ones. :) Anyway, I really want to get some comments about how to trace this problem and would be very glad to dig into it! Here is the chance! Add this instruction to our x86 emulator. You can take the implement of sti and cli as a reference. Good luck! Thanks, Neo -- Thanks Yang, Sheng - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] [patch 2 of 2] Emulate CMPS instruction
Guillaume Thouvenin wrote: This patch emulates the CMPS instruction. Signed-off-by: Guillaume Thouvenin [EMAIL PROTECTED] --- drivers/kvm/x86_emulate.c | 54 +++-- 1 files changed, 52 insertions(+), 2 deletions(-) diff --git a/drivers/kvm/x86_emulate.c b/drivers/kvm/x86_emulate.c index cee60eb..db744cf 100644 --- a/drivers/kvm/x86_emulate.c +++ b/drivers/kvm/x86_emulate.c @@ -445,6 +445,29 @@ static u16 twobyte_table[256] = { register_address_increment(c-eip, rel);\ } while (0) +/* Test if the repeat string operation prefix is REPE/REPZ or + * REPNE/REPNZ and if it's the case it tests the corresponding + * termination condition according to: + * - if REPE/REPZ and ZF = 0 then done + * - if REPNE/REPNZ and ZF = 1 then done + */ +#define handle_rep_prefix(c)\ + do {\ + if ((c-b == 0xa6) || (c-b == 0xa7) || \ + (c-b == 0xae) || (c-b == 0xaf)) { \ + if ((c-rep_prefix == REPE_PREFIX)\ + ((ctxt-eflags EFLG_ZF) == 0)) { \ + ctxt-vcpu-rip = c-eip; \ + goto done; \ + } \ + if ((c-rep_prefix == REPNE_PREFIX) \ + ((ctxt-eflags EFLG_ZF) == EFLG_ZF)) {\ + ctxt-vcpu-rip = c-eip; \ + goto done; \ + } \ + } \ + } while (0) + No new macros in the emulator please. Just inline it at the callsite. static int do_fetch_insn_byte(struct x86_emulate_ctxt *ctxt, struct x86_emulate_ops *ops, unsigned long linear, u8 *dest) @@ -1540,10 +1563,15 @@ special_insn: break; } if (c-rep_prefix) { + /* All REP prefixes have the same first termination condition */ if (c-regs[VCPU_REGS_RCX] == 0) { ctxt-vcpu-rip = c-eip; goto done; } + /* The second termination condition only applies for REPE + * and REPNE. handle_rep_prefix() macro deals with that. + */ + handle_rep_prefix(c); c-regs[VCPU_REGS_RCX]--; c-eip = ctxt-vcpu-rip; } @@ -1570,8 +1598,30 @@ special_insn: : c-dst.bytes); break; case 0xa6 ... 0xa7: /* cmps */ - DPRINTF(Urk! I don't handle CMPS.\n); - goto cannot_emulate; + c-src.type = OP_NONE; Shouldn't this be OP_MEM? + c-src.bytes = (c-d ByteOp) ? 1 : c-op_bytes; + c-src.ptr = (unsigned long *)register_address( +ctxt-ds_base, +c-regs[VCPU_REGS_RDI]); + + c-dst.type = OP_NONE; And here? + c-dst.bytes = (c-d ByteOp) ? 1 : c-op_bytes; + c-dst.ptr = (unsigned long *)register_address( +ctxt-es_base, +c-regs[VCPU_REGS_RSI]); + + DPRINTF(cmps: mem1=0x%p mem2=0x%p\n, c-src.ptr, c-dst.ptr); + Where is the actual memory access? + emulate_2op_SrcV(cmp, c-src, c-dst, ctxt-eflags); + + register_address_increment(c-regs[VCPU_REGS_RDI], +(ctxt-eflags EFLG_DF) ? -c-dst.bytes + : c-dst.bytes); + + register_address_increment(c-regs[VCPU_REGS_RSI], +(ctxt-eflags EFLG_DF) ? -c-dst.bytes + : c-dst.bytes); + break; case 0xaa ... 0xab: /* stos */ c-dst.type = OP_MEM; c-dst.bytes = (c-d ByteOp) ? 1 : c-op_bytes; - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel -- Any sufficiently difficult bug is indistinguishable from a
[kvm-devel] [ kvm-Bugs-1837091 ] Keys \ and | translated into w and k with fr-be keyboard
Bugs item #1837091, was opened at 2007-11-23 15:50 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=893831aid=1837091group_id=180599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: qemu Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Vince C. (vinzc) Assigned to: Nobody/Anonymous (nobody) Summary: Keys \ and | translated into w and k with fr-be keyboard Initial Comment: CPU: Intel Centrino (Core2) Duo (64bit) Distribution: Gentoo (AMD64 branch) Guest: Any Linux distro (Windows untested) Hello. I have a Belgian-French keyboard layout and when I run qemu (I'm using arguments -k fr-be) two keys are translated incorrectly inside Linux virtual machines; key '|' (altgr+é) displays a 'k' and key '\' (altgr+) displays a 'w'. Here are the corresponding key layouts: Alpha keyboard 2: Shift+2, 'é', Altgr+@ Alpha keyboard : Shift+, '', Altgr+\ Only the symbols usually gotten with Altgr display the wrong symbols in the virtual machine. They display the correct symbol in the monitor screen. The problem is reproducible in Qemu-0.9.0 as well as in any version of KVM. -- You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=893831aid=1837091group_id=180599 - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
[kvm-devel] [patch 1 of 2] Rename REP prefixes
This patch renames REP prefix with more suitable name. Signed-off-by:: Guillaume Thouvenin [EMAIL PROTECTED] --- drivers/kvm/x86_emulate.c |4 ++-- drivers/kvm/x86_emulate.h |4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/kvm/x86_emulate.c b/drivers/kvm/x86_emulate.c index ff7010c..cee60eb 100644 --- a/drivers/kvm/x86_emulate.c +++ b/drivers/kvm/x86_emulate.c @@ -829,10 +829,10 @@ x86_decode_insn(struct x86_emulate_ctxt *ctxt, struct x86_emulate_ops *ops) c-lock_prefix = 1; break; case 0xf2: /* REPNE/REPNZ */ - c-rep_prefix = REPNE_REPNZ; + c-rep_prefix = REPNE_PREFIX; break; case 0xf3: /* REP/REPE/REPZ */ - c-rep_prefix = REP_REPE_REPZ; + c-rep_prefix = REPE_PREFIX; break; default: goto done_prefixes; diff --git a/drivers/kvm/x86_emulate.h b/drivers/kvm/x86_emulate.h index 5ce4c0c..61762f9 100644 --- a/drivers/kvm/x86_emulate.h +++ b/drivers/kvm/x86_emulate.h @@ -162,8 +162,8 @@ struct x86_emulate_ctxt { }; /* Repeat String Operation Prefix */ -#define REP_REPE_REPZ 1 -#define REPNE_REPNZ2 +#define REPE_PREFIX1 +#define REPNE_PREFIX 2 /* Execution mode, passed to the emulator. */ #define X86EMUL_MODE_REAL 0/* Real mode. */ - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
[kvm-devel] [patch 0 of 2] Emulate CMPS instruction
Hello, This patch emulates the CMPS instruction. It should fix the openbsd bug opened in sourceforge (it does on my computer). There are two patches. The first one renames the REP prefix definition to be more comprehensive and the second one is the emulation of the CMPS instruction. Regards, Guillaume - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
[kvm-devel] 2008香港电子展
2008年香港春季电子产品展及 香港国际资讯科技博览会( ICT ) 香港春季电子展/香港国际资讯科技博览会由香港贸发局主办。在2007年4月17日结束的香港春季电子产品展/香港国际资讯科技博览会上,有来自二十二个国家及地区的2406家电子企业参加了此次盛会。来自153个国家及地区,贸易观众达51469余人。为期四天的展会取得了良好效果,70%以上参展商当场表达了继续参展的意向。2008年是第五次举办该展。相关资料如下: 一、展览时间:2008年4月14日--17日 二、展会地点:香港会议展览中心 (中国香港湾仔博览道1号) 三、展品类别: 1、 春电展:A视听产品;C电子组件及技术;D数字影像产品;E电子配件;G个人电子产品;H家用电器;L电子保健产品;O办公室自动化及设备;R商贸服务;S保安产品;T电讯产品;U电子制造服务;J灯饰及照明产品。 2、资讯展 (ICT-5HALL): A网络及移动通讯产品和技术、通讯产品/移动通讯产品/互联网产品/网络产品及服务;B企业解决方案、管理应用软件/信息安全/电子商务/影像处理系统/资讯科技顾问及服务;C数码生活及多媒体、电脑周边设备(电脑笔记本工作站、打印机、扫描仪、鼠标、、CPU、主板、液晶显示器、数码相机、网络视频及光驱)、多媒体产品及应用(MP3 PM4、数据存储产品);D电子物流及零售科技产品;E本土创意科技--语音识别/生物防伪识别/人工智能/翻译/游戏等系统;F软件外包服务G商贸服务。 四、展位收费及配置: 1、报名注册费:RMB2000元 / 摊位。( 因参展单位原因未能参展时,此项费用不予退回 ) 2、摊位费: A、RMB 29500元人/ 9�O标准摊位(包括灯具展区A型展位) B、RMB 48800元 / 15�O标准摊位 C、RMB 67600元 / 15�O特级摊位(品牌廊) D、RMB 2800元 / �O 空地( 至少30平米 ) E、RMB 26600元 / 9�O标准摊位(ICT展位)(所有双开角位加收摊位费的5%) 五、参展办法及手续: 1、凡申请参展的单位,请逐项填写后付《参展申请表》,传真或邮寄至我会。 2、定金交付后填写:A、《中国内地馆参展表格》、B、《网上/产品杂志推广申请表》、C、《3张产品照片》主办单位免费为每家展商提供网上及杂志广告推广宣传,展位确认前务必提交上述表格与图片资料。 注:(主办单位要求:凡是老客户继续参展不能扩大展位规模;新客户参展只能提供1个9平米展位。)。 六、报名表等相关详细资料敬请联络广州招展处: 电 话: 13268068446 传 真:020-82341085 联系人: 李 ��13268068446[EMAIL PROTECTED] - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
[kvm-devel] 2008香港电子展
2008年香港春季电子产品展及 香港国际资讯科技博览会( ICT ) 香港春季电子展/香港国际资讯科技博览会由香港贸发局主办。在2007年4月17日结束的香港春季电子产品展/香港国际资讯科技博览会上,有来自二十二个国家及地区的2406家电子企业参加了此次盛会。来自153个国家及地区,贸易观众达51469余人。为期四天的展会取得了良好效果,70%以上参展商当场表达了继续参展的意向。2008年是第五次举办该展。相关资料如下: 一、展览时间:2008年4月14日--17日 二、展会地点:香港会议展览中心 (中国香港湾仔博览道1号) 三、展品类别: 1、 春电展:A视听产品;C电子组件及技术;D数字影像产品;E电子配件;G个人电子产品;H家用电器;L电子保健产品;O办公室自动化及设备;R商贸服务;S保安产品;T电讯产品;U电子制造服务;J灯饰及照明产品。 2、资讯展 (ICT-5HALL): A网络及移动通讯产品和技术、通讯产品/移动通讯产品/互联网产品/网络产品及服务;B企业解决方案、管理应用软件/信息安全/电子商务/影像处理系统/资讯科技顾问及服务;C数码生活及多媒体、电脑周边设备(电脑笔记本工作站、打印机、扫描仪、鼠标、、CPU、主板、液晶显示器、数码相机、网络视频及光驱)、多媒体产品及应用(MP3 PM4、数据存储产品);D电子物流及零售科技产品;E本土创意科技--语音识别/生物防伪识别/人工智能/翻译/游戏等系统;F软件外包服务G商贸服务。 四、展位收费及配置: 1、报名注册费:RMB2000元 / 摊位。( 因参展单位原因未能参展时,此项费用不予退回 ) 2、摊位费: A、RMB 29500元人/ 9�O标准摊位(包括灯具展区A型展位) B、RMB 48800元 / 15�O标准摊位 C、RMB 67600元 / 15�O特级摊位(品牌廊) D、RMB 2800元 / �O 空地( 至少30平米 ) E、RMB 26600元 / 9�O标准摊位(ICT展位)(所有双开角位加收摊位费的5%) 五、参展办法及手续: 1、凡申请参展的单位,请逐项填写后付《参展申请表》,传真或邮寄至我会。 2、定金交付后填写:A、《中国内地馆参展表格》、B、《网上/产品杂志推广申请表》、C、《3张产品照片》主办单位免费为每家展商提供网上及杂志广告推广宣传,展位确认前务必提交上述表格与图片资料。 注:(主办单位要求:凡是老客户继续参展不能扩大展位规模;新客户参展只能提供1个9平米展位。)。 六、报名表等相关详细资料敬请联络广州招展处: 电 话: 13268068446 传 真:020-82341085 联系人: 李 ��13268068446[EMAIL PROTECTED] - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
[kvm-devel] 2008香港电子展
2008年香港春季电子产品展及 香港国际资讯科技博览会( ICT ) 香港春季电子展/香港国际资讯科技博览会由香港贸发局主办。在2007年4月17日结束的香港春季电子产品展/香港国际资讯科技博览会上,有来自二十二个国家及地区的2406家电子企业参加了此次盛会。来自153个国家及地区,贸易观众达51469余人。为期四天的展会取得了良好效果,70%以上参展商当场表达了继续参展的意向。2008年是第五次举办该展。相关资料如下: 一、展览时间:2008年4月14日--17日 二、展会地点:香港会议展览中心 (中国香港湾仔博览道1号) 三、展品类别: 1、 春电展:A视听产品;C电子组件及技术;D数字影像产品;E电子配件;G个人电子产品;H家用电器;L电子保健产品;O办公室自动化及设备;R商贸服务;S保安产品;T电讯产品;U电子制造服务;J灯饰及照明产品。 2、资讯展 (ICT-5HALL): A网络及移动通讯产品和技术、通讯产品/移动通讯产品/互联网产品/网络产品及服务;B企业解决方案、管理应用软件/信息安全/电子商务/影像处理系统/资讯科技顾问及服务;C数码生活及多媒体、电脑周边设备(电脑笔记本工作站、打印机、扫描仪、鼠标、、CPU、主板、液晶显示器、数码相机、网络视频及光驱)、多媒体产品及应用(MP3 PM4、数据存储产品);D电子物流及零售科技产品;E本土创意科技--语音识别/生物防伪识别/人工智能/翻译/游戏等系统;F软件外包服务G商贸服务。 四、展位收费及配置: 1、报名注册费:RMB2000元 / 摊位。( 因参展单位原因未能参展时,此项费用不予退回 ) 2、摊位费: A、RMB 29500元人/ 9�O标准摊位(包括灯具展区A型展位) B、RMB 48800元 / 15�O标准摊位 C、RMB 67600元 / 15�O特级摊位(品牌廊) D、RMB 2800元 / �O 空地( 至少30平米 ) E、RMB 26600元 / 9�O标准摊位(ICT展位)(所有双开角位加收摊位费的5%) 五、参展办法及手续: 1、凡申请参展的单位,请逐项填写后付《参展申请表》,传真或邮寄至我会。 2、定金交付后填写:A、《中国内地馆参展表格》、B、《网上/产品杂志推广申请表》、C、《3张产品照片》主办单位免费为每家展商提供网上及杂志广告推广宣传,展位确认前务必提交上述表格与图片资料。 注:(主办单位要求:凡是老客户继续参展不能扩大展位规模;新客户参展只能提供1个9平米展位。)。 六、报名表等相关详细资料敬请联络广州招展处: 电 话: 13268068446 传 真:020-82341085 联系人: 李 ��13268068446[EMAIL PROTECTED] - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
[kvm-devel] [patch 2 of 2] Emulate CMPS instruction
This patch emulates the CMPS instruction. Signed-off-by: Guillaume Thouvenin [EMAIL PROTECTED] --- drivers/kvm/x86_emulate.c | 54 +++-- 1 files changed, 52 insertions(+), 2 deletions(-) diff --git a/drivers/kvm/x86_emulate.c b/drivers/kvm/x86_emulate.c index cee60eb..db744cf 100644 --- a/drivers/kvm/x86_emulate.c +++ b/drivers/kvm/x86_emulate.c @@ -445,6 +445,29 @@ static u16 twobyte_table[256] = { register_address_increment(c-eip, rel);\ } while (0) +/* Test if the repeat string operation prefix is REPE/REPZ or + * REPNE/REPNZ and if it's the case it tests the corresponding + * termination condition according to: + * - if REPE/REPZ and ZF = 0 then done + * - if REPNE/REPNZ and ZF = 1 then done + */ +#define handle_rep_prefix(c)\ + do {\ + if ((c-b == 0xa6) || (c-b == 0xa7) || \ + (c-b == 0xae) || (c-b == 0xaf)) { \ + if ((c-rep_prefix == REPE_PREFIX)\ + ((ctxt-eflags EFLG_ZF) == 0)) { \ + ctxt-vcpu-rip = c-eip; \ + goto done; \ + } \ + if ((c-rep_prefix == REPNE_PREFIX) \ + ((ctxt-eflags EFLG_ZF) == EFLG_ZF)) {\ + ctxt-vcpu-rip = c-eip; \ + goto done; \ + } \ + } \ + } while (0) + static int do_fetch_insn_byte(struct x86_emulate_ctxt *ctxt, struct x86_emulate_ops *ops, unsigned long linear, u8 *dest) @@ -1540,10 +1563,15 @@ special_insn: break; } if (c-rep_prefix) { + /* All REP prefixes have the same first termination condition */ if (c-regs[VCPU_REGS_RCX] == 0) { ctxt-vcpu-rip = c-eip; goto done; } + /* The second termination condition only applies for REPE +* and REPNE. handle_rep_prefix() macro deals with that. +*/ + handle_rep_prefix(c); c-regs[VCPU_REGS_RCX]--; c-eip = ctxt-vcpu-rip; } @@ -1570,8 +1598,30 @@ special_insn: : c-dst.bytes); break; case 0xa6 ... 0xa7: /* cmps */ - DPRINTF(Urk! I don't handle CMPS.\n); - goto cannot_emulate; + c-src.type = OP_NONE; + c-src.bytes = (c-d ByteOp) ? 1 : c-op_bytes; + c-src.ptr = (unsigned long *)register_address( + ctxt-ds_base, + c-regs[VCPU_REGS_RDI]); + + c-dst.type = OP_NONE; + c-dst.bytes = (c-d ByteOp) ? 1 : c-op_bytes; + c-dst.ptr = (unsigned long *)register_address( + ctxt-es_base, + c-regs[VCPU_REGS_RSI]); + + DPRINTF(cmps: mem1=0x%p mem2=0x%p\n, c-src.ptr, c-dst.ptr); + + emulate_2op_SrcV(cmp, c-src, c-dst, ctxt-eflags); + + register_address_increment(c-regs[VCPU_REGS_RDI], + (ctxt-eflags EFLG_DF) ? -c-dst.bytes + : c-dst.bytes); + + register_address_increment(c-regs[VCPU_REGS_RSI], + (ctxt-eflags EFLG_DF) ? -c-dst.bytes + : c-dst.bytes); + break; case 0xaa ... 0xab: /* stos */ c-dst.type = OP_MEM; c-dst.bytes = (c-d ByteOp) ? 1 : c-op_bytes; - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] [PATCH 3/3] virtio PCI device
Avi Kivity wrote: Anthony Liguori wrote: Well please propose the virtio API first and then I'll adjust the PCI ABI. I don't want to build things into the ABI that we never actually end up using in virtio :-) Move -kick() to virtio_driver. Then on each kick, all queues have to be checked for processing? What devices do you expect this would help? I believe Xen networking uses the same event channel for both rx and tx, so in effect they're using this model. Long time since I looked though, I would have to look, but since rx/tx are rather independent actions, I'm not sure that you would really save that much. You still end up doing the same number of kicks unless I'm missing something. I was thinking more along the lines that a hypercall-based device would certainly be implemented in-kernel whereas the current device is naturally implemented in userspace. We can simply use a different device for in-kernel drivers than for userspace drivers. Where the device is implemented is an implementation detail that should be hidden from the guest, isn't that one of the strengths of virtualization? Two examples: a file-based block device implemented in qemu gives you fancy file formats with encryption and compression, while the same device implemented in the kernel gives you a low-overhead path directly to a zillion-disk SAN volume. Or a user-level network device capable of running with the slirp stack and no permissions vs. the kernel device running copyless most of the time and using a dma engine for the rest but requiring you to be good friends with the admin. The user should expect zero reconfigurations moving a VM from one model to the other. I'm wary of introducing the notion of hypercalls to this device because it makes the device VMM specific. Maybe we could have the device provide an option ROM that was treated as the device BIOS that we could use for kicking and interrupt acking? Any idea of how that would map to Windows? Are there real PCI devices that use the option ROM space to provide what's essentially firmware? Unfortunately, I don't think an option ROM BIOS would map well to other architectures. None of the PCI devices currently work like that in QEMU. It would be very hard to make a device that worked this way because since the order in which values are written matter a whole lot. For instance, if you wrote the status register before the queue information, the driver could get into a funky state. I assume you're talking about restore? Isn't that atomic? If you're doing restore by passing the PCI config blob to a registered routine, then sure, but that doesn't seem much better to me than just having the device generate that blob in the first place (which is what we have today). I was assuming that you would want to use the existing PIO/MMIO handlers to do restore by rewriting the config as if the guest was. Not much of an argument, I know. wrt. number of queues, 8 queues will consume 32 bytes of pci space if all you store is the ring pfn. You also at least need a num argument which takes you to 48 or 64 depending on whether you care about strange formatting. 8 queues may not be enough either. Eric and I have discussed whether the 9p virtio device should support multiple mounts per-virtio device and if so, whether each one should have it's own queue. Any devices that supports this sort of multiplexing will very quickly start using a lot of queues. Make it appear as a pci function? (though my feeling is that multiple mounts should be different devices; we can then hotplug mountpoints). We may run out of PCI slots though :-/ I think most types of hardware have some notion of a selector or mode. Take a look at the LSI adapter or even VGA. True. They aren't fun to use, though. I don't think they're really any worse :-) Regards, Anthony Liguori - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] [PATCH 3/3] virtio PCI device
Anthony Liguori wrote: Avi Kivity wrote: Anthony Liguori wrote: Well please propose the virtio API first and then I'll adjust the PCI ABI. I don't want to build things into the ABI that we never actually end up using in virtio :-) Move -kick() to virtio_driver. Then on each kick, all queues have to be checked for processing? What devices do you expect this would help? Networking. I believe Xen networking uses the same event channel for both rx and tx, so in effect they're using this model. Long time since I looked though, I would have to look, but since rx/tx are rather independent actions, I'm not sure that you would really save that much. You still end up doing the same number of kicks unless I'm missing something. rx and tx are closely related. You rarely have one without the other. In fact, a turned implementation should have zero kicks or interrupts for bulk transfers. The rx interrupt on the host will process new tx descriptors and fill the guest's rx queue; the guest's transmit function can also check the receive queue. I don't know if that's achievable for Linuz guests currently, but we should aim to make it possible. Another point is that virtio still has a lot of leading zeros in its mileage counter. We need to keep things flexible and learn from others as much as possible, especially when talking about the ABI. I'm wary of introducing the notion of hypercalls to this device because it makes the device VMM specific. Maybe we could have the device provide an option ROM that was treated as the device BIOS that we could use for kicking and interrupt acking? Any idea of how that would map to Windows? Are there real PCI devices that use the option ROM space to provide what's essentially firmware? Unfortunately, I don't think an option ROM BIOS would map well to other architectures. The BIOS wouldn't work even on x86 because it isn't mapped to the guest address space (at least not consistently), and doesn't know the guest's programming model (16, 32, or 64-bits? segmented or flat?) Xen uses a hypercall page to abstract these details out. However, I'm not proposing that. Simply indicate that we support hypercalls, and use some layer below to actually send them. It is the responsibility of this layer to detect if hypercalls are present and how to call them. Hey, I think the best place for it is in paravirt_ops. We can even patch the hypercall instruction inline, and the driver doesn't need to know about it. None of the PCI devices currently work like that in QEMU. It would be very hard to make a device that worked this way because since the order in which values are written matter a whole lot. For instance, if you wrote the status register before the queue information, the driver could get into a funky state. I assume you're talking about restore? Isn't that atomic? If you're doing restore by passing the PCI config blob to a registered routine, then sure, but that doesn't seem much better to me than just having the device generate that blob in the first place (which is what we have today). I was assuming that you would want to use the existing PIO/MMIO handlers to do restore by rewriting the config as if the guest was. Sure some complexity is unavoidable. But flat is simpler than indirect. Not much of an argument, I know. wrt. number of queues, 8 queues will consume 32 bytes of pci space if all you store is the ring pfn. You also at least need a num argument which takes you to 48 or 64 depending on whether you care about strange formatting. 8 queues may not be enough either. Eric and I have discussed whether the 9p virtio device should support multiple mounts per-virtio device and if so, whether each one should have it's own queue. Any devices that supports this sort of multiplexing will very quickly start using a lot of queues. Make it appear as a pci function? (though my feeling is that multiple mounts should be different devices; we can then hotplug mountpoints). We may run out of PCI slots though :-/ Then we can start selling virtio extension chassis. -- Any sufficiently difficult bug is indistinguishable from a feature. - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] emulation failed but !mmio_needed? rip 10000 fc 0f 01 15
Sheng Yang wrote: On Saturday 24 November 2007 07:23:20 Neo Jia wrote: hi, I happened to get a emulation fail when running the following command: System environment: Intel Core 2 Duo (E6600) x86_64 Fedora 8 (2.6.23.1-49.fc8). qemu-img create -f qcow debian-testing.img 10G sudo qemu-system-x86_64 -cdrom /home/cjia/download/debian-testing-i386-netinst.iso -hda debian-testing.img -boot d -m 1024 Everything works fine until it prompts me that the installation is complete and need reboot. sudo qemu-system-x86_64 -cdrom /home/cjia/download/debian-testing-i386-netinst.iso -hda debian-testing.img -boot d -m 1024 exception 13 (0) rax 0100 rbx 0100 rcx rdx 0600 rsi rdi rsp rbp r8 r9 r10 r11 r12 r13 r14 r15 rip 0001 rflags 00033003 cs f000 (000f/ p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0) ds (/ p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0) es (/ p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0) ss (/ p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0) fs (/ p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0) gs (/ p 1 dpl 3 db 0 s 1 type 3 l 0 g 0 avl 0) tr 0080 (40c0/2088 p 1 dpl 0 db 0 s 0 type b l 0 g 0 avl 0) ldt (/ p 1 dpl 0 db 0 s 0 type 2 l 0 g 0 avl 0) gdt 0/ idt 0/ cr0 6010 cr2 0 cr3 0 cr4 0 cr8 0 efer 0 code: 00 00 00 00 ea 5b e0 00 f0 31 30 2f 32 38 2f 30 37 00 fc f5 -- fc 0f 01 15 92 a0 31 00 b8 18 00 00 00 8e d8 8e c0 8e e0 8e e8 31 c0 bf 00 30 39 00 b9 7c Aborted --- dmesg: kvm: emulating exchange as write emulation failed but !mmio_needed? rip 1 fc 0f 01 15// I searched through the source code but not find a place to generate but !mmio_needed? string ... That's been removed some time ago (and replaced by another string). See 054b1369679fb97582fc77f25a700d4290ff3e89. It due to one instruction haven't been emulated: 0xfc(one byte instruction). Look it up in SDM Vol.2B's opcode map, you can find that's CLD. And look at what is CLD in SDM Vol.2, you will find CLD - Clear direction flag. So we miss this in x86_emulate.c. The version of kvm I used for kvm module is 694401697ccd822bb08019731c3ee1bb34323d8e and the kvm-userspace is a57b838b49bc4e4e7439b18d0323385d53e41c7f. // Not sure if this is the right way to show the version I am using. If not, please correct me, this is the first time I am using git... Yeah, that's the right ones. :) Anyway, I really want to get some comments about how to trace this problem and would be very glad to dig into it! Here is the chance! Add this instruction to our x86 emulator. You can take the implement of sti and cli as a reference. While adding the instrucion is helpful, something else has gone wrong here. cs:ip == f000:1. You can see the far jump at f000:fff0 (opcode ea) -- kvm just skipped over it somehow. Ah, it's been fixed already: see c408e4e8d9045d53c1d82c622a5756febd051ef9. I need to backport it to 2.6.23. -- Any sufficiently difficult bug is indistinguishable from a feature. - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/ ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel