Skip site navigation (1)Skip section navigation (2)
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>