Re: [Xen-ia64-devel] Re: [Xen-devel] [PATCH 0/5][IA64][HVM] Windows crashdump support

2007-01-23 Thread Keir Fraser
On 23/1/07 7:47 am, Jürgen Groß [EMAIL PROTECTED] wrote:

 It just seems a lot of plumbing for something not very useful, at least to
 users. You can dump memory via 'xm dump' after all if that's your goal (or
 will be able to when Isaku's patches go in). Would anyone else in the ai64
 community like to speak up for these patches?
 
 I think there is a big difference between 'xm dump' and a dump done by domU.
 Detailed error analysis might be possible only with a dump taken via domU as
 the dump analysis tools will work in most cases on the domU specific dump
 format only.
 Outside the Linux world :-) (e.g. in most UNIX flavors) crash dump analysis
 is very useful!
 I would strongly support Masaki's patches.

If that's the aim then perhaps the xm command should be given a better name.
'xm os-init' is rather meaningless outside the context of physical INIT
buttons on ia64 systems -- not a very generic concept to export to a VM
management tool! Perhaps 'xm os-dump' with a guest-specific backend
implementation in xend (default to fail with an error message).

 -- Keir



___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel


[Xen-ia64-devel] Re: [Xen-devel] [PATCH 0/5][IA64][HVM] Windows crashdump support

2007-01-23 Thread Keir Fraser
On 23/1/07 2:40 am, Masaki Kanno [EMAIL PROTECTED] wrote:

 In the ia64 machine, there is an INIT switch. By pushing the
 INIT switch, an INIT interruption is generated. The INIT
 interruption triggers off when the Windows collects the
 crashdump. (I attach a screenshot of the Windows crashdump.)

Does ia64 Windows generate a dump if you send it an NMI? That would be a
more generic mechanism that would allow x86 HVM to share the same domctl or
hvm_op. Otherwise we need a send_init hypercall for ia64 and a send_nmi
hypercall for x86, or we need a more vague generic name like
trigger_dump_switch (which actually is rather attractive now I think about
it).

 -- Keir



___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel


Re: [Xen-ia64-devel] Re: [Xen-devel] [PATCH 0/5][IA64][HVM] Windows crashdump support

2007-01-23 Thread Tristan Gingold
On Tue, Jan 23, 2007 at 08:06:23AM +, Keir Fraser wrote:
 On 23/1/07 2:40 am, Masaki Kanno [EMAIL PROTECTED] wrote:
 
  In the ia64 machine, there is an INIT switch. By pushing the
  INIT switch, an INIT interruption is generated. The INIT
  interruption triggers off when the Windows collects the
  crashdump. (I attach a screenshot of the Windows crashdump.)
 
 Does ia64 Windows generate a dump if you send it an NMI? That would be a
 more generic mechanism that would allow x86 HVM to share the same domctl or
 hvm_op. Otherwise we need a send_init hypercall for ia64 and a send_nmi
 hypercall for x86, or we need a more vague generic name like
 trigger_dump_switch (which actually is rather attractive now I think about
 it).
I support the feature too.

I think being able to post an NMI/INIT is a good feature.  It allows you
to test the feature if your bare hardware don't have it.

Maybe os-init is not the best name.
Maybe the balance between code in hypervisor (very small) and code in xm
(larger) is not very good, but difficule to improve !


Tristan.


___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel


[Xen-ia64-devel] Re: [Xen-devel] [PATCH 0/5][IA64][HVM] Windows crashdump support

2007-01-23 Thread Masaki Kanno

On 23/1/07 2:40 am, Masaki Kanno [EMAIL PROTECTED] wrote:

 In the ia64 machine, there is an INIT switch. By pushing the
 INIT switch, an INIT interruption is generated. The INIT
 interruption triggers off when the Windows collects the
 crashdump. (I attach a screenshot of the Windows crashdump.)

Does ia64 Windows generate a dump if you send it an NMI? That would be a
more generic mechanism that would allow x86 HVM to share the same domctl or
hvm_op. Otherwise we need a send_init hypercall for ia64 and a send_nmi
hypercall for x86, or we need a more vague generic name like
trigger_dump_switch (which actually is rather attractive now I think about
it).

Hi Keir,

No, the ia64 Windows does not generate the crashdump by the NMI. 
In the ia64 machine, the NMI interruption and the INIT interruption 
are generated by different mechanism. 
I don't adhere to the name of 'send_init'. Rather I think that 
'trigger_dump_switch' which you named it is better. 

Best regards,
 Kan



___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel


[Xen-ia64-devel] [PV-on-HVM] Hypercall optimizations

2007-01-23 Thread Kasai Takanori

Hi All,

We tested pv-on-hvm. 
But pv-on-hvm doesn't work by Hypercall optimizations.

・xen-ia64-unstable.hg : 13367
 [IA64] Hypercall optimizations

If we load xen-platform-pci.ko, the following errors occur.

 # insmod xen-platform-pci.ko
 xen_platform_pci: Unknown symbol __hypercall
 insmod: error inserting 'xen-platform-pci.ko': -1 Unknown symbol in module

It is necessary to export functio of __ hypercall() in unmodified_drivers. 
However, function of __hypercall() is defined by assembler code. 


How should we define function of __hypercall() in unmodified_drivers?
Then, how should export symbol of __hypercall()?

Best Regards,

--
Takanori Kasai



___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel


Re: [Xen-ia64-devel] [PATCH] Add netfornt tx_queue_len

2007-01-23 Thread Isaku Yamahata

The patch modifis common-code, not ia64 specific.
You should send it to xen-devel with Cc to xen-ia64-devel.


On Tue, Jan 23, 2007 at 03:26:41PM +0900, Tomonari Horikoshi wrote:
Content-Description: Mail message body
 
 Hi all.
 
 I mistook sending mail.
 I send it again.
 
 --
 
 Hi all.
 
 When I executed netperf by a short message of UDP, 
 PV domain issued Call trace.
 
 I think that GrantEntry was filled with a lot of messages processings.
 
 This problem is generated in IA64 only.
 I corrected to check number of unprocessing queue  tx_queue_len before 
 Grant was filled.
 
 
 Is there other a good correction?
 
 
 
 
 # ./netperf -t UDP_STREAM -H 10.34.179.101 -l 3 -- -m 10 -M 10
 
 netperf[2474]: bugcheck! 0 [1]
 Modules linked in:
 
 Pid: 2474, CPU 0, comm:  netperf
 psr : 1010081a2010 ifs : 8b9b ip  : [a001006c9ce0]
 Not tainted
 ip is at network_start_xmit+0xa00/0xe40
 unat:  pfs : 8b9b rsc : 000b
 rnat:  bsps:  pr  : 010468241566
 ldrs:  ccv :  fpsr: 0009804c8a70033f
 csd :  ssd : 
 
 
 
 
 Best regards,
 Tomonari Horikoshi
 


 ___
 Xen-ia64-devel mailing list
 Xen-ia64-devel@lists.xensource.com
 http://lists.xensource.com/xen-ia64-devel

-- 
yamahata

___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel


Re: [Xen-ia64-devel] Re: [Xen-devel] [PATCH 0/5][IA64][HVM] Windows crashdump support

2007-01-23 Thread Masaki Kanno

 It just seems a lot of plumbing for something not very useful, at least to
 users. You can dump memory via 'xm dump' after all if that's your goal (or
 will be able to when Isaku's patches go in). Would anyone else in the ai64
 community like to speak up for these patches?
 
 I think there is a big difference between 'xm dump' and a dump done by 
 domU.
 Detailed error analysis might be possible only with a dump taken via domU
  as
 the dump analysis tools will work in most cases on the domU specific dump
 format only.
 Outside the Linux world :-) (e.g. in most UNIX flavors) crash dump analysis
 is very useful!
 I would strongly support Masaki's patches.

If that's the aim then perhaps the xm command should be given a better name.
'xm os-init' is rather meaningless outside the context of physical INIT
buttons on ia64 systems -- not a very generic concept to export to a VM
management tool! Perhaps 'xm os-dump' with a guest-specific backend
implementation in xend (default to fail with an error message).

Hi,

Thanks for your idea. 
I thought about some general concept command name, too. I enumerate 
below it and your idea.

 A) xm os-dump
 B) xm dump-trigger
 C) xm dump-core --trigger
 D) xm dump-switch

Any command name?

Best regards,
 Kan



___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel


Re: [Xen-ia64-devel] Re: [Xen-devel] [PATCH 0/5][IA64][HVM] Windowscrashdump support

2007-01-23 Thread Masaki Kanno

On Tue, Jan 23, 2007 at 08:06:23AM +, Keir Fraser wrote:
 On 23/1/07 2:40 am, Masaki Kanno [EMAIL PROTECTED] wrote:
 
  In the ia64 machine, there is an INIT switch. By pushing the
  INIT switch, an INIT interruption is generated. The INIT
  interruption triggers off when the Windows collects the
  crashdump. (I attach a screenshot of the Windows crashdump.)
 
 Does ia64 Windows generate a dump if you send it an NMI? That would be a
 more generic mechanism that would allow x86 HVM to share the same domctl or
 hvm_op. Otherwise we need a send_init hypercall for ia64 and a send_nmi
 hypercall for x86, or we need a more vague generic name like
 trigger_dump_switch (which actually is rather attractive now I think 
 about
 it).
I support the feature too.

I think being able to post an NMI/INIT is a good feature.  It allows you
to test the feature if your bare hardware don't have it.


Hi Tristan,

Thanks for your comments. 

Maybe os-init is not the best name.

Maybe os-init is not the best command name as you say. If you have idea 
of command name, could you send it?

Maybe the balance between code in hypervisor (very small) and code in xm
(larger) is not very good, but difficule to improve !

I examined oneself. I should have checked a target domain (HVM domain or 
PV domain) in hypervisor. I will send the patch which moved the check of 
target domain into hypervisor. Maybe not difficult to improve.

Best regards,
 Kan



___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel


Re: [Xen-ia64-devel] Re: [Xen-devel] [PATCH 0/5][IA64][HVM] Windowscrashdump support

2007-01-23 Thread Tristan Gingold
On Wed, Jan 24, 2007 at 01:19:37AM +0900, Masaki Kanno wrote:
[...]
 Hi Tristan,
 
 Thanks for your comments. 
 
 Maybe os-init is not the best name.
 
 Maybe os-init is not the best command name as you say. If you have idea 
 of command name, could you send it?
something like
xm trigger init|reset|nmi

 Maybe the balance between code in hypervisor (very small) and code in xm
 (larger) is not very good, but difficule to improve !
 
 I examined oneself. I should have checked a target domain (HVM domain or 
 PV domain) in hypervisor. I will send the patch which moved the check of 
 target domain into hypervisor. Maybe not difficult to improve.
I think it is normal xm code is bigger than hypervisor.  But this makes x86
people not very happy!

BTW, it would be nice if the vcpu number could be specified!

Tristan.

___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel


Re: [Xen-ia64-devel] [PATCH] fix oops message from timer_interrupt on VTI domain

2007-01-23 Thread Alex Williamson
On Tue, 2007-01-23 at 09:36 +0900, Atsushi SAKAI wrote:
 diff -r 91be8436952d xen/arch/ia64/vmx/vlsapic.c
 --- a/xen/arch/ia64/vmx/vlsapic.c   Wed Jan 10 10:37:41 2007 -0700
 +++ b/xen/arch/ia64/vmx/vlsapic.c   Tue Jan 23 09:21:13 2007 +0900
 @@ -59,7 +59,7 @@ extern void vmx_reflect_interruption(u64
   u64 vector, REGS *regs);
  static void update_last_itc(vtime_t *vtm, uint64_t cur_itc)
  {
 -vtm-last_itc = cur_itc;
 +vtm-last_itc = cur_itc + 1;
  }
  
  /* 

   In theory, I think this is probably fine.  But wouldn't it make more
sense to have the caller do the increment?  Something like:

update_last_itc(vtm, VCPU(vcpu, itm) + 1);

Preferably with a nice comment describing the condition that + 1 is
trying to avoid.  Thanks,

Alex

-- 
Alex Williamson HP Open Source  Linux Org.


___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel


Re: [Xen-ia64-devel] [PATCH] fix oops message from timer_interrupt on VTI domain

2007-01-23 Thread Aron Griffis
Atsushi SAKAI wrote:  [Mon Jan 22 2007, 07:36:55PM EST]
 Oops: timer tick before it's due (itc=ed98bb5849,itm=ed98bb5849)
 Oops: timer tick before it's due (itc=f20bca8ca3,itm=f20bca8ca3)
 Oops: timer tick before it's due (itc=f4ea4e2b32,itm=f4ea4e2b32)
...
 
 These oops messages are generated
 because timer_interrupt checks the condition itc  itm.

Is that the right comparison though?  itc isn't guaranteed to return
different values on subsequent fetches, and the interrupt is generated
when itc == itm, right?  So shouldn't the condition be itc = itm?

Aron

___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel


Re: [Xen-ia64-devel] [PATCH] fix oops message from timer_interrupt on VTI domain

2007-01-23 Thread Alex Williamson
On Tue, 2007-01-23 at 16:44 -0500, Aron Griffis wrote:
 Atsushi SAKAI wrote:  [Mon Jan 22 2007, 07:36:55PM EST]
  Oops: timer tick before it's due (itc=ed98bb5849,itm=ed98bb5849)
  Oops: timer tick before it's due (itc=f20bca8ca3,itm=f20bca8ca3)
  Oops: timer tick before it's due (itc=f4ea4e2b32,itm=f4ea4e2b32)
 ...
  
  These oops messages are generated
  because timer_interrupt checks the condition itc  itm.
 
 Is that the right comparison though?  itc isn't guaranteed to return
 different values on subsequent fetches, and the interrupt is generated
 when itc == itm, right?  So shouldn't the condition be itc = itm?

   Good point.  With the slower ITC on a Montecito system, I don't know
if anything would prevent you hitting the interrupt handler when itc ==
itm.  Perhaps a Montecito fix for Linux-ia64 to use time_after_eq()
would eliminate this problem.

Alex
-- 
Alex Williamson HP Open Source  Linux Org.


___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel


Re: [Xen-ia64-devel][Patch] Clean patch (clean VLIDATE_VT)

2007-01-23 Thread Alex Williamson
On Thu, 2007-01-18 at 16:35 +0800, Zhang, Xing Z wrote:
 It’s not be defined, so clean it.

   Applied.  Thanks,

Alex

-- 
Alex Williamson HP Open Source  Linux Org.


___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel


Re: [Xen-ia64-devel][PATCH] don't panic dom0 if there is not enough memory to create guest

2007-01-23 Thread Alex Williamson
On Thu, 2007-01-18 at 18:00 +0800, Zhang, Xing Z wrote:
 When there is not enough memory to create a domain,
 
 we not need panic domain0. Just prevent it from crating.

   Applied.  Thanks,

Alex

-- 
Alex Williamson HP Open Source  Linux Org.


___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel


RE: [Xen-ia64-devel][PATCH]Implement eager save, lazy restore FPalgorithm

2007-01-23 Thread Alex Williamson
On Thu, 2007-01-18 at 23:46 +0800, Xu, Anthony wrote:

 I didn't consider VCPU migration in previous patch.
 This patch fixed this.
 
 Tested by running KB on two VTI domain with two VCPUs each.

   This version seems to work fine.  Applied.  Thanks,

Alex

-- 
Alex Williamson HP Open Source  Linux Org.


___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel


Re: [Xen-ia64-devel] [Patch 2/2] improve calltarce

2007-01-23 Thread Alex Williamson
On Fri, 2007-01-19 at 12:48 +0900, Akio Takebe wrote:
 Hi,
 
 I improve CallTrace at the time of pushing INIT button.
 This improve to support calltrace of all vcpu.

   Applied.  Thanks,

Alex

-- 
Alex Williamson HP Open Source  Linux Org.


___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel


Re: [Xen-ia64-devel][PATCH] Fix Xen crash when creating VTI in some machines.

2007-01-23 Thread Alex Williamson
On Fri, 2007-01-19 at 16:37 +0800, Zhang, Xing Z wrote:

 
 Xend will do a hypercall to destory domain when creating VTI guest
 fail. If is_vti 
 
 not be set at this point, HV will call relinquish_vcpu_resource()
 which belong
 
 to domU. It may try to free a NULL pointer, so dom0 crash. 
 
 This patch fix it.

   Applied.  Thanks,

Alex

-- 
Alex Williamson HP Open Source  Linux Org.


___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel


[Xen-ia64-devel] [PATCH] Add netfornt tx_queue_len

2007-01-23 Thread Tomonari Horikoshi


Thank you for your comment. ( - Isaku Yamahata)

Isaku Yamahata wrote:--
Sent:Tue, 23 Jan 2007 22:29:47 +0900
Subject: Re: [Xen-ia64-devel] [PATCH] Add netfornt tx_queue_len

 
 The patch modifis common-code, not ia64 specific.
 You should send it to xen-devel with Cc to xen-ia64-devel.
 


--

Hi all.

When I executed netperf by a short message of UDP, 
PV domain and PV-on-HVM driver issued Call trace.

I think that GrantEntry was filled with a lot of messages processings.

This problem is generated in IA64 only.
Probably, I think that I am the following problems. 

  In IA64
NET_TX_RING_SIZE 1024,  NR_GRANT_ENTRIES 2048
  In x86
NET_TX_RING_SIZE  256,  NR_GRANT_ENTRIES 2048

I corrected to check number of unprocessing queue  tx_queue_len before Grant 
was filled.

However, my correction influences x86. 
Please teach to me in that when there is a better improvement. 



# ./netperf -t UDP_STREAM -H 10.34.179.101 -l 3 -- -m 10 -M 10

netperf[2474]: bugcheck! 0 [1]
Modules linked in:

Pid: 2474, CPU 0, comm:  netperf
psr : 1010081a2010 ifs : 8b9b ip  : [a001006c9ce0]Not 
tainted
ip is at network_start_xmit+0xa00/0xe40
unat:  pfs : 8b9b rsc : 000b
rnat:  bsps:  pr  : 010468241566
ldrs:  ccv :  fpsr: 0009804c8a70033f
csd :  ssd : 




Best regards,
Tomonari Horikoshi



tx-queue-len-support.patch
Description: Binary data
___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel

[Xen-ia64-devel] [PATCH] ptc_ga might not purge vtlb

2007-01-23 Thread Kouya SHIMURA
Hi,

SMP Windows sometimes failed to boot up with BSOD.
After the deep investigation, I found a bug.

If VTLB hasn't been used in region 0,
ptc_ga for other region doesn't purge VTLBs.

Thanks,
Kouya

Signed-off-by: Kouya Shimura [EMAIL PROTECTED]

diff -r 10dd3c907ca7 xen/arch/ia64/vmx/vmmu.c
--- a/xen/arch/ia64/vmx/vmmu.c  Tue Jan 23 12:07:02 2007 -0700
+++ b/xen/arch/ia64/vmx/vmmu.c  Wed Jan 24 11:12:03 2007 +0900
@@ -574,7 +574,8 @@ static void ptc_ga_remote_func (void *va
 mpta = ia64_get_pta();
 ia64_set_pta(v-arch.arch_vmx.mpta(~1));
 ia64_srlz_d();
-vmx_vcpu_ptc_l(v, REGION_OFFSET(vadr), args-ps);
+vadr = PAGEALIGN(vadr, args-ps);
+thash_purge_entries_remote(v, vadr, args-ps);
 VMX(v, vrr[0]) = oldrid; 
 VMX(v, psbits[0]) = oldpsbits;
 ia64_set_rr(0x0,moldrid);
diff -r 10dd3c907ca7 xen/arch/ia64/vmx/vtlb.c
--- a/xen/arch/ia64/vmx/vtlb.c  Tue Jan 23 12:07:02 2007 -0700
+++ b/xen/arch/ia64/vmx/vtlb.c  Wed Jan 24 11:12:03 2007 +0900
@@ -261,7 +261,7 @@ u64 guest_vhpt_lookup(u64 iha, u64 *pte)
  *  purge software guest tlb
  */
 
-void vtlb_purge(VCPU *v, u64 va, u64 ps)
+static void vtlb_purge(VCPU *v, u64 va, u64 ps)
 {
 thash_data_t *cur;
 u64 start, curadr, size, psbits, tag, rr_ps, num;
@@ -442,6 +442,15 @@ void thash_purge_entries(VCPU *v, u64 va
 vhpt_purge(v, va, ps);
 }
 
+void thash_purge_entries_remote(VCPU *v, u64 va, u64 ps)
+{
+u64 old_va = va;
+va = REGION_OFFSET(va);
+if(vcpu_quick_region_check(v-arch.tc_regions,old_va))
+vtlb_purge(v, va, ps);
+vhpt_purge(v, va, ps);
+}
+
 u64 translate_phy_pte(VCPU *v, u64 *pte, u64 itir, u64 va)
 {
 u64 ps, ps_mask, paddr, maddr;
diff -r 10dd3c907ca7 xen/include/asm-ia64/vmmu.h
--- a/xen/include/asm-ia64/vmmu.h   Tue Jan 23 12:07:02 2007 -0700
+++ b/xen/include/asm-ia64/vmmu.h   Wed Jan 24 11:12:03 2007 +0900
@@ -271,6 +271,7 @@ extern thash_data_t *thash_find_next_ove
  *
  */
 extern void thash_purge_entries(struct vcpu *v, u64 va, u64 ps);
+extern void thash_purge_entries_remote(struct vcpu *v, u64 va, u64 ps);
 extern void thash_purge_and_insert(struct vcpu *v, u64 pte, u64 itir, u64 ifa, 
int type);
 
 /*
___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel

RE: [Xen-ia64-devel] [PV-on-HVM] Hypercall optimizations

2007-01-23 Thread Xu, Anthony
Hi Kasai,

For PV-on-HVM, it needs to implement hypercall stub itself.

This stub needs to be implemented by a function call.

 It is necessary to export functio of __ hypercall() in
 unmodified_drivers. However, function of __hypercall() is defined by
 assembler code. 
 
I don't quite understand this question.
Even __hypercall() is definded by assembler code.
It can be exported by using EXPORT_SYMBOL(__hypercall) in some C file.

- Anthony


Kasai Takanori write on 2007年1月23日 20:23:
 Hi All,
 
 We tested pv-on-hvm.
 But pv-on-hvm doesn't work by Hypercall optimizations.
 ・xen-ia64-unstable.hg : 13367
   [IA64] Hypercall optimizations
 
 If we load xen-platform-pci.ko, the following errors occur.
 
   # insmod xen-platform-pci.ko
   xen_platform_pci: Unknown symbol __hypercall
   insmod: error inserting 'xen-platform-pci.ko': -1 Unknown symbol in
 module 
 
 It is necessary to export functio of __ hypercall() in
 unmodified_drivers. However, function of __hypercall() is defined by
 assembler code. 
 
 How should we define function of __hypercall() in unmodified_drivers?
 Then, how should export symbol of __hypercall()?
 
 Best Regards,

___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel


[Patch][RFC] fix PAL_HALT ( is Re: [Xen-ia64-devel] [RFC] dump core is failed for PAL_HALT)

2007-01-23 Thread Akio Takebe
Hi, Isaku and all

Thank you for your suggestion.
Choice C.
   Modify PAL_HALT emulation as follows.
   If other vcpu is left and alive, vcpu is put in sleep.
   If current is the last vcpu, call domain_shutdown(SHUTDOWN_poweroff).
   It will be guaranteed that the vcpu which call panic() calls
HYPERVISOR_shutdown(SHUTDOWN_crash) via xen_panic_block so that
the guest domain's core dump should be created.
(I haven't tested it though.)

-- 

I make the patch of choice C.
This patch modify PAL_HALT of guest domain.
I can dump correctly with my patch.
But if I use this patch, I cannot shutdown domU,
because linux machine_halt() call cpu_halt from only one cpu.
Do anyone know why linux call it from only one cpu?
Or do I have miss-reading about that?

Best Regards,

Akio Takebe

domainU_pal_halt.patch
Description: Binary data
___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel

RE: [Xen-ia64-devel] [PATCH] ptc_ga might not purge vtlb

2007-01-23 Thread Xu, Anthony
Hi kouya,

Good catch!!!

It is not easy to narrow down this issue.


Thanks,

- Anthony


Kouya SHIMURA write on 2007年1月24日 10:37:
 Hi,
 
 SMP Windows sometimes failed to boot up with BSOD.
 After the deep investigation, I found a bug.
 
 If VTLB hasn't been used in region 0,
 ptc_ga for other region doesn't purge VTLBs.
 
 Thanks,
 Kouya
 
 Signed-off-by: Kouya Shimura [EMAIL PROTECTED]

___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel


[Xen-ia64-devel] [PATCH] xen might misunderstand a normal page as I/O page

2007-01-23 Thread Kouya SHIMURA
Hi,

Hypervisor might misunderstand a normal page as I/O page
if a guest OS uses the ig field in the guest VHPT.

It seems to be harmless but slightly slow down.

Thanks,
Kouya

Signed-off-by: Kouya Shimura [EMAIL PROTECTED]

diff -r 58637a0a7c7e xen/arch/ia64/vmx/vtlb.c
--- a/xen/arch/ia64/vmx/vtlb.c  Wed Jan 17 21:45:34 2007 -0700
+++ b/xen/arch/ia64/vmx/vtlb.c  Wed Jan 24 12:35:55 2007 +0900
@@ -248,6 +248,7 @@ u64 guest_vhpt_lookup(u64 iha, u64 *pte)
   tnat.nz p6,p7=r9;;
   (p6) mov %0=1;
   (p6) mov r9=r0;
+  (p7) extr.u r9=r9,0,53;;
   (p7) mov %0=r0;
   (p7) st8 [%2]=r9;;
   ssm psr.ic;;
___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel

RE: [Xen-ia64-devel] [PATCH] xen might misunderstand a normal page asI/O page

2007-01-23 Thread Xu, Anthony
Hi Kouya,

Can you explain more?

How does misunderstanding happen?
And how does this patch fix it?

Thanks
Anthony

Kouya SHIMURA write on 2007年1月24日 12:31:
 Hi,
 
 Hypervisor might misunderstand a normal page as I/O page
 if a guest OS uses the ig field in the guest VHPT.
 
 It seems to be harmless but slightly slow down.
 
 Thanks,
 Kouya
 
 Signed-off-by: Kouya Shimura [EMAIL PROTECTED]

___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel


Re: [Xen-ia64-devel] Re: [Xen-devel] [PATCH 0/5][IA64][HVM] Windowscrashdump support

2007-01-23 Thread Masaki Kanno

On Tue, Jan 23, 2007 at 04:36:57PM +, Keir Fraser wrote:
 On 23/1/07 16:32, Tristan Gingold [EMAIL PROTECTED] wrote:
 
  Maybe os-init is not the best command name as you say. If you have idea
  of command name, could you send it?
  something like
  xm trigger init|reset|nmi
 
 This could be acceptable, mapping to a domctl command with type enumeration
 argument. Specifying vcpu would indeed make sense. It's not clear that such
 a flexible interface would really be needed (maybe xm os-dump vcpu would
 suffice, mapping to the usual 'hardware dump switch' method for the
 particular architecture?) but it's better than 'xm os-init' which I
 definitely dislike, and maybe the extra flexibility could turn out to be
 useful.
For sure this is an export-only command.
I don't really like the xm os-dump name, because the action of init/nmi is
up to the domain.  It may or not dump.

Hi Tristan and Keir and all,

Thanks for your idea and comments.
I will remake and resend these patches in the following command syntax. 

 xm trigger Domain VCPU init|reset|nmi

Best regards,
 Kan



___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel


Re: [Xen-ia64-devel][PATCH] don't panic dom0 if there is not enoughmemory to create guest

2007-01-23 Thread Aron Griffis
Hello Zhang,

I understand this is already applied, but I have some minor comments
for the future.

Aron

Zhang, Xing Z wrote:  [Thu Jan 18 2007, 09:05:21PM EST]
Content-Description: donnot_panic_dom0_2.patch
 When there is not enough memory to create a domain,
 we not need panic domain0. Just prevent it from crating.
 
 Signed-off-by, Zhang Xin  [EMAIL PROTECTED] 
 diff -r 58637a0a7c7e xen/arch/ia64/vmx/vmmu.c
 --- a/xen/arch/ia64/vmx/vmmu.cWed Jan 17 21:45:34 2007 -0700
 +++ b/xen/arch/ia64/vmx/vmmu.cFri Jan 19 01:38:42 2007 +0800
 @@ -129,13 +129,16 @@ purge_machine_tc_by_domid(domid_t domid)
  #endif
  }
  
 -static void init_domain_vhpt(struct vcpu *v)
 +static int init_domain_vhpt(struct vcpu *v)
  {
  struct page_info *page;
  void * vbase;
  page = alloc_domheap_pages (NULL, VCPU_VHPT_ORDER, 0);
  if ( page == NULL ) {
 -panic_domain(vcpu_regs(v),No enough contiguous memory for 
 init_domain_vhpt\n);
 +//panic_domain(vcpu_regs(v),No enough contiguous memory for 
 init_domain_vhpt\n);
 +printk(No enough contiguous memory for init_domain_vhpt\n);

There's no need to comment out the panic_domain line.  That's what
source control is for! :-)  Better to just remove it.

 +
 +return -1;
  }
  vbase = page_to_virt(page);
  memset(vbase, 0, VCPU_VHPT_SIZE);
 @@ -147,18 +150,38 @@ static void init_domain_vhpt(struct vcpu
  VHPT(v,cch_sz) = VCPU_VHPT_SIZE - VHPT(v,hash_sz);
  thash_init((v-arch.vhpt),VCPU_VHPT_SHIFT-1);
  v-arch.arch_vmx.mpta = v-arch.vhpt.pta.val;
 -}
 -
 -
 -
 -void init_domain_tlb(struct vcpu *v)
 +
 +return 0;
 +}
 +
 +
 +static void free_domain_vhpt(struct vcpu *v)
 +{
 +struct page_info *page;
 +
 +if ( v-arch.vhpt.hash) {
 +page = virt_to_page(v-arch.vhpt.hash);
 +free_domheap_pages(page, VCPU_VHPT_ORDER);
 +}
 +
 +return;
 +}
 +
 +int init_domain_tlb(struct vcpu *v)
  {
  struct page_info *page;
  void * vbase;
 -init_domain_vhpt(v);
 +
 +if ( init_domain_vhpt(v) != 0 )
 +goto err;
 +
  page = alloc_domheap_pages (NULL, VCPU_VTLB_ORDER, 0);
  if ( page == NULL ) {
 -panic_domain(vcpu_regs(v),No enough contiguous memory for 
 init_domain_tlb\n);
 +//panic_domain(No enough contiguous memory for init_domain_tlb\n);
 +printk(No enough contiguous memory for init_domain_tlb\n);

Same here.

 +free_domain_vhpt(v);
 +
 +goto err;
  }
  vbase = page_to_virt(page);
  memset(vbase, 0, VCPU_VTLB_SIZE);
 @@ -169,7 +192,12 @@ void init_domain_tlb(struct vcpu *v)
  VTLB(v,cch_buf) = (void *)((u64)vbase + VTLB(v,hash_sz));
  VTLB(v,cch_sz) = VCPU_VTLB_SIZE - VTLB(v,hash_sz);
  thash_init((v-arch.vtlb),VCPU_VTLB_SHIFT-1);
 -}
 +
 +return 0;
 +err:
 +return -1;
 +}

If there's nothing to clean up, IMHO there is no need for goto err.
Instead you could just return the error code directly.  

Is there a better error code to use in these cases than -1, for
example -ENOMEM?

 +
  
  void free_domain_tlb(struct vcpu *v)
  {
 @@ -179,10 +207,8 @@ void free_domain_tlb(struct vcpu *v)
  page = virt_to_page(v-arch.vtlb.hash);
  free_domheap_pages(page, VCPU_VTLB_ORDER);
  }
 -if ( v-arch.vhpt.hash) {
 -page = virt_to_page(v-arch.vhpt.hash);
 -free_domheap_pages(page, VCPU_VHPT_ORDER);
 -}
 +
 +free_domain_vhpt(v);
  }
  
  /*
 diff -r 58637a0a7c7e xen/arch/ia64/vmx/vmx_init.c
 --- a/xen/arch/ia64/vmx/vmx_init.cWed Jan 17 21:45:34 2007 -0700
 +++ b/xen/arch/ia64/vmx/vmx_init.cThu Jan 18 09:56:06 2007 +0800
 @@ -290,7 +290,7 @@ static void vmx_release_assist_channel(s
   * Initialize VMX envirenment for guest. Only the 1st vp/vcpu
   * is registered here.
   */
 -void
 +int
  vmx_final_setup_guest(struct vcpu *v)
  {
   vpd_t *vpd;
 @@ -305,7 +305,8 @@ vmx_final_setup_guest(struct vcpu *v)
* to this solution. Maybe it can be deferred until we know created
* one as vmx domain */
  #ifndef HASH_VHPT
 - init_domain_tlb(v);
 + if ( init_domain_tlb(v) != 0 )
 +goto err;
  #endif
   vmx_create_event_channels(v);
  
 @@ -322,6 +323,10 @@ vmx_final_setup_guest(struct vcpu *v)
  
   /* Set up guest 's indicator for VTi domain*/
   set_bit(ARCH_VMX_DOMAIN, v-arch.arch_vmx.flags);
 +
 +return 0;
 +err:
 +return -1;
  }

Same here.

  void
 diff -r 58637a0a7c7e xen/arch/ia64/xen/domain.c
 --- a/xen/arch/ia64/xen/domain.c  Wed Jan 17 21:45:34 2007 -0700
 +++ b/xen/arch/ia64/xen/domain.c  Thu Jan 18 09:56:06 2007 +0800
 @@ -585,8 +585,11 @@ int arch_set_info_guest(struct vcpu *v, 
   if (test_bit(_VCPUF_initialised, v-vcpu_flags))
   return 0;
  
 - if (d-arch.is_vti)
 - vmx_final_setup_guest(v);
 + if (d-arch.is_vti){
 + rc = vmx_final_setup_guest(v);
 +if ( rc != 0 )
 +return rc;
 +}
   else {
   

[Xen-ia64-devel] Xen/IA64 Healthiness Report -Cset#13472

2007-01-23 Thread You, Yongkang
Xen/IA64 Healthiness Report

1 SMP VTI testing case failed in daily testing progress. But after
retesting more 
than 100 times for this case, we can not reproduce the failure. So just
look it as the occasional case. 

Testing Environment:

Platform: Tiger4
Processor: Itanium 2 Processor
Logic Processors number: 8 (2 processors with Due Core)
Service OS: RHEL4u3 IA64 SMP with 2 vcpus  1G memory
VTI Guest OS: RHEL4u2  RHEL4u3
XenU Guest OS: RHEL4u2
Xen IA64 Unstable tree: 13472:10dd3c907ca7
Xen Schedule: credit
VTI Guest Firmware Flash.fd.2006.12.01 MD5:
09a224270416036a8b4e6f8496e97854

Summary Test Report:
-
  Total cases: 16
  Passed:16
  Failed: 0

Case Name Status   Case Description
Four_SMPVTI_Coexistpass   4 VTI (mem=256, vcpus=2)
Two_UP_VTI_Co pass   2 UP_VTI (mem=256)
One_UP_VTIpass1 UP_VTI (mem=256)
One_UP_XenU  pass1 UP_xenU(mem=256)
SMPVTI_LTPpassVTI (vcpus=4, mem=512) run LTP
SMPVTI_and_SMPXenU   pass  1 VTI + 1 xenU (mem=256 vcpus=2)
Two_SMPXenU_Coexistpass2 xenU (mem=256, vcpus=2)
One_SMPVTI_4096M  pass  1 VTI (vcpus=2, mem=4096M)
SMPVTI_Network  pass  1 VTI (mem=256,vcpu=2) and 'ping'
SMPXenU_Networkpass  1 XenU (vcpus=2) and 'ping'
One_SMP_XenU  pass   1 SMP xenU (vcpus=2)
One_SMP_VTIpass   1 SMP VTI (vcpus=2)
SMPVTI_Kernel_Build  pass  VTI (vcpus=4) and do Kernel Build
Four_SMPVTI_Coexist  pass  4 VTI domains( mem=256, vcpu=2)
SMPVTI_Windows  pass  SMPVTI windows(vcpu=2)
SMPWin_SMPVTI_SMPxenU  pass  SMPVTI Linux/Windows  XenU
UPVTI_Kernel_Build   pass   1 UP VTI and do kernel build

Notes:
-
The last stable changeset:
-
13472:10dd3c907ca7

Thanks,
Yongkang

___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel


Re: [Xen-ia64-devel] Re: [Xen-devel] [PATCH 0/5][IA64][HVM] Windowscrashdump support

2007-01-23 Thread Tristan Gingold
On Wed, Jan 24, 2007 at 02:27:42PM +0900, Masaki Kanno wrote:
[...]
 Hi Tristan and Keir and all,
 
 Thanks for your idea and comments.
 I will remake and resend these patches in the following command syntax. 
 
  xm trigger Domain VCPU init|reset|nmi
 xm trigger Domain init|reset|nmi [VCPU]
is slightly better.  By default VCPU is 0.

Tristan.

___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel


Re: [Patch][RFC] fix PAL_HALT ( is Re: [Xen-ia64-devel] [RFC] dump core is failed for PAL_HALT)

2007-01-23 Thread Isaku Yamahata
On Wed, Jan 24, 2007 at 11:43:37AM +0900, Akio Takebe wrote:
Content-Description: Mail message body

 Thank you for your suggestion.
 Choice C.
  Modify PAL_HALT emulation as follows.
  If other vcpu is left and alive, vcpu is put in sleep.
  If current is the last vcpu, call domain_shutdown(SHUTDOWN_poweroff).
  It will be guaranteed that the vcpu which call panic() calls
 HYPERVISOR_shutdown(SHUTDOWN_crash) via xen_panic_block so that
 the guest domain's core dump should be created.
 (I haven't tested it though.)
 
 -- 
 
 I make the patch of choice C.
 This patch modify PAL_HALT of guest domain.
 I can dump correctly with my patch.
 But if I use this patch, I cannot shutdown domU,
 because linux machine_halt() call cpu_halt from only one cpu.
 Do anyone know why linux call it from only one cpu?
 Or do I have miss-reading about that?

According to SDM vol2 11.9, PAL_HALT places cpu in low power state.
So the current behaviour that xen/ia64 shutdown unconditionally is
wrong.
CPU hot-unplug routine also calls cpu_halt(). In that case, 
only the targeted cpu should be halted. We don't want domain shutdown.

Probably modifying machine_reboot() and machine_power_off() 
needs modification(paravirtualization) to call shutdown hypercall.
-- 
yamahata

___
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel