Results 1 to 3 of 3

Thread: dd_rescue causing illegal instruction

  1. #1

    Default dd_rescue causing illegal instruction

    On two machines with "openSUSE 13.1 "Bottle",
    dd_rescue (dd_rescue-1.40-2.1.2.i586) is hanging, even when called without any parameters.
    strace shows that this is caused by SIGILL:
    Code:
    execve("/usr/bin/dd_rescue", ["dd_rescue"], [/* 60 vars */]) = 0
    brk(0)                                  = 0x94f0000
    mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7704000
    access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
    open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
    fstat64(3, {st_mode=S_IFREG|0644, st_size=106332, ...}) = 0
    mmap2(NULL, 106332, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb76ea000
    close(3)                                = 0
    open("/lib/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
    read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320\n\0\0004\0\0\0"..., 512) = 512
    fstat64(3, {st_mode=S_IFREG|0755, st_size=17288, ...}) = 0
    mmap2(NULL, 16512, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb76e5000
    mmap2(0xb76e8000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xb76e8000
    close(3)                                = 0
    open("/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
    read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\233\1\0004\0\0\0"..., 512) = 512
    fstat64(3, {st_mode=S_IFREG|0755, st_size=1978006, ...}) = 0
    mmap2(NULL, 1772252, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7534000
    mmap2(0xb76df000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1ab000) = 0xb76df000
    mmap2(0xb76e2000, 10972, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb76e2000
    close(3)                                = 0
    mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7533000
    set_thread_area({entry_number:-1 -> 6, base_addr:0xb7533700, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
    mprotect(0xb76df000, 8192, PROT_READ)   = 0
    mprotect(0xb76e8000, 4096, PROT_READ)   = 0
    mprotect(0x8055000, 4096, PROT_READ)    = 0
    mprotect(0xb7727000, 4096, PROT_READ)   = 0
    munmap(0xb76ea000, 106332)              = 0
    rt_sigaction(SIGILL, {0x804b000, [ILL], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0
    rt_sigaction(SIGSEGV, {0x804b000, [SEGV], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0
    --- SIGILL {si_signo=SIGILL, si_code=ILL_ILLOPN, si_addr=0x8051480} ---
    sigreturn() (mask [])                   = 0
    --- SIGILL {si_signo=SIGILL, si_code=ILL_ILLOPN, si_addr=0x8051480} ---
    sigreturn() (mask [])                   = 0
    --- SIGILL {si_signo=SIGILL, si_code=ILL_ILLOPN, si_addr=0x8051480} ---
    sigreturn() (mask [])                   = 0
    Machine number one is:
    Code:
    Linux 3.11.6-4-default #1 SMP Wed Oct 30 18:04:56 UTC 2013 (e6d4a27) i686 athlon i386 GNU/Linux
    cat /proc/cpuinfo
    processor       : 0
    vendor_id       : AuthenticAMD
    cpu family      : 6
    model           : 4
    model name      : AMD Athlon(tm) Processor
    stepping        : 2
    cpu MHz         : 1208.745
    cache size      : 256 KB
    fdiv_bug        : no
    f00f_bug        : no
    coma_bug        : no
    fpu             : yes
    fpu_exception   : yes
    cpuid level     : 1
    wp              : yes
    flags           : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr syscall mmxext 3dnowext 3dnow
    bogomips        : 2417.49
    clflush size    : 32
    cache_alignment : 32
    address sizes   : 36 bits physical, 32 bits virtual
    power management:
    Machine number two is:
    Code:
    Linux 3.11.6-4-default #1 SMP Wed Oct 30 18:04:56 UTC 2013 (e6d4a27) i686 i686 i386 GNU/Linux
    cat /proc/cpuinfo
    processor       : 0
    vendor_id       : GenuineIntel
    cpu family      : 6
    model           : 7
    model name      : Pentium III (Katmai)
    stepping        : 3
    microcode       : 0x5
    cpu MHz         : 548.327
    cache size      : 512 KB
    fdiv_bug        : no
    f00f_bug        : no
    coma_bug        : no
    fpu             : yes
    fpu_exception   : yes
    cpuid level     : 2
    wp              : yes
    flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 mmx fxsr sse
    bogomips        : 1096.65
    clflush size    : 32
    cache_alignment : 32
    address sizes   : 36 bits physical, 32 bits virtual
    power management:
    Is it possible that this version of dd_rescue is compiled for using "sse2" or similar without fallback on older cpus?
    And if this is true, why?

  2. #2

    Default AW: dd_rescue causing illegal instruction

    Quote Originally Posted by HoagieGunn View Post
    Is it possible that this version of dd_rescue is compiled for using "sse2" or similar without fallback on older cpus?
    And if this is true, why?
    Well, it is not explicitely built with SSE2 instructions by openSUSE.
    But dd_rescue's Makefile activates optimized SSE2 versions of some functions by default even on 32bit systems.

    Please consider filing a bug report at http://bugzilla.novell.com/ (same username/password as here).

  3. #3

    Default Re: dd_rescue causing illegal instruction

    Thank you very much, wolfi323.
    Bug 860779 Submitted.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •