RE: [Xen-ia64-devel] VT-i: general exception

2006-04-11 Thread Xu, Anthony
From: Tristan Gingold 
Sent: 2006?4?11? 16:47
Le Mardi 11 Avril 2006 03:17, Xu, Anthony a écrit :
 From: Tristan Gingold

 Sent: 2006?4?11? 0:03
 To: xen-ia64-devel@lists.xensource.com
 Subject: [Xen-ia64-devel] VT-i: general exception
 
 Hi,
 
 inside vmx_ivt.S:
 
 // 0x5400 Entry 24 (size 16 bundles) General Exception (5,32,34,36,38,39)
 ENTRY(vmx_general_exception)
 VMX_DBG_FAULT(24)
 VMX_FAULT(24)
 //VMX_REFLECT(24)
 END(vmx_general_exception)
 
 IIRC, VMX_FAULT is an infinite loop.  Therefore, in case of general
  exception raised at the hots IVT, xen locks.
 
 Is it a bug or something not finished ?

 It's not a bug, normally general exception will not happen in guest,
 If it does happen, that means something wrong, it was used for
 debugging.
???

Try this program:

int main(void)
{
  int a = *(volatile int *)0xf000;
}

This locks up Xen!
Ideally gp fault should be injected into guest.
Again, this was only used for debugging tricky issue
happening inside VMM.

Thanks,
Anthony



Tristan.

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


Re: [Xen-ia64-devel] VT-i: general exception

2006-04-11 Thread Tristan Gingold
Le Mardi 11 Avril 2006 10:49, Xu, Anthony a écrit :
 From: Tristan Gingold

 Sent: 2006?4?11? 16:47
 
 Le Mardi 11 Avril 2006 03:17, Xu, Anthony a écrit :
  From: Tristan Gingold
 
  Sent: 2006?4?11? 0:03
  To: xen-ia64-devel@lists.xensource.com
  Subject: [Xen-ia64-devel] VT-i: general exception
  
  Hi,
  
  inside vmx_ivt.S:
  
  // 0x5400 Entry 24 (size 16 bundles) General Exception
   (5,32,34,36,38,39) ENTRY(vmx_general_exception)
  VMX_DBG_FAULT(24)
  VMX_FAULT(24)
  //VMX_REFLECT(24)
  END(vmx_general_exception)
  
  IIRC, VMX_FAULT is an infinite loop.  Therefore, in case of general
   exception raised at the hots IVT, xen locks.
  
  Is it a bug or something not finished ?
 
  It's not a bug, normally general exception will not happen in guest,
  If it does happen, that means something wrong, it was used for
  debugging.
 
 ???
 
 Try this program:
 
 int main(void)
 {
   int a = *(volatile int *)0xf000;
 }
 
 This locks up Xen!

 Ideally gp fault should be injected into guest.
No.  Xen-Vti set 'opcode' virtual env parameter to 1.
Therefore according to 5.2.2, some GF are raised at the *host* IVT.

 Again, this was only used for debugging tricky issue
 happening inside VMM.
This is wrong.  This simple program locks Xen-Vti, but it shouldn't.

Tristan.



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


RE: [Xen-ia64-devel] VT-i: general exception

2006-04-11 Thread Xu, Anthony
Ok I'll modify this.

Thanks,
Anthony

 Ideally gp fault should be injected into guest.
No.  Xen-Vti set 'opcode' virtual env parameter to 1.
Therefore according to 5.2.2, some GF are raised at the *host* IVT.

 Again, this was only used for debugging tricky issue
 happening inside VMM.
This is wrong.  This simple program locks Xen-Vti, but it shouldn't.

Tristan.

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


Re: [Xen-ia64-devel] [PATCH][RFC][TAKE4] the P2M/VP patches

2006-04-11 Thread Isaku Yamahata
On Tue, Apr 11, 2006 at 09:29:18AM +0100, Tristan Gingold wrote:
 Le Mardi 11 Avril 2006 03:52, Isaku Yamahata a écrit :
  Thank you for testing.
 
  On Mon, Apr 10, 2006 at 03:52:52PM +0100, Tristan Gingold wrote:
   Le Vendredi 07 Avril 2006 06:16, Isaku Yamahata a écrit :
Hello.
I attached the P2M/VP model patches take 4 for the change set
9492:2133fb78dba3cf6b6b88d1566fc5cc9de3039f43.
Please comments/request/review.
  
   I am testing this on my FAME-C.
   Currently it doesn't work: this is an infinite loop in an mpt driver.
   I will check how it does handle DMA.
 
  It seems wrong dma address is used.
  My test environment is Tiger-2. Mpt driver is used.
  I encountered similar case before, but I don't remember clearly.
 In fact I think it is due to the bug below.

It seems that the IOSAPIC area is not mapped to dom0.
Does the following patch make difference?
Could you send the all log?


diff -r e2003842daeb xen/arch/ia64/xen/domain.c
--- a/xen/arch/ia64/xen/domain.cMon Apr 10 15:08:03 2006 +0900
+++ b/xen/arch/ia64/xen/domain.cTue Apr 11 18:21:34 2006 +0900
@@ -752,6 +752,7 @@ assign_domain_mmio_page(struct domain *d
 if (size == 0) {
 printk(%s: domain %p mpaddr 0x%lx size = 0x%lx\n,
__func__, d, mpaddr, size);
+size = PAGE_SIZE;
 }
 assign_domain_same_page(d, mpaddr, size);
 return mpaddr;


-- 
yamahata

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


Re: [Xen-ia64-devel] [PATCH][RFC][TAKE4] the P2M/VP patches

2006-04-11 Thread Tristan Gingold
Le Mardi 11 Avril 2006 11:23, Isaku Yamahata a écrit :
 On Tue, Apr 11, 2006 at 09:29:18AM +0100, Tristan Gingold wrote:
  Le Mardi 11 Avril 2006 03:52, Isaku Yamahata a écrit :
   Thank you for testing.
  
   On Mon, Apr 10, 2006 at 03:52:52PM +0100, Tristan Gingold wrote:
Le Vendredi 07 Avril 2006 06:16, Isaku Yamahata a écrit :
 Hello.
 I attached the P2M/VP model patches take 4 for the change set
 9492:2133fb78dba3cf6b6b88d1566fc5cc9de3039f43.
 Please comments/request/review.
   
I am testing this on my FAME-C.
Currently it doesn't work: this is an infinite loop in an mpt driver.
I will check how it does handle DMA.
  
   It seems wrong dma address is used.
   My test environment is Tiger-2. Mpt driver is used.
   I encountered similar case before, but I don't remember clearly.
 
  In fact I think it is due to the bug below.

 It seems that the IOSAPIC area is not mapped to dom0.
After more reading, there is an inconsistency between memmap and MADT on our 
system!

Thanks,
Tristan.



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


[Xen-ia64-devel] VTi: break handling

2006-04-11 Thread Tristan Gingold
Hi,

in vmx_ivt.S:

// 0x2c00 Entry 11 (size 64 bundles) Break instruction (33)
ENTRY(vmx_break_fault)
VMX_DBG_FAULT(11)
mov r31=pr
mov r19=11
mov r30=cr.iim
movl r29=0x1100
;;
cmp.eq p6,p7=r30,r0
(p6) br.sptk vmx_fault_11
;;
cmp.eq  p6,p7=r29,r30
(p6) br.dptk.few vmx_hypercall_dispatch
(p7) br.sptk.many vmx_dispatch_break_fault
;;
VMX_FAULT(11);
END(vmx_break_fault)

Is the '' section debug code ? I fear a bug here.

Thank you for comments,
Tristan.



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


RE: [Xen-ia64-devel] [PATCH] Cleanup to irq.c

2006-04-11 Thread Tian, Kevin
From: Tristan Gingold [mailto:[EMAIL PROTECTED]
Sent: 2006年4月11日 19:33
Le Mardi 11 Avril 2006 13:15, Tian, Kevin a écrit :
 This patch is a big cleanup to irq.c, with only real
 necessary interfaces kept now. The irq subsystem of
 xen is very simple since most external devices are
 controlled by dom0. Also especially there's no need
 to keep CONFIG_XEN everywhere, since this file is
 already out of sync of linux version for a long time.
 Actually xen defines irq related structures differently
 and it's worthy of creating a xen specific version here.
Good cleanup.
Maybe we could also merge irq.c and xenirq.c ?

Here it comes. Alex, please apply this one on top of previous 
clean_irq.patch.

Remove xenirq.c.

Signed-off-by Kevin Tian [EMAIL PROTECTED]

Thanks,
Kevin


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

Re: [Xen-ia64-devel] VTi: break handling

2006-04-11 Thread Tristan Gingold
Le Mardi 11 Avril 2006 13:41, Xu, Anthony a écrit :
 From: [EMAIL PROTECTED]

 [mailto:[EMAIL PROTECTED] On Behalf Of Tristan
 Gingold
 Sent: 2006?4?11? 19:04
 To: xen-ia64-devel@lists.xensource.com
 Subject: [Xen-ia64-devel] VTi: break handling
 
 Hi,
 
 in vmx_ivt.S:
 
 // 0x2c00 Entry 11 (size 64 bundles) Break instruction (33)
 ENTRY(vmx_break_fault)
 VMX_DBG_FAULT(11)
  mov r31=pr
 mov r19=11
 mov r30=cr.iim
 movl r29=0x1100
 ;;
 
 cmp.eq p6,p7=r30,r0
 (p6) br.sptk vmx_fault_11
 
 ;;
 cmp.eq  p6,p7=r29,r30
 (p6) br.dptk.few vmx_hypercall_dispatch
 (p7) br.sptk.many vmx_dispatch_break_fault
 ;;
 VMX_FAULT(11);
 END(vmx_break_fault)
 
 Is the '' section debug code ? I fear a bug here.

 It was used for debug.
 Break 0, its opcode is 0,
 Usually break 0 is not used by linux kernel and application.
 When break 0 is executed, it usually means some thing wrong.
Sure, but if an application does break 0, it locks up Xen!
Maybe we should add a check.

Tristan.



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


RE: [Xen-ia64-devel] [PATCH] Add event callback for xen/ia64

2006-04-11 Thread Alex Williamson
On Tue, 2006-04-11 at 21:59 +0800, Tian, Kevin wrote:
 From: Tristan Gingold [mailto:[EMAIL PROTECTED]
 * Performances ?
 
 There should be no obvious difference. The importance here
 is that this patch is only an intermediate step toward final
 solution. It makes more sense to measure performance at the
 last step when all pirq/virq/ipi are bound to this path. Finally it
 should be better. Also please note this is necessary feature 
 requirement to reuse common architecture and thus support 
 more advanced features easily just like Isaku's p2m effort. The 
 performance can be always tuned on top of this path gradually.

Kevin,

   It might be a good idea to try this with Isaku's current set of
patches.  I saw ~10x performance decrease in network performance from
domU with this patch applied (10MB/s+ to 1MB/s).  Thanks,

Alex

-- 
Alex Williamson HP Linux  Open Source Lab


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


RE: [Xen-ia64-devel] [PATCH][RFC][TAKE4] the P2M/VP patches

2006-04-11 Thread Magenheimer, Dan (HP Labs Fort Collins)
I was also able to get networking working with Isaku's patches
and Alex's.  Hooray!  For the last eight months, I have gulped
as I told people that Xen/ia64 doesn't support networking.
No longer!

Domo arigato, Yamahata-san!  Free beer (or sake) for you at
the next summit!

Dan 

 -Original Message-
 From: [EMAIL PROTECTED] 
 [mailto:[EMAIL PROTECTED] On Behalf 
 Of Williamson, Alex (Linux Kernel Dev)
 Sent: Monday, April 10, 2006 2:08 PM
 To: Isaku Yamahata
 Cc: xen-ia64-devel@lists.xensource.com
 Subject: Re: [Xen-ia64-devel] [PATCH][RFC][TAKE4] the P2M/VP patches
 
 On Mon, 2006-04-10 at 10:51 -0600, Alex Williamson wrote:
  On Fri, 2006-04-07 at 13:16 +0900, Isaku Yamahata wrote:
  
   9512:f5d0a531cb58_dom0_vp_model_xen_part.patch
  
  
 I'm having trouble with the legacy VGA memory descriptor 
 section of
  this patch.
 
I managed to get my system booting with the patch below 
 (2-way, w/ 
 1GB RAM).  Networking works, yeah!  The main changes here are that I
 removed the fabricated MDT entries describing the legacy VGA space,
 added EFI_ACPI_RECLAIM_MEMORY to the memory types mapped, and 
 sorted the
 resulting memory descriptor table.  I also included the hack to avoid
 calling assign_domain_mmio_page() for large MMIO ranges.  Minor nit,
 we're still subtracting IA64_GRANULE_SIZE from the MDT entry for
 conventional memory, but we're not adding in the granule at the end of
 memory like we used to.
 
I also had to make a change to the -xen kernel which is not shown
 here.  The sal_cache_flush_check() appears to be causing us 
 some trouble
 again with the P2M/VP patches (MCA'd on my system), so I commented out
 the call to in in arich/ia64/kernel/sal.c:ia64_sal_init().  Thanks,
 
   Alex
 
 -- 
 Alex Williamson HP Linux  Open Source Lab
 
 --- xen/xen/arch/ia64/xen/dom_fw.c2006-04-10 
 13:17:31.0 -0600
 +++ xen/xen/arch/ia64/xen/dom_fw.c2006-04-10 
 13:15:21.0 -0600
 @@ -10,6 +10,7 @@
  #include asm/pgalloc.h
  
  #include linux/efi.h
 +#include linux/sort.h
  #include asm/io.h
  #include asm/pal.h
  #include asm/sal.h
 @@ -600,9 +601,14 @@
  u64 end = start + (md-num_pages  EFI_PAGE_SHIFT);
  
  if (md-type == EFI_MEMORY_MAPPED_IO ||
 -md-type == EFI_MEMORY_MAPPED_IO_PORT_SPACE)
 +md-type == EFI_MEMORY_MAPPED_IO_PORT_SPACE) {
 +
 +if (md-type == EFI_MEMORY_MAPPED_IO 
 +((md-num_pages  EFI_PAGE_SHIFT)  0x1UL))
 +return 0;
 +
  paddr = assign_domain_mmio_page(d, start, end - start);
 -else
 +} else
  paddr = assign_domain_mach_page(d, start, end - start);
  #else
  paddr = md-phys_addr;
 @@ -610,6 +616,7 @@
  
  BUG_ON(md-type != EFI_RUNTIME_SERVICES_CODE 
 md-type != EFI_RUNTIME_SERVICES_DATA 
 +   md-type != EFI_ACPI_RECLAIM_MEMORY 
 md-type != EFI_MEMORY_MAPPED_IO 
 md-type != EFI_MEMORY_MAPPED_IO_PORT_SPACE);
  
 @@ -626,6 +633,18 @@
  return 0;
  }
  
 +static int
 +efi_mdt_cmp(const void *a, const void *b)
 +{
 + const efi_memory_desc_t *x = a, *y = b;
 +
 + if (x-phys_addr  y-phys_addr)
 + return 1;
 + if (x-phys_addr  y-phys_addr)
 + return -1;
 + return 0;
 +}
 +
  static struct ia64_boot_param *
  dom_fw_init (struct domain *d, const char *args, int arglen, 
 char *fw_mem, int fw_mem_size)
  {
 @@ -834,6 +853,7 @@
   /* simulate 1MB free memory at physical address zero */
   
 MAKE_MD(EFI_LOADER_DATA,EFI_MEMORY_WB,0*MB,1*MB, 0);//XXX
  #else
 +#if 0
  //XXX dom0 should use VGA?
  #define VGA_RAM_START   0xb8000
  #define VGA_RAM_END 0xc
 @@ -852,6 +872,7 @@
  pcolour_map_end = pcolour_map + VGA_CMAPSZ * 8;
  MAKE_MD(EFI_LOADER_DATA, EFI_MEMORY_WB, 0 * MB, 
 pvga_start, 1);
  MAKE_MD(EFI_LOADER_DATA, EFI_MEMORY_WB, 
 pcolour_map_end, 1 * MB, 1);
 +#endif /* 0 */
  #endif
   /* hypercall patches live here, masquerade as 
 reserved PAL memory */
   
 MAKE_MD(EFI_PAL_CODE,EFI_MEMORY_WB,HYPERCALL_START,HYPERCALL_END, 0);
 @@ -890,6 +911,8 @@
  // for ACPI table.
  efi_memmap_walk_type(EFI_RUNTIME_SERVICES_DATA,
   dom_fw_dom0_passthrough, arg);
 +efi_memmap_walk_type(EFI_ACPI_RECLAIM_MEMORY,
 + dom_fw_dom0_passthrough, arg);
  efi_memmap_walk_type(EFI_MEMORY_MAPPED_IO,
   dom_fw_dom0_passthrough, arg);
  efi_memmap_walk_type(EFI_MEMORY_MAPPED_IO_PORT_SPACE,
 @@ -902,8 +925,10 @@
  #ifndef CONFIG_XEN_IA64_DOM0_VP
   MAKE_MD(EFI_LOADER_DATA,EFI_MEMORY_WB,0*MB,1*MB, 1);
  #else
 +#if 0
  MAKE_MD(EFI_LOADER_DATA,EFI_MEMORY_WB, 0 * MB, 
 VGA_RAM_START, 1);
  MAKE_MD(EFI_LOADER_DATA,EFI_MEMORY_WB, 
 VGA_COLOURMAP_END, 1*MB, 1);
 +#endif /* 0 */
  #endif
   

RE: [Xen-ia64-devel] [PATCH] Cleanup to irq.c

2006-04-11 Thread Magenheimer, Dan (HP Labs Fort Collins)
  BTW, one confusing point here is serial_input_init() which
  hard coded a vector (0x30), which happens to conflict with
  eth0 vector on my tiger box. What's the purpose of this
  registration? Actually the registration here is bogus which
  never severs the purpose. Before my patch, previous logic
  simply injects that vector (0x30) into guest since it's not
  timer/ipi. Even xen wants to handle this vector, the
  hw_interrupt_type assocated with this vector is no_irq_type
  which is also bogus. Since it doesn't work as the code wants,
  I simply disabled the serial_input_init to avoid unnecessary
  warnings like  Unexpected irq vector 0x30 on cpu 0.

 Never understood its purpose!
 
 Tristan.

Hardcoding 0x30 for keyboard input is very old code that goes
back to vBlades.   It's possible that it is necessary for
running Xen on ski... I'm not sure.

Dan

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


RE: [Xen-ia64-devel] [PATCH] Add event callback for xen/ia64

2006-04-11 Thread Tian, Kevin
From: Alex Williamson [mailto:[EMAIL PROTECTED]
Sent: 2006年4月12日 2:56

On Tue, 2006-04-11 at 21:59 +0800, Tian, Kevin wrote:
 From: Tristan Gingold [mailto:[EMAIL PROTECTED]
 * Performances ?

 There should be no obvious difference. The importance here
 is that this patch is only an intermediate step toward final
 solution. It makes more sense to measure performance at the
 last step when all pirq/virq/ipi are bound to this path. Finally it
 should be better. Also please note this is necessary feature
 requirement to reuse common architecture and thus support
 more advanced features easily just like Isaku's p2m effort. The
 performance can be always tuned on top of this path gradually.

Kevin,

   It might be a good idea to try this with Isaku's current set of
patches.  I saw ~10x performance decrease in network performance
from
domU with this patch applied (10MB/s+ to 1MB/s).  Thanks,

   Alex


Hi, Alex,
Could you provide something about your test environment, 
and then I can try identical steps as yours to see what's the 
bottleneck? For example:
- dom0 memory size
- domU memory size
- How do you measure the network throughput?

BTW, Isaku's patch is upon Rev 9492, and then I'll also 
measure upon that version.

Thanks,
Kevin

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


RE: [Xen-ia64-devel] [PATCH] Add event callback for xen/ia64

2006-04-11 Thread Alex Williamson
On Wed, 2006-04-12 at 10:18 +0800, Tian, Kevin wrote:
 Hi, Alex,
   Could you provide something about your test environment, 
 and then I can try identical steps as yours to see what's the 
 bottleneck? For example:
   - dom0 memory size
   - domU memory size
   - How do you measure the network throughput?
 
   BTW, Isaku's patch is upon Rev 9492, and then I'll also 
 measure upon that version.

Hi Kevin,

   My dom0 memory is the default 512MB, domU is 1GB (7GB in the system,
2-way w/ default vcpu to phys cpu mappings).  My throughput test is
simply pulling a ~300MB file from a local server using wget.  Something
like:

wget -O /dev/null http://local.server/big_file

Wget provides a progress report and average throughput at the end of the
transfer.  Let me know if you get different results, I tried several
times and seemed to get consistently degraded performance with the event
callback patch.  Thanks,

Alex

-- 
Alex Williamson HP Linux  Open Source Lab


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


RE: [Xen-ia64-devel] [PATCH] Add event callback for xen/ia64

2006-04-11 Thread Tian, Kevin
From: Alex Williamson [mailto:[EMAIL PROTECTED]
Sent: 2006年4月12日 10:40
On Wed, 2006-04-12 at 10:18 +0800, Tian, Kevin wrote:
 Hi, Alex,
  Could you provide something about your test environment,
 and then I can try identical steps as yours to see what's the
 bottleneck? For example:
  - dom0 memory size
  - domU memory size
  - How do you measure the network throughput?

  BTW, Isaku's patch is upon Rev 9492, and then I'll also
 measure upon that version.

Hi Kevin,

   My dom0 memory is the default 512MB, domU is 1GB (7GB in the
system,
2-way w/ default vcpu to phys cpu mappings).  My throughput test is
simply pulling a ~300MB file from a local server using wget.  Something
like:

wget -O /dev/null http://local.server/big_file

Wget provides a progress report and average throughput at the end of
the
transfer.  Let me know if you get different results, I tried several
times and seemed to get consistently degraded performance with the
event
callback patch.  Thanks,


OK, thanks for info. I'm currently building the tree and will test soon.
BTW, do you have any extra steps beside normal flow to setup the 
network for domU?

Another side question I'm curious is, how about the bandwidth of 
your physical NIC? Is 10M an acceptable data to you regarding 
Isaku's p2m patch, which may reveal us the space for improvement
later? :-)

Thanks,
Kevin

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


RE: [Xen-ia64-devel] [PATCH] Add event callback for xen/ia64

2006-04-11 Thread Alex Williamson
On Wed, 2006-04-12 at 10:49 +0800, Tian, Kevin wrote:

 OK, thanks for info. I'm currently building the tree and will test soon.
 BTW, do you have any extra steps beside normal flow to setup the 
 network for domU?

   For me it was simply commenting out the vif = [ '' ] line in my
config file.  Then when I run xend start (it takes longer) and sets up a
bridge and a few other network device.  domU boots up, sees an eth0
device and it's configurable via dhcp.

 Another side question I'm curious is, how about the bandwidth of 
 your physical NIC? Is 10M an acceptable data to you regarding 
 Isaku's p2m patch, which may reveal us the space for improvement
 later? :-)

   The testing I've done has not been 100% scientific.  I'm not on an
isolated network and the server I'm pulling from is not dedicated for
this testing.  I'm currently seeing ~95MB/s for the same test from dom0
while domU is still getting ~10MB/s.  The bridge driver in dom0 is
taking a some unaligned accesses, which may or may not be a significant
factor for throughput.  It's possible I'm only seeing a few of them
because of the printk rate limited in the unaligned code.  Thanks,

Alex

-- 
Alex Williamson HP Linux  Open Source Lab


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


RE: [Xen-ia64-devel] [PATCH] Add event callback for xen/ia64

2006-04-11 Thread Tian, Kevin
Bad news is that p2m patch doesn't work for me yet.

Dom0: keyboard doesn't work with INIT: Id S1 respawning too fast: disabled 
for 5 minute shown there. But network can work

DomU: After xend start and xm create, domU hangs at similar place reported by 
Tristan. Seems mmio is not mapped correctly in p2m table... 

Did I miss anything else aside from the patch sets by Isaku?

Thanks,
Kevin

(XEN) 
xen-event-channel using irq 233
(XEN) 
lookup_domain_mpa: bad mpa 0xfee0 ( 0x2000)
(XEN) lookup_domain_mpa: d 0xf410e1b8 id 1 current 0xf42f8000 
id 0
(XEN) 
(XEN) Call Trace:
(XEN)  [f40818d0] show_stack+0x80/0x90
(XEN) sp=f42ffc00 bsp=f42f8dc8
(XEN)  [f40487a0] lookup_domain_mpa+0x180/0x200
(XEN) sp=f42ffdd0 bsp=f42f8da0
(XEN)  [f405a060] translate_domain_pte+0xe0/0x170
(XEN) sp=f42ffdd0 bsp=f42f8d68
(XEN)  [f40624c0] vcpu_itc_d+0xb0/0x1b0
(XEN) sp=f42ffdd0 bsp=f42f8d28
(XEN)  [f4057f80] ia64_hyperprivop+0x190/0x600
(XEN) sp=f42ffde0 bsp=f42f8cf8
(XEN)  [f405bbc0] ia64_handle_break+0x150/0x280
(XEN) sp=f42ffe00 bsp=f42f8cb8
(XEN)  [f4080500] ia64_leave_kernel+0x0/0x310
(XEN) sp=f42ffe00 bsp=f42f8cb8
(XEN)  [a0019090] ???
(XEN) sp=f430 bsp=f42f8c98
(XEN)  [a00100053b40] ???
(XEN) sp=f43

From: Alex Williamson [mailto:[EMAIL PROTECTED]
Sent: 2006年4月12日 11:15

On Wed, 2006-04-12 at 10:49 +0800, Tian, Kevin wrote:

 OK, thanks for info. I'm currently building the tree and will test soon.
 BTW, do you have any extra steps beside normal flow to setup the
 network for domU?

   For me it was simply commenting out the vif = [ '' ] line in my
config file.  Then when I run xend start (it takes longer) and sets up a
bridge and a few other network device.  domU boots up, sees an eth0
device and it's configurable via dhcp.

 Another side question I'm curious is, how about the bandwidth of
 your physical NIC? Is 10M an acceptable data to you regarding
 Isaku's p2m patch, which may reveal us the space for improvement
 later? :-)

   The testing I've done has not been 100% scientific.  I'm not on an
isolated network and the server I'm pulling from is not dedicated for
this testing.  I'm currently seeing ~95MB/s for the same test from dom0
while domU is still getting ~10MB/s.  The bridge driver in dom0 is
taking a some unaligned accesses, which may or may not be a
significant
factor for throughput.  It's possible I'm only seeing a few of them
because of the printk rate limited in the unaligned code.  Thanks,

   Alex

--
Alex Williamson HP Linux  Open
Source Lab

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


RE: [Xen-ia64-devel] [PATCH] Add event callback for xen/ia64

2006-04-11 Thread Alex Williamson
On Wed, 2006-04-12 at 11:22 +0800, Tian, Kevin wrote:
 Bad news is that p2m patch doesn't work for me yet.
 
 Dom0: keyboard doesn't work with INIT: Id S1 respawning too fast:
 disabled for 5 minute shown there. But network can work
 
 DomU: After xend start and xm create, domU hangs at similar place
 reported by Tristan. Seems mmio is not mapped correctly in p2m
 table... 
 
 Did I miss anything else aside from the patch sets by Isaku?

   I'm using Isaku's patch set plus the patch I sent in the same thread
that makes it work on zx1 systems.  That patch may or may not help you.
One important thing that I think it does is sort the MDT created for
dom0.  I also had to add EFI_ACPI_RECLAIM_MEMORY to the MDT entry types
that get added for dom0.  For me this included the area where the ACPI
tables live.  You may want to look at your MDT and see if there's
another type you can add that will cover 0xfee0.  BTW, the 8250
serial driver is disabled with the config files provided in Isaku's
patches, so the serial console is only good for output with them.
Thanks,

Alex

-- 
Alex Williamson HP Linux  Open Source Lab


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


RE: [Xen-ia64-devel] [PATCH] Add event callback for xen/ia64

2006-04-11 Thread Tian, Kevin
From: Alex Williamson [mailto:[EMAIL PROTECTED]
Sent: 2006年4月12日 11:30

On Wed, 2006-04-12 at 11:22 +0800, Tian, Kevin wrote:
 Bad news is that p2m patch doesn't work for me yet.

 Dom0: keyboard doesn't work with INIT: Id S1 respawning too fast:
 disabled for 5 minute shown there. But network can work

 DomU: After xend start and xm create, domU hangs at similar place
 reported by Tristan. Seems mmio is not mapped correctly in p2m
 table...

 Did I miss anything else aside from the patch sets by Isaku?

   I'm using Isaku's patch set plus the patch I sent in the same thread
that makes it work on zx1 systems.  That patch may or may not help
you.

I'll give it a try.

One important thing that I think it does is sort the MDT created for
dom0.  I also had to add EFI_ACPI_RECLAIM_MEMORY to the MDT
entry types
that get added for dom0.  For me this included the area where the ACPI
tables live.  You may want to look at your MDT and see if there's
another type you can add that will cover 0xfee0.  BTW, the 8250

OK

serial driver is disabled with the config files provided in Isaku's
patches, so the serial console is only good for output with them.
Thanks,

See it now. So that's not issue.

BTW, when you observed domU network degradation, how about
the network of dom0? If dom0 is not affected, it's obvious that the
whole event path is placed lower priority than whole interrupt path,
and thus affects virtual drivers. If that's the case, I'll check whether
some logic can be added to match original flow.

Thanks,
Kevin

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


RE: [Xen-ia64-devel] [PATCH] Add event callback for xen/ia64

2006-04-11 Thread Alex Williamson
On Wed, 2006-04-12 at 12:00 +0800, Tian, Kevin wrote:

 BTW, when you observed domU network degradation, how about
 the network of dom0? If dom0 is not affected, it's obvious that the
 whole event path is placed lower priority than whole interrupt path,
 and thus affects virtual drivers. If that's the case, I'll check whether
 some logic can be added to match original flow.

   It appears dom0 is not affected and has good throughput.  Here's an
interesting observation though; if I wget from dom0 and domU at the same
time, dom0 is a little slower (~82MB/s), but the domU throughput
actually increases while the wget in dom0 is running.  According to
nload, domU's throughput nearly doubles for the brief time dom0's wget
is running.  Even wget'ing a different file off the server with dom0
causes domUs wget to speed up.  Perhaps an indication that your priority
hunch is correct?  Thanks,

Alex

-- 
Alex Williamson HP Linux  Open Source Lab


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


RE: [Xen-ia64-devel] [PATCH][RFC][TAKE4] the P2M/VP patches

2006-04-11 Thread Tian, Kevin
From: Isaku Yamahata
Sent: 2006年4月11日 17:23

It seems that the IOSAPIC area is not mapped to dom0.
Does the following patch make difference?
Could you send the all log?

Hi, Isaku,
If the 0xfae is the address of one IOSAPIC area, why
doesn't it get mapped at dom_fw_init? From your patch, dom_fw_dom0_passthrough 
should already construct mapping
for entries exported to dom0. So instead the problematic point 
may be like Alex's case, where the type of 0xfae area is a
new one out of the comparison in current code. Maybe Tristan
can confirm this point.

In my test, domU can boot however with two stack dumps.
One for 0xfee, and another for 0xc019064 (0x60). Previous
one is related to IPI which will disappear when guest SMP is ready.
The later one shouldn't be there since domU shouldn't have access
to legacy I/O in current model (Later may change for driver domain). That's an 
access to keyboard port possibly because now xen0/xenU
is compiled as one image with more drivers added. Maybe it's better
for us to map all 64M mmio area of domU to a dummy page at current
stage, to remove warnings and walk around some native drivers
within domU. Later when driver domain is added, we can map specific
mmio page to machine mmio range per configuration.

Thanks,
Kevin


diff -r e2003842daeb xen/arch/ia64/xen/domain.c
--- a/xen/arch/ia64/xen/domain.cMon Apr 10 15:08:03 2006
+0900
+++ b/xen/arch/ia64/xen/domain.cTue Apr 11 18:21:34 2006
+0900
@@ -752,6 +752,7 @@ assign_domain_mmio_page(struct domain *d
 if (size == 0) {
 printk(%s: domain %p mpaddr 0x%lx size = 0x%lx\n,
__func__, d, mpaddr, size);
+size = PAGE_SIZE;
 }
 assign_domain_same_page(d, mpaddr, size);
 return mpaddr;


--
yamahata

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

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


RE: [Xen-ia64-devel] [PATCH] Add event callback for xen/ia64

2006-04-11 Thread Tian, Kevin
From: Alex Williamson [mailto:[EMAIL PROTECTED]
Sent: 2006年4月12日 13:24
It appears dom0 is not affected and has good throughput.  Here's
an
 interesting observation though; if I wget from dom0 and domU at the
same
 time, dom0 is a little slower (~82MB/s), but the domU throughput
 actually increases while the wget in dom0 is running.  According to
 nload, domU's throughput nearly doubles for the brief time dom0's
wget
 is running.  Even wget'ing a different file off the server with dom0
 causes domUs wget to speed up.  Perhaps an indication that your
priority
 hunch is correct?  Thanks,

   In contrast, w/o the event channel patch, domU is unaffected by a
concurrent wget in dom0 (fairly constant ~10.5MB/s).  However, dom0
only
runs at around 9MB/s while domU's transfer is running.

   Alex


This may be explained as following:

Before apply my patch, all the inter-domain events are bound a
vector 233 which is higher than any external device interrupts. 
In this case, vnif request is always handled immediately without 
delay however real nic interrupt is responded with lower priority. 
By this way, the vnif path is high satisfied, however the normal
eth0 driver of dom0 is affected a lot by virtual driver(vbd/vnif). 
Thus dom0's network output is decreased in this way

After applying my patch, all the inter-domain events are placed 
lower than all interrupt vectors. So in contrast, the real nic traffic 
can be handled immediately while requests from virtual drivers 
are delayed/pended a lot by any interrtups. So domU network 
output decreased.

Actually this is why event channel mechanism is proposed by 
xen/x86 and we're now approaching ia64 to this direction too. 
Current patch I sent out is only an intermediate step which have 
two separate paths for events and interrupts. Finally there'll be 
only one event path and at that time we can do more fine-grained 
control to the priority per event.

So do you think whether this patch is available for check-in now? 
We can do more accurate tuning after the whole model is ready 
and p2m patch is merged in.

Anyway, I'm still making some measurement now. I may provide 
a version matching current behavior if you like, for example 
increasing event path priority, which however may not worth doing
since it's only temporary solution. :-)

Thanks,
Kevin

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