Bug 180788 - [xen] [panic] XEN PV kernel 9.2-BETA1 panics on boot
Summary: [xen] [panic] XEN PV kernel 9.2-BETA1 panics on boot
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: 9.2-BETA1
Hardware: Any Any
: Normal Affects Only Me
Assignee: freebsd-xen (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-07-24 07:40 UTC by Alexander Brovikov
Modified: 2014-07-04 14:46 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Brovikov 2013-07-24 07:40:00 UTC
XEN PV kernel (built from stock XEN conf file) 9.2-BETA1 panics on boot:

pid 25 (sh), uid 0: exited on signal 11
panic: removing pages from non-current pmap
cpuid = 0
KDB: enter: panic
[ thread pid 25 tid 100036 ]
Stopped at      kdb_enter+0x3a: movl    $0,kdb_why
db> 
db> bt
Tracing pid 25 tid 100036 td 0xc26f6bc0
kdb_enter(c04074b6,c04074b6,c044750f,ccb79944,0,...) at kdb_enter+0x3a/frame 0xccb7990c
panic(c044750f,0,c04465f7,e06,c01170c5,...) at panic+0x18c/frame 0xccb79938
pmap_remove_pages(c253e724,c04055fa,e8,0,c26f3000,...) at pmap_remove_pages+0x68c/frame 0xccb799b8
vmspace_exit(c26f6bc0,0,c04013a5,141,c0192e88,...) at vmspace_exit+0x90/frame 0xccb799d8
exit1(c26f6bc0,b,19,c26f320c,0,...) at exit1+0x62e/frame 0xccb79a28
sigexit(c26f6bc0,b,c0407561,b02,c05dd978,...) at sigexit+0xe43/frame 0xccb79c30
postsig(b,64,c040d916,fc,1,...) at postsig+0x20b/frame 0xccb79ce0
ast(ccb79d18) at ast+0x37f/frame 0xccb79d0c
vm86_biosret() at vm86_biosret+0x9c/frame 0xbf7fcc68
db>

How-To-Repeat: Boot XEN PV kernel via pygrub on XenServer 6.2.
9.1-RELEASE in PV mode on same XS works well.
Comment 1 Mark Linimon freebsd_committer freebsd_triage 2013-07-24 15:15:37 UTC
Responsible Changed
From-To: freebsd-bugs->freebsd-xen

Over to maintainer(s).
Comment 2 Roger Pau Monné 2013-07-26 15:53:04 UTC
This issue can be solved by reverting commit r244806. However this is
not a long term option, r244806 just exposes a bug in Xen PV pmap code
which should be fixed. It seems like Xen pmap is not able to cope with
two processes sharing the same address space.
Comment 3 Alexander Brovikov 2013-07-27 08:24:38 UTC
Confirm: workaround worked.
Comment 4 dfilter service freebsd_committer freebsd_triage 2013-08-07 10:18:34 UTC
Author: kib
Date: Wed Aug  7 09:18:21 2013
New Revision: 254053
URL: http://svnweb.freebsd.org/changeset/base/254053

Log:
  Revert the MFC of the r244237, done as r244806.  There are indeed bugs
  in XEN pmap.  The revert hides a panic with the cost of non-working
  vfork(2), which means more obscure misbehaviour in the usermode.
  Revert is only done on the stable branch to maintain the consistent
  erratic behaviour.
  
  PR:	kern/180788

Modified:
  stable/9/sys/kern/kern_fork.c
Directory Properties:
  stable/9/sys/   (props changed)

Modified: stable/9/sys/kern/kern_fork.c
==============================================================================
--- stable/9/sys/kern/kern_fork.c	Wed Aug  7 08:20:11 2013	(r254052)
+++ stable/9/sys/kern/kern_fork.c	Wed Aug  7 09:18:21 2013	(r254053)
@@ -150,7 +150,11 @@ sys_vfork(struct thread *td, struct vfor
 	int error, flags;
 	struct proc *p2;
 
+#ifdef XEN
+	flags = RFFDG | RFPROC; /* validate that this is still an issue */
+#else
 	flags = RFFDG | RFPROC | RFPPWAIT | RFMEM;
+#endif		
 	error = fork1(td, flags, 0, &p2, NULL, 0);
 	if (error == 0) {
 		td->td_retval[0] = p2->p_pid;
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
Comment 5 dfilter service freebsd_committer freebsd_triage 2013-08-07 11:08:02 UTC
Author: kib
Date: Wed Aug  7 10:07:55 2013
New Revision: 254054
URL: http://svnweb.freebsd.org/changeset/base/254054

Log:
  Revert the MFC of the r244237, done as r244806.  There are indeed bugs
  in XEN pmap.  The revert hides a panic with the cost of non-working
  vfork(2), which means more obscure misbehaviour in the usermode.
  Revert is only done on the stable branch to maintain the consistent
  erratic behaviour.
  
  PR:	kern/180788
  Approved by:	re (marius)

Modified:
  releng/9.2/sys/kern/kern_fork.c
Directory Properties:
  releng/9.2/sys/   (props changed)

Modified: releng/9.2/sys/kern/kern_fork.c
==============================================================================
--- releng/9.2/sys/kern/kern_fork.c	Wed Aug  7 09:18:21 2013	(r254053)
+++ releng/9.2/sys/kern/kern_fork.c	Wed Aug  7 10:07:55 2013	(r254054)
@@ -150,7 +150,11 @@ sys_vfork(struct thread *td, struct vfor
 	int error, flags;
 	struct proc *p2;
 
+#ifdef XEN
+	flags = RFFDG | RFPROC; /* validate that this is still an issue */
+#else
 	flags = RFFDG | RFPROC | RFPPWAIT | RFMEM;
+#endif		
 	error = fork1(td, flags, 0, &p2, NULL, 0);
 	if (error == 0) {
 		td->td_retval[0] = p2->p_pid;
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"