Date: Sun, 13 Apr 2008 22:26:14 +0300 From: Kostik Belousov <kostikbel@gmail.com> To: Chagin Dmitry <chagin.dmitry@gmail.com> Cc: freebsd-emulation@freebsd.org, bsam@freebsd.org Subject: Re: Call for review && test: linux_kdump-1.6 Message-ID: <20080413192614.GC18958@deviant.kiev.zoral.com.ua> In-Reply-To: <20080413231135.K1079@ora.chd.net> References: <20080412181712.Y38920@ora.chd.net> <20080412145401.GA4139@freebsd.org> <20080413214624.S7426@ora.chd.net> <20080413183248.GA68642@freebsd.org> <20080413183659.GA18958@deviant.kiev.zoral.com.ua> <20080413231135.K1079@ora.chd.net>
next in thread | previous in thread | raw e-mail | index | archive | help
--XWOWbaMNXpFDWE00 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, Apr 13, 2008 at 11:11:55PM +0400, Chagin Dmitry wrote: > On Sun, 13 Apr 2008, Kostik Belousov wrote: >=20 > >On Sun, Apr 13, 2008 at 08:32:48PM +0200, Roman Divacky wrote: > >>On Sun, Apr 13, 2008 at 09:58:08PM +0400, Chagin Dmitry wrote: > >>>On Sat, 12 Apr 2008, Roman Divacky wrote: > >>> > >>>>>And question: whether i can add to linuxolator some ktr_struct > >>>>> functionality? > >>>> > >>>>sure... please provide a patch and I'll take care about it. > >>> > >>>ok, thnx :) > >>>what about EJUSTRETURN? > >>>i attached simple patch for demo only (not tested). > >> > >>uh... can you provide diff -u ? I dont understand the diff at all ;) > > > >Also, please note that the ML software strips your attachments. Either > >inline the patch, or use the plain-text content-type for it. > > >=20 > ups... ah google )) > i have understood, sorry and thnx. > Speech about that in linux_kdump it is impossible to distinguish > EJUSTRETURN from a real error. look: >=20 > --- sys/i386/i386/trap.c.orig 2008-04-13 21:39:18.000000000 +0400 > +++ sys/i386/i386/trap.c 2008-04-13 22:35:25.000000000 +0400 > @@ -1091,8 +1091,12 @@ > td->td_proc->p_pid, td->td_name, code); >=20 > #ifdef KTRACE > - if (KTRPOINT(td, KTR_SYSRET)) > - ktrsysret(code, error, td->td_retval[0]); > + if (KTRPOINT(td, KTR_SYSRET)) { > + if (error =3D=3D EJUSTRETURN) > + ktrsysret(code, 0, td->td_retval[0]); > + else > + ktrsysret(code, error, td->td_retval[0]); > + } > #endif >=20 > /* > @@ -1104,4 +1108,3 @@ >=20 > PTRACESTOP_SC(p, td, S_PT_SCX); > } > - I do not quite understand the intent of this change. EJUSTRETURN is used for two different purposes in the kernel. 1. The sigreturn family of the syscalls use it after the interrupted frame is restored to avoid the normal syscall return sequence to modify the machine state. 2. It is used by the kernel to notify the in-kernel caller code about some special condition, that nonetheless shall not be returned to the userspace. Only the first case is applicable to the kdump, and IMHO you actually destroy some information, since error =3D=3D EJUSTRETURN is reported as 0. Could you, please, provide some more arguments in the support of your proposed change ? --XWOWbaMNXpFDWE00 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.8 (FreeBSD) iEYEARECAAYFAkgCXlYACgkQC3+MBN1Mb4ihJgCg57xq2ftlYsydi5zgGFZUTXzl pAkAoPFrs3M3PmKKgBfw8z3veyBZoW32 =g7d0 -----END PGP SIGNATURE----- --XWOWbaMNXpFDWE00--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080413192614.GC18958>