Source-Changes-D archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: src/sys/uvm
Hi,
It seems that r1.124 of uvm_amap.c causes random userland segfaults
on my NetBSD/amd64.
If you cannot reproduce the random segfaults, I will send my backtraces.
"Chuck Silvers" <chs%netbsd.org@localhost> writes:
> Module Name: src
> Committed By: chs
> Date: Sun Sep 20 23:03:01 UTC 2020
>
> Modified Files:
> src/sys/uvm: uvm_amap.c
>
> Log Message:
> Effectively disable the AMAP_REFALL flag because it is unsafe.
> This flag tells the amap code that it does not need to allocate ppref
> as part of adding or removing a reference, but that is only correct
> if the range of the reference being added or removed is the same
> as the range of all other references to the amap, and the point of
> this flag is exactly to try to optimize the case where the range is
> different and thus this flag would not be correct to use.
> Fixes PR 55366.
>
>
> To generate a diff of this commit:
> cvs rdiff -u -r1.123 -r1.124 src/sys/uvm/uvm_amap.c
>
> Please note that diffs are not public domain; they are subject to the
> copyright notices on the relevant files.
>
> Modified files:
>
> Index: src/sys/uvm/uvm_amap.c
> diff -u src/sys/uvm/uvm_amap.c:1.123 src/sys/uvm/uvm_amap.c:1.124
> --- src/sys/uvm/uvm_amap.c:1.123 Tue Aug 18 10:40:20 2020
> +++ src/sys/uvm/uvm_amap.c Sun Sep 20 23:03:01 2020
> @@ -1,4 +1,4 @@
> -/* $NetBSD: uvm_amap.c,v 1.123 2020/08/18 10:40:20 chs Exp $ */
> +/* $NetBSD: uvm_amap.c,v 1.124 2020/09/20 23:03:01 chs Exp $ */
>
> /*
> * Copyright (c) 1997 Charles D. Cranor and Washington University.
> @@ -35,7 +35,7 @@
> */
>
> #include <sys/cdefs.h>
> -__KERNEL_RCSID(0, "$NetBSD: uvm_amap.c,v 1.123 2020/08/18 10:40:20 chs Exp $");
> +__KERNEL_RCSID(0, "$NetBSD: uvm_amap.c,v 1.124 2020/09/20 23:03:01 chs Exp $");
>
> #include "opt_uvmhist.h"
>
> @@ -1593,7 +1593,7 @@ amap_adjref_anons(struct vm_amap *amap,
> * so that the ppref values match the current amap refcount.
> */
>
> - if (amap->am_ppref == NULL && !all && len != amap->am_nslot) {
> + if (amap->am_ppref == NULL) {
> amap_pp_establish(amap, offset);
> }
> #endif
>
--
Ryo ONODERA // ryo%tetera.org@localhost
PGP fingerprint = 82A2 DC91 76E0 A10A 8ABB FD1B F404 27FA C7D1 15F3
Home |
Main Index |
Thread Index |
Old Index