[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Problems booting 32-bit PV; just me or more widespread?
On 08/29/2018 08:51 PM, Andy Smith wrote: > Hi, > > I'm sorry this is a long email, but I wanted to explain everything > that I have tried, because it seems like quite a few different > versions of 32-bit upstream Linux kernel no longer boot as PV guest > and I'm surprised I am the first to encounter this. Probably I > have done something wrong. > > I cannot get any of the Ubuntu packaged 32-bit mainline kernels > after v4.13.16 that are found at > http://kernel.ubuntu.com/~kernel-ppa/mainline/ to boot in 32-bit PV > mode. All of them from v4.14.0rc1 onwards crash on xl create either > saying "error: no XEN note found." Don't know what this error is, perhaps kernel was not compiled with CONFIG_XEN. > or else immediately producing a > kernel panic like: > > . > . > . > [ 0.114370] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, > max_idle_ns: 7645041785100000 ns > [ 0.114382] futex hash table entries: 256 (order: 2, 16384 bytes) > [ 0.114423] pinctrl core: initialized pinctrl subsystem > [ 0.134326] RTC time: 165:165:165, date: 165/165/65 > [ 0.134442] NET: Registered protocol family 16 > [ 0.134457] xen:grant_table: Grant tables using version 1 layout > [ 0.134502] Grant table initialized > [ 0.134544] audit: initializing netlink subsys (disabled) > [ 0.134611] audit: type=2000 audit(1535307799.132:1): state=initialized > audit_enabled=0 res=1 > [ 0.134678] EISA bus registered > [ 0.136019] PCI: setting up Xen PCI frontend stub > [ 0.136073] BUG: unable to handle kernel paging request at edc21fd9 > [ 0.136084] IP: eisa_bus_probe+0x19/0x36 > [ 0.136089] *pdpt = 0000000001ee6027 *pde = 0000000029cc6067 *pte = > 0000000000000000 > [ 0.136100] Oops: 0000 [#1] SMP > [ 0.136105] Modules linked in: > [ 0.136111] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.15.0-33-generic > #36-Ubuntu > [ 0.136120] EIP: eisa_bus_probe+0x19/0x36 > [ 0.136125] EFLAGS: 00010246 CPU: 0 > [ 0.136130] EAX: edc21fd9 EBX: 00000000 ECX: 01e0d000 EDX: 00000200 > [ 0.136138] ESI: c1d0d452 EDI: c1dd34a4 EBP: e9c89f24 ESP: e9c89f24 > [ 0.136145] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: e021 > [ 0.136154] CR0: 80050033 CR2: edc21fd9 CR3: 01e10000 CR4: 00042660 > [ 0.136166] Call Trace: > [ 0.136173] do_one_initcall+0x49/0x174 > [ 0.136179] ? parse_args+0x143/0x390 > [ 0.136187] ? set_debug_rodata+0x14/0x14 > [ 0.136193] kernel_init_freeable+0x149/0x1c5 > [ 0.136201] ? rest_init+0xa0/0xa0 > [ 0.136207] kernel_init+0xd/0xf0 > [ 0.136213] ret_from_fork+0x2e/0x38 > [ 0.140000] Code: ff b8 df 43 ae c1 e8 35 1b 88 ff e8 20 12 88 ff c9 c3 3e 8d > 74 26 00 55 b9 04 00 00 00 31 d2 b8 d9 ff 0f 00 89 e5 e8 35 8d 35 ff <8b> 10 > 81 fa 45 49 53 41 75 0a c7 05 a0 76 ed c1 01 00 00 00 e8 > [ 0.140000] EIP: eisa_bus_probe+0x19/0x36 SS:ESP: e021:e9c89f24 > [ 0.140000] CR2: 00000000edc21fd9 > [ 0.140000] ---[ end trace 8c00b3cb7d4f06ba ]--- > [ 0.140013] Kernel panic - not syncing: Attempted to kill init! > exitcode=0x00000009 > > (that one was from the currently-packaged linux-image-generic in > Ubuntu 18.04 LTS). Yes, this looks like it was broken by f7eaf6e00fd5 ("x86/boot: Move EISA setup to a separate file"). We used to use fixmap for EISA addresses, but not anymore. If you can build your own kernel you could try the patch below (may be whitespace-damaged) -boris diff --git a/arch/x86/kernel/eisa.c b/arch/x86/kernel/eisa.c index f260e452e4f8..133e16c2fbc6 100644 --- a/arch/x86/kernel/eisa.c +++ b/arch/x86/kernel/eisa.c @@ -9,7 +9,12 @@ static __init int eisa_bus_probe(void) { - void __iomem *p = ioremap(0x0FFFD9, 4); + void __iomem *p; + + if (EISA_bus == -1) + return 0; + + p = ioremap(0x0FFFD9, 4); if (readl(p) == 'E' + ('I'<<8) + ('S'<<16) + ('A'<<24)) EISA_bus = 1; diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c index 1163e33121fb..b78ef1a67943 100644 --- a/arch/x86/xen/setup.c +++ b/arch/x86/xen/setup.c @@ -12,6 +12,10 @@ #include <linux/memblock.h> #include <linux/cpuidle.h> #include <linux/cpufreq.h> +#ifdef CONFIG_EISA +#include <linux/eisa.h> +#endif + #include <asm/elf.h> #include <asm/vdso.h> @@ -854,6 +858,10 @@ char * __init xen_memory_setup(void) e820__update_table(e820_table); +#ifdef CONFIG_EISA + EISA_bus = -1; +#endif + _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |