Bug 212540 - patches from xen-ia64-unstable
patches from xen-ia64-unstable
Status: CLOSED DUPLICATE of bug 210637
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: kernel-xen (Show other bugs)
5.0
ia64 Linux
medium Severity medium
: ---
: ---
Assigned To: Aron Griffis
:
Depends On: 210637
Blocks: 208635 212541
  Show dependency treegraph
 
Reported: 2006-10-27 06:57 EDT by Stephen Tweedie
Modified: 2007-11-30 17:07 EST (History)
6 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2006-11-09 15:07:00 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Stephen Tweedie 2006-10-27 06:57:17 EDT
+++ This bug was initially created as a clone of Bug #210637 +++

Description of problem:
There are some important patches queued at
http://xenbits.xensource.com/ext/xen-ia64-unstable.hg to fix issues in xen on
ia64.  Unfortunately these patches won't be in 3.0.3 so I'm requesting they be
included directly in FC6 and RHEL5.  Probably the easiest method would be for
Juan to pull them into his tree (from which the xen patch is generated) instead
of including them in the spec file.

Here are the changesets listed by category.  If you'd prefer patches instead of
a pointer to the tree, I can provide them.

xencomm:
11702:5c97ef4c7147 [IA64] Use xencomm for hypercalls.
11704:c3f71a4ed653 [IA64] Implement fast hypercall for physdevop eoi.
11721:1ec09a35d13d [IA64] add GNTTABOP_copy to xencommize_grant_table_op
11722:3f3a818d56f5 [IA64] revert xen-ia64-unstable.hg cset 11039
11723:49bf2381e009 [IA64] xencomm_privcmd_sched_op
11724:4786a0b3d6c5 [IA64] remove getmeminfo.nr_pages trick from xencomm

p2m:
11726:0bb486157ff5 [IA64] expose p2m table. xen side part.
11727:d1d9f3f6ca09 [IA64] p2m exposure. linux side part.
11728:c1a8785f0eb1 [IA64] p2m exposure test module
11729:3e9fcbee3c09 [IA64] fix sparse tree build with p2m exposure disabled
11730:77f554ef7484 [IA64] update buildconfigs for p2m exposure

bugfix:
11457:36a3c92cdf8f [IA64] fix a vhpi bug
11459:997bd5fcf307 [IA64] Fix a bug in set_rse_reg
11460:da942e577e5e [IA64] Instruction emulation patch
11606:1824ee11fc53 [IA64] pickled code fix
11609:7b250cf49e50 [IA64] create page table for virtual frame table
11610:9da2d9b48ff8 [IA64] Complete fpswa handler retry mechanism
11636:3470d9cd27e5 [IA64] Modify p2m converter to avoid hypervisor crash
11637:f6007621cc0c [IA64] VTi TLB miss fix
11640:53ec7e3d3a8a [IA64] Fix a VTi physical mode bug
11705:6268aa7b9177 [IA64] Bind event channels of VT-i domain to vcpu 0
11706:64290e7622d2 [IA64] Prevent domains to itc/ptd in shared_info_va.
11712:6e7cc23ab18c [IA64] backport check_sal_cache_flush()

optimization:
11458:a34659228c24 [IA64] Avoid iterative VHPT purges
11607:5292d57b0771 [IA64] Accelerate some virtualization faults
11703:bacae4057790 [IA64] Renumber dom0vp hypercalls and reformat comments.
11707:a3a079af0e92 [IA64] avoid long time interrupt masking.
11708:3f28ffed6fff [IA64] add perfcounter for vTLB flush.
11709:ce9816c14040 [IA64] add perfcounter to mm.c
11710:0c7e58ba4fbd [IA64] add perfcounter of dom0vp_phystomach and dom0vp_machtophys
11742:61504e80defa [IA64] __read_mostly
11743:6fae3a36f50b [IA64] added __read_mostly to some variables
11745:5176c3ea3293 [IA64] per vcpu vhpt

cleanup:
11608:06bec182a66e [IA64] warning fix
11638:92bd25c46f27 [IA64] do not export XSI_BASE, use set_shared_info_va
11641:914c44d10c8d [IA64] warning fix
11711:5727c3c4070e [IA64] don't export GPFN_xxx flags.
11725:7cfc7cb7cea7 [IA64] Clean up extern declarations in arch/ia64/xen/domain.c
11740:70d5d92066e5 [IA64] add a warning message when ioremap hypercall fails
11741:e9c7f965e70a [IA64] make efi_print()'s output more readable
11744:4eb6e2ec1b39 [IA64] Remove test of dead CONFIG_XEN_IA64_DOM0_NON_VP 

relocation:
11639:a947ca5d4731 [IA64] initial xen relocation support

-- Additional comment from agriffis@redhat.com on 2006-10-13 17:14 EST --
Regarding the safeness of pulling in these changesets, note these are all
ia64-specific.  Here is the list of files affected.  

Kernel patches:
$ filterdiff --strip=1 linux-2.6-xen-ia64-*.patch | diffstat
 arch/ia64/Kconfig                 |   14 
 arch/ia64/kernel/setup.c          |    3 
 arch/ia64/xen/Makefile            |    3 
 arch/ia64/xen/hypervisor.c        |  363 +++++++++++++++++-----
 arch/ia64/xen/util.c              |    2 
 arch/ia64/xen/xcom_hcall.c        |  469 +++++++++++++++++++++++++++++
 arch/ia64/xen/xcom_privcmd.c      |  608 +++++++++++++++++++++++++++++++++++++-
 arch/ia64/xen/xencomm.c           |  244 +++++++++++++++
 arch/ia64/xen/xensetup.S          |   21 -
 drivers/xen/privcmd/privcmd.c     |   13 
 include/asm-ia64/hypercall.h      |  288 +++++++++---------
 include/asm-ia64/hypervisor.h     |   11 
 include/asm-ia64/maddr.h          |   15 
 include/asm-ia64/xen/privop.h     |    3 
 include/asm-ia64/xen/xcom_hcall.h |   74 ++++
 include/asm-ia64/xen/xencomm.h    |   57 +++
 include/xen/interface/arch-ia64.h |   80 ++---
 lib/Makefile                      |    2 
 18 files changed, 1961 insertions(+), 309 deletions(-)

Hypervisor patches:
$ filterdiff --strip=1 xen-ia64-*.patch | diffstat
 arch/ia64/Rules.mk                           |    8 
 arch/ia64/asm-offsets.c                      |    2 
 arch/ia64/linux-xen/sal.c                    |   75 +++
 arch/ia64/linux-xen/unaligned.c              |   20 -
 arch/ia64/tools/p2m_expose/Makefile          |   28 +
 arch/ia64/tools/p2m_expose/README.p2m_expose |   12 
 arch/ia64/tools/p2m_expose/expose_p2m.c      |  185 +++++++++
 arch/ia64/vmx/Makefile                       |    1 
 arch/ia64/vmx/mmio.c                         |   12 
 arch/ia64/vmx/optvfault.S                    |  518 +++++++++++++++++++++++++++
 arch/ia64/vmx/vlsapic.c                      |    6 
 arch/ia64/vmx/vmmu.c                         |   23 -
 arch/ia64/vmx/vmx_entry.S                    |    2 
 arch/ia64/vmx/vmx_init.c                     |    3 
 arch/ia64/vmx/vmx_interrupt.c                |   19 
 arch/ia64/vmx/vmx_ivt.S                      |    8 
 arch/ia64/vmx/vmx_phy_mode.c                 |   53 --
 arch/ia64/vmx/vmx_process.c                  |  124 +++---
 arch/ia64/vmx/vmx_vcpu.c                     |   32 +
 arch/ia64/xen/Makefile                       |    2 
 arch/ia64/xen/dom0_ops.c                     |    5 
 arch/ia64/xen/domain.c                       |   59 ++-
 arch/ia64/xen/faults.c                       |    6 
 arch/ia64/xen/fw_emul.c                      |    2 
 arch/ia64/xen/hypercall.c                    |   93 +---
 arch/ia64/xen/mm.c                           |  184 +++++++++
 arch/ia64/xen/regionreg.c                    |    2 
 arch/ia64/xen/vcpu.c                         |   36 -
 arch/ia64/xen/vhpt.c                         |  166 ++++++--
 arch/ia64/xen/xen.lds.S                      |    3 
 arch/ia64/xen/xencomm.c                      |  380 +++++++++++++++++++
 arch/ia64/xen/xenmem.c                       |   95 ++--
 arch/ia64/xen/xenpatch.c                     |  124 ++++++
 arch/ia64/xen/xensetup.c                     |   28 -
 arch/ia64/xen/xentime.c                      |    2 
 include/asm-ia64/dom_fw.h                    |    7 
 include/asm-ia64/domain.h                    |   25 -
 include/asm-ia64/guest_access.h              |  152 ++++---
 include/asm-ia64/ia64_int.h                  |    4 
 include/asm-ia64/linux-xen/asm/cache.h       |    2 
 include/asm-ia64/linux-xen/asm/pgtable.h     |   14 
 include/asm-ia64/linux-xen/asm/processor.h   |   18 
 include/asm-ia64/linux-xen/asm/system.h      |    1 
 include/asm-ia64/linux/asm/sal.h             |   10 
 include/asm-ia64/mm.h                        |   19 
 include/asm-ia64/perfc_defn.h                |   27 +
 include/asm-ia64/uaccess.h                   |   18 
 include/asm-ia64/vhpt.h                      |   37 +
 include/asm-ia64/vmx.h                       |    1 
 include/asm-ia64/vmx_vcpu.h                  |    4 
 include/asm-ia64/xenkregs.h                  |    3 
 include/public/arch-ia64.h                   |   80 +---
 52 files changed, 2229 insertions(+), 511 deletions(-)

Note that only two files aren't in an ia64-specific path.  Here is that diff:

$ filterdiff --strip=1 -p1 -i 'lib/Makefile' -i 'drivers/xen/privcmd/privcmd.c'
*.patch
--- lib/Makefile        Sun Oct 08 18:30:31 2006 -0600
+++ lib/Makefile        Sun Oct 08 18:35:17 2006 -0600
@@ -45,9 +45,7 @@ obj-$(CONFIG_TEXTSEARCH_FSM) += ts_fsm.o
 obj-$(CONFIG_TEXTSEARCH_FSM) += ts_fsm.o
 
 obj-$(CONFIG_SWIOTLB) += swiotlb.o
-ifneq ($(CONFIG_XEN_IA64_DOM0_NON_VP),y)
 swiotlb-$(CONFIG_XEN) := ../arch/i386/kernel/swiotlb.o
-endif
 
 hostprogs-y    := gen_crc32table
 clean-files    := crc32table.h
--- drivers/xen/privcmd/privcmd.c       Sun Oct 01 19:10:18 2006 -0600
+++ drivers/xen/privcmd/privcmd.c       Mon Oct 02 14:03:42 2006 -0600
@@ -83,18 +83,7 @@ static int privcmd_ioctl(struct inode *i
                                : "r8", "r10", "memory" );
                }
 #elif defined (__ia64__)
-               __asm__ __volatile__ (
-                       ";; mov r14=%2; mov r15=%3; "
-                       "mov r16=%4; mov r17=%5; mov r18=%6;"
-                       "mov r2=%1; break 0x1000;; mov %0=r8 ;;"
-                       : "=r" (ret)
-                       : "r" (hypercall.op),
-                       "r" (hypercall.arg[0]),
-                       "r" (hypercall.arg[1]),
-                       "r" (hypercall.arg[2]),
-                       "r" (hypercall.arg[3]),
-                       "r" (hypercall.arg[4])
-                       : "r14","r15","r16","r17","r18","r2","r8","memory");
+               ret = privcmd_hypercall(&hypercall);
 #endif
        }
        break;


-- Additional comment from dzickus@redhat.com on 2006-10-16 22:33 EST --
in kernel-2.6.18-1.2728.el5

-- Additional comment from sakaia@jp.fujitsu.com on 2006-10-20 05:09 EST --
Is it truly fixed?
Both Xen and Kernel-Xen should be fixed.
At this point, I never see the xencomm code in xen-3.0.3-rc3 src.
and Plan to fix FC6?

-- Additional comment from agriffis@redhat.com on 2006-10-25 14:56 EST --
(In reply to comment #2)
> in kernel-2.6.18-1.2728.el5

No, none of these patches have been included.  I think this was marked
incorrectly because Don and Rik thought the patches were in xen-3.0.3

-- Additional comment from agriffis@redhat.com on 2006-10-26 19:31 EST --
Created an attachment (id=139540)
xen-ia64 patches, ported to kernel-2.6.18-1.2736.el5


-- Additional comment from agriffis@redhat.com on 2006-10-26 19:33 EST --
Created an attachment (id=139541)
linux-xen-ia64 patches, ported to kernel-2.6.18-1.2736.el5


-- Additional comment from sakaia@jp.fujitsu.com on 2006-10-27 05:47 EST --
Is it truly fixed?
It seems nothing changes in Kernel.
Comment 1 Aron Griffis 2006-11-08 14:08:30 EST
From: Atsushi SAKAI (Fujitsu)
Date: Tue, 07 Nov 2006 18:30:36 +0900
Subject: [ipf-virtualization]Test Results about Aron's package

Hi,

We do the follwing tests to the Aron's packages and it passed.

VTI Create/Destroy
One U and One VTI Create
VTI Kernel Build
Two VTI Coexist
Four VTI Coexist
One_VTI
One_XenU
One_SMP_VTI
VTI_Without_vif
One_SMP_XenU

Of course, the error messsages like "kernel unaligned access"
and "Can't allocate memory" are  erased.
"kernel aligned access" is checked by ping the packet to outbound from DomU.
"Can't allocate memory" is checked by Create/Destroy 300times.

This test was done by KUWAMURA Shin'ya.

Thanks
Atsushi SAKAI
Comment 2 Aron Griffis 2006-11-08 14:11:15 EST
Stephen/Rik, with this testing report, could we get these patches applied please?
Comment 3 Aron Griffis 2006-11-08 14:57:15 EST
When these patches are applied, kernel-2.6.18-ia64-xen.config also needs:

CONFIG_XEN_IA64_EXPOSE_P2M=y
CONFIG_XEN_IA64_EXPOSE_P2M_USE_DTR=y
Comment 4 Jarod Wilson 2006-11-08 15:38:12 EST
To help move this along, I'll see if I can't get a kernel built and tested on
some ia64 hardware here in the office...
Comment 5 RHEL Product and Program Management 2006-11-08 15:40:46 EST
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux major release.  Product Management has requested further
review of this request by Red Hat Engineering, for potential inclusion in a Red
Hat Enterprise Linux Major release.  This request is not yet committed for
inclusion.
Comment 6 Rik van Riel 2006-11-08 21:59:43 EST
Aron, could you please post the patches for review on rhkernel-list?

Once the patches are approved, and this bug has devel_ack and qa_ack set, they
can get committed to the tree.
Comment 7 Chris Lalancette 2006-11-09 15:07:00 EST

*** This bug has been marked as a duplicate of 210637 ***

Note You need to log in before you can comment on or make changes to this bug.