[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1/3] xen: remove tests for pvh mode in pure pv paths
Juergen Gross: > Remove the last tests for XENFEAT_auto_translated_physmap in pure > PV-domain specific paths. PVH V1 is gone and the feature will always > be "false" in PV guests. [...] > diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c > index 276da636dd39..6083ba462f35 100644 > --- a/arch/x86/xen/p2m.c > +++ b/arch/x86/xen/p2m.c [...] > @@ -711,9 +694,6 @@ int set_foreign_p2m_mapping(struct gnttab_map_grant_ref > *map_ops, > int i, ret = 0; > pte_t *pte; > > - if (xen_feature(XENFEAT_auto_translated_physmap)) > - return 0; > - > if (kmap_ops) { > ret = HYPERVISOR_grant_table_op(GNTTABOP_map_grant_ref, > kmap_ops, count); > @@ -756,9 +736,6 @@ int clear_foreign_p2m_mapping(struct > gnttab_unmap_grant_ref *unmap_ops, > { > int i, ret = 0; > > - if (xen_feature(XENFEAT_auto_translated_physmap)) > - return 0; > - > for (i = 0; i < count; i++) { > unsigned long mfn = __pfn_to_mfn(page_to_pfn(pages[i])); > unsigned long pfn = page_to_pfn(pages[i]); This removes the check for autotranslation in {set,clear}_foreign_p2m_mapping. But those are called by the grant-table code also on PVH/HVM guest. So since 4.14 I see crashes similar to this one (ignore the kernel version, it's in the middle of a bisect): [ 33.778854] page must be ballooned [ 33.778860] ------------[ cut here ]------------ [ 33.778887] WARNING: CPU: 1 PID: 1581 at arch/x86/xen/p2m.c:720 set_foreign_p2m_mapping+0x13b/0x370 [ 33.778903] Modules linked in: xen_gntdev xen_gntalloc xen_blkback xenfs xen_privcmd xen_evtchn dm_snapshot dm_bufio xen_blkfront [ 33.778931] CPU: 1 PID: 1581 Comm: qubesdb-daemon Not tainted 4.13.0-lt-37 #1 [ 33.778946] task: ffff8800f4251b80 task.stack: ffffc90000818000 [ 33.778960] RIP: 0010:set_foreign_p2m_mapping+0x13b/0x370 [ 33.778970] RSP: 0018:ffffc9000081bc90 EFLAGS: 00010286 [ 33.778981] RAX: 0000000000000016 RBX: 0000000000000001 RCX: ffffffff81e4a898 [ 33.778994] RDX: 0000000000000001 RSI: 0000000000000092 RDI: 0000000000000247 [ 33.779016] RBP: ffffc9000081bce0 R08: 0000000000000143 R09: ffffffff820d1660 [ 33.779026] R10: 000000000000002a R11: 0000000000000000 R12: ffff8800f0c2c320 [ 33.779037] R13: ffff8800f4b6a3c8 R14: 8000000000000000 R15: 0000000000000000 [ 33.779047] FS: 00007fbfd5739f80(0000) GS:ffff8800f9d00000(0000) knlGS:0000000000000000 [ 33.779056] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 33.779064] CR2: 00007ff25daca0c0 CR3: 00000000f2faa005 CR4: 00000000001606e0 [ 33.779074] Call Trace: [ 33.779082] ? x86_configure_nx+0x50/0x50 [ 33.779091] gnttab_map_refs+0xc2/0x160 [ 33.779097] ? decrease_reservation+0x256/0x2e0 [ 33.779105] gntdev_mmap+0x358/0x5c0 [xen_gntdev] [ 33.779113] mmap_region+0x392/0x5e0 [ 33.779119] do_mmap+0x2ae/0x480 [ 33.779125] vm_mmap_pgoff+0xa1/0xe0 [ 33.779132] SyS_mmap_pgoff+0x1ba/0x260 [ 33.787439] systemd-journald[1548]: Received request to flush runtime journal from PID 1 [ 33.931963] SyS_mmap+0x16/0x20 [ 33.931966] do_syscall_64+0x53/0xf0 [ 33.931980] entry_SYSCALL64_slow_path+0x25/0x25 [ 33.931981] RIP: 0033:0x7fbfd50ebdda [ 33.931982] RSP: 002b:00007fff2bae9238 EFLAGS: 00000246 ORIG_RAX: 0000000000000009 [ 33.931984] RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 00007fbfd50ebdda [ 33.931984] RDX: 0000000000000003 RSI: 0000000000001000 RDI: 0000000000000000 [ 33.931985] RBP: 0000000000000007 R08: 0000000000000007 R09: 0000000000000000 [ 33.931986] R10: 0000000000000001 R11: 0000000000000246 R12: 0000000000000000 [ 33.931986] R13: 0000000000001000 R14: 0000000000000001 R15: 0000000000000000 [ 33.931987] Code: 83 b4 00 00 00 48 8b 05 9c 5c f2 00 48 83 3c d0 ff 0f 84 50 01 00 00 48 c7 c7 d7 20 bd 81 48 89 55 c8 48 89 75 d0 e8 f1 70 09 00 <0f> ff 48 8b 75 d0 48 8b 55 c8 4c 09 f6 48 89 d7 e8 70 fe ff ff [ 33.932007] ---[ end trace 858dec3c813fa284 ]--- [ 33.932011] ------------[ cut here ]------------ [ 33.932011] kernel BUG at arch/x86/xen/p2m.c:651! [ 33.932014] invalid opcode: 0000 [#1] SMP [ 33.932014] Modules linked in: xen_gntdev xen_gntalloc xen_blkback xenfs xen_privcmd xen_evtchn dm_snapshot dm_bufio xen_blkfront [ 33.932022] CPU: 1 PID: 1581 Comm: qubesdb-daemon Tainted: G W 4.13.0-lt-37 #1 [ 33.932601] task: ffff8800f4251b80 task.stack: ffffc90000818000 [ 33.932605] RIP: 0010:__set_phys_to_machine+0x36/0x130 [ 33.932606] RSP: 0018:ffffc9000081bc68 EFLAGS: 00010287 [ 33.932609] RAX: 0000000000000016 RBX: 00000000000f3cf3 RCX: ffffffff81e4a898 [ 33.932609] RDX: 00000000000f3cf3 RSI: 800000000012daef RDI: 00000000000f3cf3 [ 33.932610] RBP: ffffc9000081bc80 R08: 0000000000000143 R09: ffffffff820d1660 [ 33.932611] R10: 000000000000002a R11: 0000000000000000 R12: 800000000012daef [ 33.932611] R13: ffff8800f4b6a3c8 R14: 8000000000000000 R15: 0000000000000000 [ 33.932613] FS: 00007fbfd5739f80(0000) GS:ffff8800f9d00000(0000) knlGS:0000000000000000 [ 33.932613] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 33.932614] CR2: 00007ff25daca0c0 CR3: 00000000f2faa005 CR4: 00000000001606e0 [ 33.932617] Call Trace: [ 33.932619] ? set_phys_to_machine+0x12/0x40 [ 33.932621] set_foreign_p2m_mapping+0x150/0x370 [ 33.932624] ? x86_configure_nx+0x50/0x50 [ 33.932627] gnttab_map_refs+0xc2/0x160 [ 33.932628] ? decrease_reservation+0x256/0x2e0 [ 33.932631] gntdev_mmap+0x358/0x5c0 [xen_gntdev] [ 33.932634] mmap_region+0x392/0x5e0 [ 33.932635] do_mmap+0x2ae/0x480 [ 33.932637] vm_mmap_pgoff+0xa1/0xe0 [ 33.932640] SyS_mmap_pgoff+0x1ba/0x260 [ 33.932641] SyS_mmap+0x16/0x20 [ 33.932643] do_syscall_64+0x53/0xf0 [ 33.932645] entry_SYSCALL64_slow_path+0x25/0x25 [ 33.932647] RIP: 0033:0x7fbfd50ebdda [ 33.932647] RSP: 002b:00007fff2bae9238 EFLAGS: 00000246 ORIG_RAX: 0000000000000009 [ 33.932648] RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 00007fbfd50ebdda [ 33.932649] RDX: 0000000000000003 RSI: 0000000000001000 RDI: 0000000000000000 [ 33.932650] RBP: 0000000000000007 R08: 0000000000000007 R09: 0000000000000000 [ 33.932650] R10: 0000000000000001 R11: 0000000000000246 R12: 0000000000000000 [ 33.932651] R13: 0000000000001000 R14: 0000000000000001 R15: 0000000000000000 [ 33.932652] Code: 0d 18 5f f2 00 48 8d 14 fd 00 00 00 00 48 01 d1 0f 1f 00 31 c0 48 89 31 0f 1f 00 85 c0 75 0e b8 01 00 00 00 c3 48 83 fe ff 74 f4 <0f> 0b 55 48 89 e5 41 54 53 49 89 f4 48 8d 75 ec 48 89 fb 48 83 [ 33.932673] RIP: __set_phys_to_machine+0x36/0x130 RSP: ffffc9000081bc68 [ 33.932688] ---[ end trace 858dec3c813fa285 ]--- Not sure if you prefer to change the grant-table code or to revert this part of the commit. The patch bellow works for me: From: Simon Gaiser <simon@xxxxxxxxxxxxxxxxxxxxxx> Date: Sat, 6 Jan 2018 06:40:32 +0100 Subject: [PATCH] xen: Fix {set,clear}_foreign_p2m_mapping on autotranslating guests Commit 82616f9599a7 ("xen: remove tests for pvh mode in pure pv paths") removed the check for autotranslation from {set,clear}_foreign_p2m_mapping but those are called by grant-table.c also on PVH/HVM guests. Cc: <stable@xxxxxxxxxxxxxxx> # 4.14 Fixes: 82616f9599a7 ("xen: remove tests for pvh mode in pure pv paths") Signed-off-by: Simon Gaiser <simon@xxxxxxxxxxxxxxxxxxxxxx> --- arch/x86/xen/p2m.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c index 6083ba462f35..15812e553b95 100644 --- a/arch/x86/xen/p2m.c +++ b/arch/x86/xen/p2m.c @@ -694,6 +694,9 @@ int set_foreign_p2m_mapping(struct gnttab_map_grant_ref *map_ops, int i, ret = 0; pte_t *pte; + if (xen_feature(XENFEAT_auto_translated_physmap)) + return 0; + if (kmap_ops) { ret = HYPERVISOR_grant_table_op(GNTTABOP_map_grant_ref, kmap_ops, count); @@ -736,6 +739,9 @@ int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops, { int i, ret = 0; + if (xen_feature(XENFEAT_auto_translated_physmap)) + return 0; + for (i = 0; i < count; i++) { unsigned long mfn = __pfn_to_mfn(page_to_pfn(pages[i])); unsigned long pfn = page_to_pfn(pages[i]); -- 2.15.1 Attachment:
signature.asc _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |