From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Daniel Kiper <daniel.kiper@oracle.com>,
Marcos Matsunaga <marcos.matsunaga@oracle.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
Jan Beulich <JBeulich@suse.com>,
xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: EFI GetNextVariableName crashes when running under Xen, but not under Linux. efi-rs=0 works. No memmap issues
Date: Tue, 27 Jan 2015 16:48:54 -0500 [thread overview]
Message-ID: <20150127214854.GA2772@x230.dumpdata.com> (raw)
In-Reply-To: <20150127201858.GY3473@olila.local.net-space.pl>
[-- Attachment #1: Type: text/plain, Size: 8215 bytes --]
On Tue, Jan 27, 2015 at 09:18:58PM +0100, Daniel Kiper wrote:
> On Tue, Jan 27, 2015 at 07:54:30AM +0000, Jan Beulich wrote:
> > (re-adding xen-devel)
> >
> > >>> On 27.01.15 at 01:32, <andrew.cooper3@citrix.com> wrote:
> > > On 27/01/2015 00:02, Daniel Kiper wrote:
> > >> On Mon, Jan 26, 2015 at 05:00:41PM +0000, Jan Beulich wrote:
> > >>>>>> On 26.01.15 at 17:27, <konrad.wilk@oracle.com> wrote:
> > >>>> Anyhow I am bit stuck:
> > >>>> 1) It works with Linux, so what is it that Linux does that
> > >>>> Xen does not?
> > >>> They map more than just what is marked for runtime use.
And they call SetVirtualAddressMap which we do not (and if I define
USE_SET_VIRTUAL_ADDRESS_MAP Xen blows up during bootup).
> > >> IIRC, Linux maps boot services unconditionally (and states in comment
> > >> that this is not in line with spec). We do not have such mechanism.
.. snip..
I've found that the issue is that the EFI firmware code assumes
that if you have not called SetVirtualAddressMap then you must
have not called ExitBootServices. But we do, and part of
ExitBootServices job is to wipe out its system function table
to zero. And since we did that - the system function table
would point to zeros .. and the code would happily execute
code at location 0 <facepalm>.
The "fix" was to not call ExitBootServices. See patches - which
are really just for diagnostic purposes. Daniel - thank you
for suggesting that!
P.S.
Marcos, you might want to run with these patches (except
the #4 patch) - and see how it works on your Dell machine
(without the efi-rs=0 workaround).
For those that are interested, here is the heavily annotated
efi_rs->GetNextVariableName code on this Lenovo Thinkpad along
with snippets from memory:
The first [] is when running under Linux, the second is
when running under Xen. The [S] means it had the same value
when running w/ calling ExitBootServices under Xen.
0: 48 89 5c 24 08 mov %rbx,0x8(%rsp)
5: 48 89 6c 24 10 mov %rbp,0x10(%rsp)
a: 48 89 74 24 18 mov %rsi,0x18(%rsp)
f: 57 push %rdi
10: 41 54 push %r12
12: 41 55 push %r13
14: 48 83 ec 20 sub $0x20,%rsp
18: 45 33 ed xor %r13d,%r13d
1b: 48 85 c9 test %rcx,%rcx
1e: 4d 8b e0 mov %r8,%r12
21: 48 8b fa mov %rdx,%rdi
24: 48 8b e9 mov %rcx,%rbp
27: 0f 84 09 01 00 00 je 0x136
2d: 48 85 d2 test %rdx,%rdx
30: 0f 84 00 01 00 00 je 0x136
36: 4d 85 c0 test %r8,%r8
39: 0f 84 f7 00 00 00 je 0x136
3f: 48 8b 05 76 11 00 00 mov 0x1176(%rip),%rax # 0x11bc [20 53 c3 fa fe ff ff ff] [20 53 a3 d6 00 00 00 00][S]
46: 48 8d 15 af 11 00 00 lea 0x11af(%rip),%rdx # 0x11fc [00 54 f3 41 60 06 1c 8] [00 6d 15 d8 d6 db 40 8d][S]
4d: 48 8b c8 mov %rax,%rcx
50: ff 50 20 callq *0x20(%rax)
53: 80 3d a2 11 00 00 01 cmpb $0x1,0x11a2(%rip) # 0x11fc [00 54 f3 41 60 06 1c 8] [00 6d 15 d8 d6 db 40 8d][S]
5a: 75 1b jne 0x77
5c: 48 8b 05 81 11 00 00 mov 0x1181(%rip),%rax # 0x11e4 [80 62 2b db 00 00 00 00] [80 62 2b db 00 00 00 0][S]
63: 4d 8b c4 mov %r12,%r8
66: 48 8b d7 mov %rdi,%rdx
69: 48 8b cd mov %rbp,%rcx
6c: ff 50 08 callq *0x8(%rax)
6f: 48 8b d8 mov %rax,%rbx
72: e9 ba 00 00 00 jmpq 0x131
77: 48 8b cf mov %rdi,%rcx
7a: e8 bd 0f 00 00 callq 0x103c
7f: 48 3d 00 01 00 00 cmp $0x100,%rax
85: 0f 87 ab 00 00 00 ja 0x136
8b: 44 38 2d c2 10 00 00 cmp %r13b,0x10c2(%rip) # 0x1154 [01 01 00 00 00 00 00 00] [00 01 00 00 00 00 00 00][S]
[Here we figure out whether to use BootServices.
r13 is zero (see @18)]
92: 75 12 jne 0xa6
[Linux: 01 != 00, hence go to @a6, Xen keeps on going]
94: 48 8b 05 d1 10 00 00 mov 0x10d1(%rip),%rax # 0x116c [70 a2 db cf 00 00 00 00][70 a2 db cf 00 00 00 00][S]
9b: b9 1f 00 00 00 mov $0x1f,%ecx
w/o ExitBootServices:
[@cfdba270: 42 4f 4f 54 53 45 52 56]
[@cfdba270+0x18: 48 30 dc cf 00 00 00 00]
[@0: 68 02 00 f0 68 02 00 f0 6]..
w/ ExitBootServices they
[@cfdba270: 00 00 00 ...]
[@cfdba270+0x18: 00 00 00 ..]
[@0: 68 02 00 f0 68 02 00 f0 6]..
a0: ff 50 18 callq *0x18(%rax)
.. and the rest is unintersting - as right now Xen would
crash when calling code at @0 which ends is full of garbage.
If however we did not call ExitBootServices, we jump
to cfdc3048 which is:
0: 48 89 5c 24 08 mov %rbx,0x8(%rsp)
5: 57 push %rdi
6: 48 83 ec 20 sub $0x20,%rsp
a: 48 8b 1d 57 81 ff ff mov -0x7ea9(%rip),%rbx # 0xffffffffffff8168
11: 48 8b f9 mov %rcx,%rdi
14: 48 3b cb cmp %rbx,%rcx
17: 72 1a jb 0x33
19: 48 83 f9 1f cmp $0x1f,%rcx
1d: 72 0d jb 0x2c
1f: 48 83 fb 1f cmp $0x1f,%rbx
23: 73 07 jae 0x2c
25: 33 c9 xor %ecx,%ecx
27: e8 9c ff ff ff callq 0xffffffffffffffc8
2c: 48 89 3d 35 81 ff ff mov %rdi,-0x7ecb(%rip) # 0xffffffffffff8168
33: 48 8b c3 mov %rbx,%rax
36: 48 8b 5c 24 30 mov 0x30(%rsp),%rbx
3b: 48 83 c4 20 add $0x20,%rsp
3f: 5f pop %rdi
40: c3 retq
a3: 4c 8b e8 mov %rax,%r13
a6: 48 8b 35 27 11 00 00 mov 0x1127(%rip),%rsi # 0x11d4 [10 d0 87 fa fe ff ff ff][10 d0 47 da 00 00 00 00][S]
ad: 48 8b d7 mov %rdi,%rdx
b0: c6 06 5a movb $0x5a,(%rsi)
b3: c6 46 01 6b movb $0x6b,0x1(%rsi)
b7: 48 8b 4d 00 mov 0x0(%rbp),%rcx
bb: 48 89 4e 18 mov %rcx,0x18(%rsi)
bf: 48 8d 4e 20 lea 0x20(%rsi),%rcx
c3: e8 58 0f 00 00 callq 0x1020
c8: 48 8d 8e 20 02 00 00 lea 0x220(%rsi),%rcx
cf: 41 b8 10 00 00 00 mov $0x10,%r8d
d5: 49 8b d4 mov %r12,%rdx
d8: e8 ff 0e 00 00 callq 0xfdc
dd: e8 3a fb ff ff callq 0xfffffffffffffc1c
e2: 44 8a 1e mov (%rsi),%r11b
e5: 41 80 fb 5a cmp $0x5a,%r11b
e9: 74 bb je 0xa6
eb: 48 8b 5e 08 mov 0x8(%rsi),%rbx
ef: 48 8b 46 18 mov 0x18(%rsi),%rax
f3: 48 85 db test %rbx,%rbx
f6: 48 89 45 00 mov %rax,0x0(%rbp)
fa: 75 1f jne 0x11b
fc: 48 8d 56 20 lea 0x20(%rsi),%rdx
100: 48 8b cf mov %rdi,%rcx
103: e8 18 0f 00 00 callq 0x1020
108: 48 8d 96 20 02 00 00 lea 0x220(%rsi),%rdx
10f: 44 8d 43 10 lea 0x10(%rbx),%r8d
113: 49 8b cc mov %r12,%rcx
116: e8 c1 0e 00 00 callq 0xfdc
11b: 80 3d 32 10 00 00 00 cmpb $0x0,0x1032(%rip) # 0x1154 [70 a2 db cf 00 00 00 00][00 01 00 00 00 00 00 00][S]
122: 75 0d jne 0x131
124: 48 8b 05 41 10 00 00 mov 0x1041(%rip),%rax # 0x116c [70 a2 db cf 00 00 00 00][70 a2 db cf 00 00 00 00][S]
12b: 49 8b cd mov %r13,%rcx
12e: ff 50 20 callq *0x20(%rax)
131: 48 8b c3 mov %rbx,%rax
134: eb 0a jmp 0x140
136: 48 b8 02 00 00 00 00 movabs $0x8000000000000002,%rax
13d: 00 00 80
140: 48 8b 5c 24 40 mov 0x40(%rsp),%rbx
145: 48 8b 6c 24 48 mov 0x48(%rsp),%rbp
14a: 48 8b 74 24 50 mov 0x50(%rsp),%rsi
14f: 48 83 c4 20 add $0x20,%rsp
153: 41 5d pop %r13
155: 41 5c pop %r12
157: 5f pop %rdi
158: c3 retq
159: cc int3
15a: cc int3
15b: cc int3
[-- Attachment #2: 0001-EFI-Map-also-BootServicesData-and-BootServicesCode.patch --]
[-- Type: text/plain, Size: 3574 bytes --]
>From 49aab3d6e623c907164475403ba495ede442e6e5 Mon Sep 17 00:00:00 2001
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Date: Tue, 27 Jan 2015 15:32:10 -0500
Subject: [PATCH 1/4] EFI: Map also BootServicesData and BootServicesCode
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
---
xen/arch/x86/efi/efi-boot.h | 2 --
xen/common/efi/boot.c | 27 ++++++++++++++++++++++++---
2 files changed, 24 insertions(+), 5 deletions(-)
diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h
index 3a3b4fe..c3bdb8d 100644
--- a/xen/arch/x86/efi/efi-boot.h
+++ b/xen/arch/x86/efi/efi-boot.h
@@ -152,8 +152,6 @@ static void __init efi_arch_process_memory_map(EFI_SYSTEM_TABLE *SystemTable,
type = E820_RESERVED;
break;
case EfiConventionalMemory:
- case EfiBootServicesCode:
- case EfiBootServicesData:
if ( !trampoline_phys && desc->PhysicalStart + len <= 0x100000 &&
len >= cfg.size && desc->PhysicalStart + len > cfg.addr )
cfg.addr = (desc->PhysicalStart + len - cfg.size) & PAGE_MASK;
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index c04e0a2..b0bbc4b 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -1156,13 +1156,23 @@ void __init efi_init_memory(void)
u64 len = desc->NumberOfPages << EFI_PAGE_SHIFT;
unsigned long smfn, emfn;
unsigned int prot = PAGE_HYPERVISOR;
+ unsigned int skip = 1;
printk(XENLOG_INFO " %013" PRIx64 "-%013" PRIx64
" type=%u attr=%016" PRIx64 "\n",
desc->PhysicalStart, desc->PhysicalStart + len - 1,
desc->Type, desc->Attribute);
- if ( !efi_rs_enable || !(desc->Attribute & EFI_MEMORY_RUNTIME) )
+ if ( desc->Attribute & EFI_MEMORY_RUNTIME )
+ skip = 0;
+
+ if ( desc->Type == 4 && desc->Attribute != 0 )
+ skip = 0;
+
+ if ( desc->Type == 3 && desc->Attribute != 0 )
+ skip = 0;
+
+ if ( !efi_rs_enable || skip )
{
printk(XENLOG_INFO " .. skipped!\n");
continue;
@@ -1246,18 +1256,29 @@ void __init efi_init_memory(void)
copy_mapping(0, max_page, ram_range_valid);
+ printk(XENLOG_INFO "Copying..\n");
/* Insert non-RAM runtime mappings inside the direct map. */
for ( i = 0; i < efi_memmap_size; i += efi_mdesc_size )
{
const EFI_MEMORY_DESCRIPTOR *desc = efi_memmap + i;
- if ( (desc->Attribute & EFI_MEMORY_RUNTIME) &&
+ if ( ((desc->Attribute & EFI_MEMORY_RUNTIME) ||
+ (desc->Type == 3 && desc->Attribute != 0 ) ||
+ (desc->Type == 4 && desc->Attribute != 0 )) &&
desc->VirtualStart != INVALID_VIRTUAL_ADDRESS &&
- desc->VirtualStart != desc->PhysicalStart )
+ desc->VirtualStart != desc->PhysicalStart ) {
+
+ printk(XENLOG_INFO " %013" PRIx64 "-%013" PRIx64
+ " type=%u attr=%016" PRIx64 "\n",
+ PFN_DOWN(desc->PhysicalStart),
+ PFN_UP(desc->PhysicalStart + (desc->NumberOfPages << EFI_PAGE_SHIFT)),
+ desc->Type, desc->Attribute);
+
copy_mapping(PFN_DOWN(desc->PhysicalStart),
PFN_UP(desc->PhysicalStart +
(desc->NumberOfPages << EFI_PAGE_SHIFT)),
rt_range_valid);
+ }
}
/* Insert non-RAM runtime mappings outside of the direct map. */
--
2.1.0
[-- Attachment #3: 0002-EFI-early-Implement-GetNextVariableName-and-query-an.patch --]
[-- Type: text/plain, Size: 4581 bytes --]
>From ffb09e4938021ed47bc7097585dd19a10f2e09de Mon Sep 17 00:00:00 2001
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Date: Tue, 27 Jan 2015 14:04:30 -0500
Subject: [PATCH 2/4] EFI/early: Implement GetNextVariableName and /query and
/noexitboot parameters
In the early EFI boot we will enumerate up to five EFI variables
to make sure it works.
The /query will just enumerate them and then quit. Helps in
troubleshooting and redirecting the output to a file (xen.efi /query > q).
The /noexitboot will inhibit Xen from calling ExitBootServices.
This allows on Lenovo ThinkPad x230 to use GetNextVariableName
in 1-1 mapping mode.
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
---
xen/common/efi/boot.c | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 82 insertions(+), 1 deletion(-)
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index b0bbc4b..4ee8f68 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -673,6 +673,74 @@ static void __init setup_efi_pci(void)
efi_bs->FreePool(handles);
}
+static int __init efi_getnextvariable(bool_t query_only)
+{
+ EFI_GUID guid;
+ UINTN i, size, idx;
+ CHAR16 *name;
+ EFI_STATUS status;
+
+
+ status = efi_bs->AllocatePool(EfiLoaderData, 1024, (void *)&name);
+ if ( EFI_ERROR(status) )
+ return status;
+
+ guid.Data1 = 0;
+ guid.Data2 = 0;
+ guid.Data3 = 0;
+ for ( i = 0; i < 8; i++ )
+ guid.Data4[i] = 0;
+
+ for ( i = 0 ; i < 1024 / sizeof (CHAR16); i++ )
+ name[i] = 0;
+
+ PrintStr(L"GetNextVariableName: ");
+ PrintStr(name);
+ PrintStr(newline);
+ idx = 0;
+ do {
+ size = 1024;
+ efi_rs->GetNextVariableName(&size, name, &guid);
+ if ( EFI_ERROR(status) )
+ {
+ if ( query_only )
+ {
+ efi_bs->FreePool(name);
+ PrintErrMesg(L"Failed to GetNextVariableName", status);
+ }
+ else
+ {
+ PrintStr(L"Warning: GetNextVariableName: ");
+ DisplayUint(status, 0);
+ PrintStr(newline);
+ }
+ }
+ else
+ {
+ DisplayUint(guid.Data1, 4);
+ DisplayUint(guid.Data2, 2);
+ DisplayUint(guid.Data3, 2);
+ for ( i = 0; i < 8; i++ )
+ DisplayUint(guid.Data4[i], 1);
+
+ PrintStr(L":");
+ PrintStr(name);
+ PrintStr(L" ");
+ DisplayUint(status, 0);
+ PrintStr(newline);
+ }
+ } while ( !EFI_ERROR(status) && idx++ < 5 );
+
+ efi_bs->FreePool(name);
+
+ if ( query_only )
+ return -EINVAL;
+
+ if ( EFI_ERROR(EFI_NOT_FOUND) )
+ return 0;
+
+ return status;
+}
static int __init __maybe_unused set_color(u32 mask, int bpp, u8 *pos, u8 *sz)
{
if ( bpp < 0 )
@@ -705,8 +773,10 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *mode_info;
union string section = { NULL }, name;
bool_t base_video = 0, retry;
+ bool_t query_only = 0;
char *option_str;
bool_t use_cfg_file;
+ bool_t exit_boot_services = 0;
efi_ih = ImageHandle;
efi_bs = SystemTable->BootServices;
@@ -751,6 +821,10 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
{
if ( wstrcmp(ptr + 1, L"basevideo") == 0 )
base_video = 1;
+ else if ( wstrcmp(ptr + 1, L"query") == 0 )
+ query_only = 1;
+ else if ( wstrcmp(ptr + 1, L"noexitboot") == 0 )
+ exit_boot_services = 0;
else if ( wstrncmp(ptr + 1, L"cfg=", 4) == 0 )
cfg_file_name = ptr + 5;
else if ( i + 1 < argc && wstrcmp(ptr + 1, L"cfg") == 0 )
@@ -1031,6 +1105,9 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
PrintStr(newline);
}
+ if ( efi_getnextvariable(query_only) )
+ blexit(L"Could not get next variable");
+
efi_arch_memory_setup();
if ( gop )
@@ -1064,7 +1141,11 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
efi_arch_pre_exit_boot();
- status = efi_bs->ExitBootServices(ImageHandle, map_key);
+ if ( exit_boot_services )
+ status = efi_bs->ExitBootServices(ImageHandle, map_key);
+ else
+ status = 0;
+
if ( status != EFI_INVALID_PARAMETER || retry )
break;
}
--
2.1.0
[-- Attachment #4: 0003-EFI-early-Swap-noexitboot-to-exitboot-and-by-default.patch --]
[-- Type: text/plain, Size: 1801 bytes --]
>From 76bee287621d22b2c9082eae6eacfea2446722c9 Mon Sep 17 00:00:00 2001
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Date: Tue, 27 Jan 2015 15:35:35 -0500
Subject: [PATCH 3/4] EFI/early: Swap noexitboot to exitboot and by default
don't call ExitBootServices.
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
---
xen/common/efi/boot.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
index 4ee8f68..d9aabd3 100644
--- a/xen/common/efi/boot.c
+++ b/xen/common/efi/boot.c
@@ -823,8 +823,8 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
base_video = 1;
else if ( wstrcmp(ptr + 1, L"query") == 0 )
query_only = 1;
- else if ( wstrcmp(ptr + 1, L"noexitboot") == 0 )
- exit_boot_services = 0;
+ else if ( wstrcmp(ptr + 1, L"exitboot") == 0 )
+ exit_boot_services = 1;
else if ( wstrncmp(ptr + 1, L"cfg=", 4) == 0 )
cfg_file_name = ptr + 5;
else if ( i + 1 < argc && wstrcmp(ptr + 1, L"cfg") == 0 )
@@ -834,6 +834,8 @@ efi_start(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
{
PrintStr(L"Xen EFI Loader options:\r\n");
PrintStr(L"-basevideo retain current video mode\r\n");
+ PrintStr(L"-exitboot call ExitBootServices\r\n");
+ PrintStr(L"-query call GetNextVariableName for up to five times\r\n");
PrintStr(L"-cfg=<file> specify configuration file\r\n");
PrintStr(L"-help, -? display this help\r\n");
blexit(NULL);
--
2.1.0
[-- Attachment #5: 0004-EFI-Dump-0xcfda270-and-the-other-address.patch --]
[-- Type: text/plain, Size: 931 bytes --]
>From 9f7469cd3b8a89594b16f2e39886948987bfa2ae Mon Sep 17 00:00:00 2001
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Date: Tue, 27 Jan 2015 16:09:51 -0500
Subject: [PATCH 4/4] EFI: Dump 0xcfda270 and the other address
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
---
xen/common/efi/runtime.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/xen/common/efi/runtime.c b/xen/common/efi/runtime.c
index ef6b1df..79e8072 100644
--- a/xen/common/efi/runtime.c
+++ b/xen/common/efi/runtime.c
@@ -236,7 +236,12 @@ long __init efi_debug(void)
printk(", GetNextVariableName: %lx\n", get);
_dumpcode(get, get+1024);
-
+ get = 0xcfdba270;
+ _dumpcode(get, get+8);
+ _dumpcode(get + 0x18, get + 0x18 + 8);
+ _dumpcode(get + 0x20, get + 0x20 + 8);
+ get = 0xcfdc3048;
+ _dumpcode(get, get+1024);
idx = 1;
do {
printk("%4d:", idx++);
--
2.1.0
[-- Attachment #6: Type: text/plain, Size: 126 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
next prev parent reply other threads:[~2015-01-27 21:49 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-26 16:27 EFI GetNextVariableName crashes when running under Xen, but not under Linux. efi-rs=0 works. No memmap issues Konrad Rzeszutek Wilk
2015-01-26 16:36 ` Andrew Cooper
2015-01-26 17:28 ` Konrad Rzeszutek Wilk
[not found] ` <54C680C90200007800059907@mail.emea.novell.com>
[not found] ` <20150127000247.GU3473@olila.local.net-space.pl>
[not found] ` <54C6DCB7.3060206@citrix.com>
2015-01-27 7:54 ` Jan Beulich
2015-01-27 14:26 ` Konrad Rzeszutek Wilk
2015-01-27 16:17 ` Jan Beulich
2015-01-27 18:20 ` Konrad Rzeszutek Wilk
2015-01-28 8:40 ` Jan Beulich
2015-01-28 16:03 ` Konrad Rzeszutek Wilk
2015-01-28 16:12 ` Konrad Rzeszutek Wilk
2015-01-28 16:17 ` Daniel Kiper
2015-01-28 16:56 ` Jan Beulich
2015-01-28 17:20 ` Konrad Rzeszutek Wilk
2015-01-29 10:35 ` Jan Beulich
2015-01-30 14:17 ` Is: kexec & EFI Was: " Konrad Rzeszutek Wilk
2015-01-30 14:40 ` David Vrabel
2015-01-30 14:52 ` Konrad Rzeszutek Wilk
2015-01-30 14:57 ` David Vrabel
2015-01-30 15:09 ` Daniel Kiper
2015-01-30 15:34 ` Jan Beulich
2015-01-30 16:24 ` Daniel Kiper
2015-01-30 16:41 ` Jan Beulich
2015-01-27 20:18 ` Daniel Kiper
2015-01-27 21:48 ` Konrad Rzeszutek Wilk [this message]
2015-01-28 8:43 ` Jan Beulich
2015-01-28 12:57 ` Daniel Kiper
2015-01-28 14:02 ` Jan Beulich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150127214854.GA2772@x230.dumpdata.com \
--to=konrad.wilk@oracle.com \
--cc=JBeulich@suse.com \
--cc=andrew.cooper3@citrix.com \
--cc=daniel.kiper@oracle.com \
--cc=marcos.matsunaga@oracle.com \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.