Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 4 Dec 2012 23:02:55 +0200
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        xen@freebsd.org
Subject:   Call for testers: vfork(2) repair for Xen
Message-ID:  <20121204210255.GS3013@kib.kiev.ua>

next in thread | raw e-mail | index | archive | help

--jF32gZOFbnzmk3b4
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hi,
there is plain erronous special case for Xen in the handling of vfork(2)
syscall, which converts it into the fork(2), but only on Xen. I think this
was a bug to commit the change in the course of importing Xen support at al=
l.

Could somebody of you, who use paravirtualized kernels, test the patch
below. After the patched kernel is booted, just running csh(1) and
calling any external command from it, e.g. ls(1), is enough.

I already tried to solicit the testing of the fix in private, but nobody
responded. I am going to commit the change in a week, unless somebody
report a real issue with Xen pmap, uncovered by it.

diff --git a/sys/kern/kern_fork.c b/sys/kern/kern_fork.c
index b8a4825..0d2709f 100644
--- a/sys/kern/kern_fork.c
+++ b/sys/kern/kern_fork.c
@@ -150,11 +150,7 @@ sys_vfork(struct thread *td, struct vfork_args *uap)
 	int error, flags;
 	struct proc *p2;
=20
-#ifdef XEN
-	flags =3D RFFDG | RFPROC; /* validate that this is still an issue */
-#else
 	flags =3D RFFDG | RFPROC | RFPPWAIT | RFMEM;
-#endif	=09
 	error =3D fork1(td, flags, 0, &p2, NULL, 0);
 	if (error =3D=3D 0) {
 		td->td_retval[0] =3D p2->p_pid;

--jF32gZOFbnzmk3b4
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (FreeBSD)

iQIcBAEBAgAGBQJQvmT+AAoJEJDCuSvBvK1BSJ4P/A1tLbh5f2lG1rJZ18N43QF1
tB80M1jCkM0HFByLuzlZiDmQ1ewSLIhOPChBbCc6HwV5TaqHIm5wZFb0s9KaAjpz
9Hzx9GUGzMaBS0/4/WaK4yAdz3vDx3sPenSeyldOn5VM7Y8twPBOzvN2Cd8nZwMQ
IKwKSy7KycBop5jdlEw6LA4HDV5XZNCDgqjolBd0G8QCZroxiI/Wv9aB5npOH1Ia
fsLiwUBus6kc8aY4MZqe9J+SzXN7g3WK0/ZXtpzQx5KUxPFgGdXopscQq1CTfhbs
X6L4eGMJHP27qaDp3x1B/v+kYX61gujiLNA9sMJcbqs6rgpricjnC1VAbgto/3l4
cLHGPFSPWOmyi5LeEHr6qXyGhZ4LJahufrsUQeYUYCl71W2NrJC9saOaMqlzkTl/
lL1MJcw05d0vMXDrhPwVKOs2weo54EeSZLOjTFZDebKqPBNi5zQHFQ77Mj8r14WN
LXBTN4bsV1Xzyj4guI3EZMy0PE/kh61k02F+V4TF0rH4HvOKVQ41lTRVmueXY5Tc
pB/AhrpM0EOM54Qizb4VrkJf2iAw7+6LBxYGn3CYLY11+qWbvxn+0i8ieHFdT1oO
DtS1sdWfOHmgL0paW7tMp6bRs/tFSyQMiFfCJsD10gefGvlJ44vQSo8LtRhXA2Bd
3SpdVmSRJAJyRwvtKpeN
=0Ts+
-----END PGP SIGNATURE-----

--jF32gZOFbnzmk3b4--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20121204210255.GS3013>