Re: 8.0RC2 amd64 - kernel panic running make buildworld

From: Attilio Rao <attilio_at_freebsd.org>
Date: Tue, 17 Nov 2009 15:30:32 +0100
2009/11/17 Andriy Gapon <avg_at_icyb.net.ua>:
> on 14/11/2009 11:36 Andriy Gapon said the following:
>> on 14/11/2009 03:21 Kai Gallasch said the following:
>>> Hi. The patch did help for surviving a makeworld.
>>>
>>> But now I have another machine check exception with this server. It
>>> happened with your patch active, and vm.pmap.pg_ps_enabled="1". I
>>> copied data from a remote server by NFS mount to the instable server.
>>> Destination was a local ZFS filesystem.
>>>
>>> ----------------
>>>
>>> sonnenkraft:~ # MCA: CPU 7 UNCOR PCC OVER DTLB L1 error
>>> MCA: Address 0xff800d860000
>>
>> It's interesting because the same happened to me too, only in my case it was
>> zpool scrub that triggered it.
>> I will try to look into this further.
>>
>
> Kai,
>
> the latest patch in the works, it's against a clean tree:
>
> diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c
> index 44b71f3..ff35eb9 100644
> --- a/sys/amd64/amd64/pmap.c
> +++ b/sys/amd64/amd64/pmap.c
> _at__at_ -2365,6 +2365,9 _at__at_ pmap_demote_pde
>         * the read above and the store below.
>         */
>        pde_store(pde, newpde);
> +       pmap_invalidate_page(pmap, va);
> +       clflush((vm_offset_t)vtopde(va));
> +       mfence();
>
>        /*
>         * Invalidate a stale recursive mapping of the page table page.
> _at__at_ -2981,6 +2984,11 _at__at_ setpte:
>         * Map the superpage.
>         */
>        pde_store(pde, PG_PS | newpde);
> +       pmap_invalidate_range(pmap, va & ~PDRMASK, (va & ~PDRMASK) + NBPDR);
> +       clflush((vm_offset_t)vtopde(va));
> +       mfence();
> +       if (va >= VM_MAXUSER_ADDRESS)
> +               pmap_invalidate_page(pmap, (vm_offset_t)vtopte(va));
>
>        pmap_pde_promotions++;
>        CTR2(KTR_PMAP, "pmap_promote_pde: success for va %#lx"
>

I think you should use mb() rather than mfence().

Thanks,
Attilio


-- 
Peace can only be achieved by understanding - A. Einstein
Received on Tue Nov 17 2009 - 13:30:35 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:58 UTC