[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-ia64-devel] progress on blktap
I started with Chris Wright's patch and "backported" it to xen-ia64-unstable, from 2.6.18 base to 2.6.16, which means simply that ioremap.c isn't available so the code needs another home. hypervisor.c seems like the right place. The patch at the bottom of this mail allows blktap to build. The kernel boots and other backend methods continue to work (tested booting domu). blktap method starts to boot but hits a problem. /etc/xen/domu-g2-blktap contains: kernel = "/boot/vmlinux-xen.gz" memory = 512 name = "domu-g2" vif = [ '' ] disk = [ 'tap:aio:/var/lib/xen/domu-g2.img,hda1,w' ] root = "/dev/hda1 ro" domu messages: ... netfront: device eth0 has flipping receive path. IP route cache hash table entries: 4096 (order: 1, 32768 bytes) TCP established hash table entries: 16384 (order: 4, 262144 bytes) TCP bind hash table entries: 16384 (order: 4, 262144 bytes) TCP: Hash tables configured (established 16384 bind 16384) TCP reno registered TCP bic registered NET: Registered protocol family 1 NET: Registered protocol family 17 Bridge firewalling registered xen privcmd uses pseudo physical addr range [0x20000000, 0x3ffff000000] (4193776MB) Xen p2m: assign p2m table of [0x0000000000000000, 0x0000000020000000) Xen p2m: to [0x0000000020000000, 0x0000000023ffc000) (65536 KBytes) [stops here] dom0 messages: ... (XEN) tlb_track_allocate_entries:68 allocated 256 num_entries 256 num_free 256 (XEN) tlb_track_create:114 hash 0xf0000040e5858000 hash_size 512 (XEN) ### domain f000000007b74080: rid=80000-c0000 mp_rid=2000 (XEN) arch_domain_create: domain=f000000007b74080 (XEN) DomainU EFI build up: ACPI 2.0=0x1000 (XEN) dom mem: type=13, attr=0x8000000000000008, range=[0x0000000000000000-0x0000000000001000) (4KB) (XEN) dom mem: type=10, attr=0x8000000000000008, range=[0x0000000000001000-0x0000000000002000) (4KB) (XEN) dom mem: type= 6, attr=0x8000000000000008, range=[0x0000000000002000-0x0000000000003000) (4KB) (XEN) dom mem: type= 7, attr=0x0000000000000008, range=[0x0000000000003000-0x000000001fff4000) (511MB) (XEN) dom mem: type=12, attr=0x0000000000000001, range=[0x00000ffffc000000-0x0000100000000000) (64MB) (XEN) vcpu_get_lrr0: Unmasked interrupts unsupported (XEN) vcpu_get_lrr1: Unmasked interrupts unsupported (XEN) Domain set shared_info_va to 0xfffffffffff00000 (XEN) Linux version 2.6.16.29-xen (agriffis@xxxxxxxxxxxxxxx) (gcc version 4.1.1 (Gentoo 4.1.1-r1)) #1 SMP Tue Oct 17 13:52:41 EDT 2006 EFI v1.00 by Xen/ia64: SALsystab=0x2178 ACPI 2.0=0x1000 SAL 0.1: Xen/ia64 Xen/ia64 version 0.0 SAL: AP wakeup using external interrupt vector 0xf3 xen_pal_emulator: UNIMPLEMENTED PAL CALL 42!!!! (XEN) No logical to physical processor mapping available ACPI: Local APIC address c0000000fee00000 ACPI: Error parsing MADT - no IOSAPIC entries 1 CPUs available, 1 CPUs total Running on Xen! start_info_pfn=0x7ffd nr_pages=32768 flags=0x0 *** CALLED SAL_MC_SET_PARAMS. IGNORED... (XEN) *** CALLED SAL_MC_SET_PARAMS. IGNORED... (XEN) *** CALLED SAL_SET_VECTORS 0. IGNORED... (XEN) *** CALLED SAL_SET_VECTORS 1. IGNORED... (XEN) MCA related initialization done SMP: Allowing 1 CPUs, 0 hotplug CPUs Built 1 zonelists Kernel command line: root=/dev/hda1 ro PID hash table entries: 2048 (order: 11, 65536 bytes) lookup_domain_mpa: d 0xf000000007b74080 id 2 current 0xf000000007b58000 id 0 (XEN) lookup_domain_mpa: bad mpa 0xffffc019064 (=> 0x20000000) (XEN) Warning: UC to WB for mpaddr=ffffc019064 gnttab_map_grant_ref_pre:308 GNTMAP_application_map is not supported yet: flags 0x1a xvd 2[7209]: bugcheck! 0 [1] Modules linked in: Pid: 7209, CPU 0, comm: xvd 2 psr : 0000001008026010 ifs : 800000000000038b ip : [<a00000010006a170>] Not tainted ip is at HYPERVISOR_grant_table_op+0x170/0x280 unat: 0000000000000000 pfs : 800000000000038b rsc : 000000000000000b rnat: 40000000001475d0 bsps: 400000000012b9c0 pr : 0000000000006681 ldrs: 0000000000000000 ccv : 0000000000000000 fpsr: 0009804c8a70433f csd : 0000000000000000 ssd : 0000000000000000 b0 : a00000010006a170 b6 : a000000100072e20 b7 : a0000001000681b0 f6 : 1003e0000000000000028 f7 : 1003e28f5c28f5c28f5c3 f8 : 1003e00000000000000fa f9 : 1003e0000000032000000 f10 : 1003e000000003b9aca00 f11 : 1003ed6bf94d5e57a42bd r1 : a00000010102d710 r2 : a000000100e52738 r3 : a000000100e52738 r8 : 0000000000000031 r9 : fffffffffff00001 r10 : 0000000000000000 r11 : fffffffffff04c20 r12 : e000000016447b20 r13 : e000000016440000 r14 : 0000000000004000 r15 : 0000000000000001 r16 : fffffffffff04c18 r17 : e000000000014248 r18 : 0000000000000001 r19 : e000000000014b58 r20 : e00000001c418030 r21 : e00000001c418030 r22 : 0000000000000001 r23 : e0000000000152a8 r24 : e0000000000152a0 r25 : 0000000000000750 r26 : 0000000000000730 r27 : 0000000000000073 r28 : 0000000000000073 r29 : 0000000000000073 r30 : d6bf94d5e57a42bd r31 : e00000001c418078 Call Trace: [<a00000010001ca20>] show_stack+0x40/0xa0 sp=e0000000164476b0 bsp=e000000016441260 [<a00000010001d320>] show_regs+0x840/0x880 sp=e000000016447880 bsp=e000000016441208 [<a0000001000415e0>] die+0x1c0/0x3c0 sp=e000000016447880 bsp=e0000000164411b8 [<a000000100041830>] die_if_kernel+0x50/0x80 sp=e0000000164478a0 bsp=e000000016441188 [<a000000100042f60>] ia64_bad_break+0x260/0x4a0 sp=e0000000164478a0 bsp=e000000016441160 [<a0000001000685a0>] xen_leave_kernel+0x0/0x3b0 sp=e000000016447950 bsp=e000000016441160 [<a00000010006a170>] HYPERVISOR_grant_table_op+0x170/0x280 sp=e000000016447b20 bsp=e000000016441108 [<a0000001006ae3c0>] dispatch_rw_block_io+0x640/0xd00 sp=e000000016447b20 bsp=e000000016441030 [<a0000001006af600>] tap_blkif_schedule+0x6c0/0x9c0 sp=e000000016447df0 bsp=e000000016440fd0 [<a0000001000bbfc0>] kthread+0x180/0x200 sp=e000000016447e20 bsp=e000000016440f98 [<a00000010001aed0>] kernel_thread_helper+0x30/0x60 sp=e000000016447e30 bsp=e000000016440f70 [<a0000001000110c0>] start_kernel_thread+0x20/0x40 sp=e000000016447e30 bsp=e000000016440f70 diff -r e06634ca24f6 buildconfigs/linux-defconfig_xen0_ia64 --- a/buildconfigs/linux-defconfig_xen0_ia64 Mon Oct 16 22:44:25 2006 -0400 +++ b/buildconfigs/linux-defconfig_xen0_ia64 Tue Oct 17 13:48:22 2006 -0400 @@ -1529,7 +1529,7 @@ CONFIG_XEN_XENBUS_DEV=y CONFIG_XEN_XENBUS_DEV=y CONFIG_XEN_BACKEND=y CONFIG_XEN_BLKDEV_BACKEND=y -# CONFIG_XEN_BLKDEV_TAP is not set +CONFIG_XEN_BLKDEV_TAP=y CONFIG_XEN_NETDEV_BACKEND=y # CONFIG_XEN_NETDEV_PIPELINED_TRANSMITTER is not set CONFIG_XEN_NETDEV_LOOPBACK=y diff -r e06634ca24f6 buildconfigs/linux-defconfig_xen_ia64 --- a/buildconfigs/linux-defconfig_xen_ia64 Mon Oct 16 22:44:25 2006 -0400 +++ b/buildconfigs/linux-defconfig_xen_ia64 Tue Oct 17 13:48:32 2006 -0400 @@ -1535,7 +1535,7 @@ CONFIG_XEN_XENBUS_DEV=y CONFIG_XEN_XENBUS_DEV=y CONFIG_XEN_BACKEND=y CONFIG_XEN_BLKDEV_BACKEND=y -# CONFIG_XEN_BLKDEV_TAP is not set +CONFIG_XEN_BLKDEV_TAP=y CONFIG_XEN_NETDEV_BACKEND=y # CONFIG_XEN_NETDEV_PIPELINED_TRANSMITTER is not set CONFIG_XEN_NETDEV_LOOPBACK=y diff -r e06634ca24f6 linux-2.6-xen-sparse/arch/ia64/xen/hypervisor.c --- a/linux-2.6-xen-sparse/arch/ia64/xen/hypervisor.c Mon Oct 16 22:44:25 2006 -0400 +++ b/linux-2.6-xen-sparse/arch/ia64/xen/hypervisor.c Tue Oct 17 00:05:31 2006 -0400 @@ -1050,3 +1050,27 @@ EXPORT_SYMBOL_GPL(p2m_pte); EXPORT_SYMBOL_GPL(p2m_pte); EXPORT_SYMBOL_GPL(p2m_phystomach); #endif + +/* + * XXX lookup_pte_fn() and create_lookup_pte_addr() are duplicated from + * arch/i386/mm/ioremap-xen.c; should these be consolidated? + */ +static int +lookup_pte_fn(pte_t *pte, struct page *pmd_page, unsigned long addr, + void *data) +{ + uint64_t *ptep = (uint64_t *)data; + if (ptep) + *ptep = ((uint64_t)pfn_to_mfn(page_to_pfn(pmd_page)) << + PAGE_SHIFT) | ((unsigned long)pte & ~PAGE_MASK); + return 0; +} + +int +create_lookup_pte_addr(struct mm_struct *mm, unsigned long address, + uint64_t *ptep) +{ + return apply_to_page_range(mm, address, PAGE_SIZE, + lookup_pte_fn, ptep); +} +EXPORT_SYMBOL(create_lookup_pte_addr); diff -r e06634ca24f6 linux-2.6-xen-sparse/include/asm-ia64/hypervisor.h --- a/linux-2.6-xen-sparse/include/asm-ia64/hypervisor.h Mon Oct 16 22:44:25 2006 -0400 +++ b/linux-2.6-xen-sparse/include/asm-ia64/hypervisor.h Tue Oct 17 00:07:29 2006 -0400 @@ -142,6 +142,11 @@ int privcmd_mmap(struct file * file, str #endif /* !CONFIG_VMX_GUEST */ +struct mm_struct; +int create_lookup_pte_addr(struct mm_struct *mm, + unsigned long address, + uint64_t *ptep); + #define __pte_ma(_x) ((pte_t) {(_x)}) /* unmodified use */ #define pfn_pte_ma(_x,_y) __pte_ma(0) /* unmodified use */ _______________________________________________ Xen-ia64-devel mailing list Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ia64-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |