Re: ZFS: i/o error - all block copies unavailable after upgrading to r225312

From: Peter Jeremy <peterjeremy_at_acm.org>
Date: Sat, 10 Sep 2011 21:03:10 +1000
On 2011-Sep-10 12:46:50 +0300, Andriy Gapon <avg_at_FreeBSD.org> wrote:
>on 10/09/2011 11:07 Andriy Gapon said the following:
>> Actually, removing either -mrtd _or_ -fno-unit-at-a-time produces the correct
>> code.  Puzzled.
>
>The problem is reproducible with base gcc and gcc42, it is not reproducible
>with gcc45, gcc46 and clang.

I was just checking gcc44 & gcc46.  gcc44 inlines the entire function
and I couldn't quickly find the offending code to see if the bug was
there or not.  I agree you've triggered a gcc bug but I'm not sure of
the correct approach to fix it.  I've tried a few trivial code
transforms within vdev_read_phys() but haven't stumbled on one that
avoids the problem.

Since -mrtd changes the calling convention, it's a more intrusive
change.  I'm not sure if there's any simple way to alter CFLAGS for
a single file (since we only want to alter the zfsboot.c compilation.

-- 
Peter Jeremy

Received on Sat Sep 10 2011 - 09:03:15 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:17 UTC