Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Dec 2013 05:04:32 -0800
From:      Sean Bruno <seanbru@yahoo-inc.com>
To:        Konstantin Belousov <kostikbel@gmail.com>
Cc:        "freebsd-stable@freebsd.org" <freebsd-stable@freebsd.org>
Subject:   Re: 10.0 BETA 3 with redports kernel panic
Message-ID:  <1387285472.2372.2.camel@powernoodle.corp.yahoo.com>
In-Reply-To: <20131217120019.GD59496@kib.kiev.ua>
References:  <1384029731.1819.7.camel@powernoodle.corp.yahoo.com> <20131109205030.GF59496@kib.kiev.ua> <1387217065.1407.3.camel@powernoodle.corp.yahoo.com> <1387219558.1407.6.camel@powernoodle.corp.yahoo.com> <20131217120019.GD59496@kib.kiev.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 2013-12-17 at 14:00 +0200, Konstantin Belousov wrote:
> On Mon, Dec 16, 2013 at 10:45:58AM -0800, Sean Bruno wrote:
> > On Mon, 2013-12-16 at 10:04 -0800, Sean Bruno wrote:
> > > > What is the source line for memrw+0x195 ?
> > > 
> > > My apologies for the delay on this.  Its been frustrating getting a
> > > crashdump on these machines due to their very large tmpfs usage.
> > > Currently, I am dumping a crash of 13+GB to a third HD that we had
> > > installed for this purpose.
> > > 
> > > The machines are still running RC3 of 10.0r.
> > > 
> > > I will attempt to get the requested information shortly.
> > > 
> > > sean
> > > 
> > > 
> > 
> > I've updated http://people.freebsd.org/~sbruno/redbuild_panic.txt
> > 
> > It looks like its dying in uiomove() ?
> 
> I believe I already posted the following patch, with no feedback.
> 
> diff --git a/sys/amd64/amd64/mem.c b/sys/amd64/amd64/mem.c
> index abbbb21..e371499 100644
> --- a/sys/amd64/amd64/mem.c
> +++ b/sys/amd64/amd64/mem.c
> @@ -98,7 +98,11 @@ memrw(struct cdev *dev, struct uio *uio, int flags)
>  kmemphys:
>  			o = v & PAGE_MASK;
>  			c = min(uio->uio_resid, (u_int)(PAGE_SIZE - o));
> -			error = uiomove((void *)PHYS_TO_DMAP(v), (int)c, uio);
> +			v = PHYS_TO_DMAP(v);
> +			if (v < DMAP_MIN_ADDRESS || v >= DMAP_MAX_ADDRESS ||
> +			    pmap_kextract(v) == 0)
> +				return (EFAULT);
> +			error = uiomove((void *)v, (int)c, uio);
>  			continue;
>  		}
>  		else if (dev2unit(dev) == CDEV_MINOR_KMEM) {

Will begin testing immediately

sean




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