All of lore.kernel.org
 help / color / mirror / Atom feed
From: bugzilla-daemon@freedesktop.org
To: dri-devel@lists.freedesktop.org
Subject: [Bug 91503] [r600g] regression: SB-related NI/Turks crash on 'gsraytrace'
Date: Thu, 30 Jul 2015 02:33:56 +0000	[thread overview]
Message-ID: <bug-91503-502@http.bugs.freedesktop.org/> (raw)


[-- Attachment #1.1: Type: text/plain, Size: 16720 bytes --]

https://bugs.freedesktop.org/show_bug.cgi?id=91503

            Bug ID: 91503
           Summary: [r600g] regression: SB-related NI/Turks crash on
                    'gsraytrace'
           Product: Mesa
           Version: git
          Hardware: x86-64 (AMD64)
                OS: Linux (All)
            Status: NEW
          Severity: critical
          Priority: medium
         Component: Drivers/Gallium/r600
          Assignee: dri-devel@lists.freedesktop.org
          Reporter: Dieter@nuetzel-hh.de
        QA Contact: dri-devel@lists.freedesktop.org

Created attachment 117455
  --> https://bugs.freedesktop.org/attachment.cgi?id=117455&action=edit
gsraytrace.png

Linux 4.1.3
Mesa 10.7.0-devel (git-c73a13e)
LLVM version 3.8.0svn
Turks XT | [Radeon HD 6670] | (ChipID = 0x6758)

With R600_DEBUG=nosb it works, but image corruption (see gsraytrace.png)

With R600_DEBUG=nollvm I got this one time:
*** Error in `./gsraytrace': corrupted double-linked list: 0x000000000231ce00
***

It worked (with little image corruption) some weeks ago.
So it is mostly a regression, sorry not bisected, yet.

/home/dieter> ./gsraytrace
GL_RENDERER = Gallium 0.4 on AMD TURKS                                          

ESC                 = exit demo                                                 
left mouse + drag   = rotate camera                                             

Segmentation fault (core dumped)

[ 6997.080787] gsraytrace[6277]: segfault at 218 ip 00007f1ac3df5062 sp
00007fffd07d7980 error 4 in r600_dri.so[7f1ac39e8000+5d3000]

Core was generated by `./gsraytrace'.                                           
Program terminated with signal SIGSEGV, Segmentation fault.                     
#0  r600_sb::bc_parser::prepare_ir (this=this@entry=0x7ffd0c763950) at
sb/sb_bc_parser.cpp:649      
649                             depart_node *dep =
sh->create_depart(loop_stack.top());             
Missing separate debuginfos, use: zypper install
glibc-debuginfo-2.19-16.15.1.x86_64 libGLEW1_10-debuginfo-1.10.0-2.3.1.x86_64
libelf1-debuginfo-0.158-4.5.1.x86_64 libexpat1-debuginfo-2.1.0-14.1.2.x86_64
libgcc_s1-debuginfo-4.8.3+r212056-2.2.4.x86_64
libglut3-debuginfo-2.8.1-4.2.1.x86_64 libncurses5-debuginfo-5.9-52.2.3.x86_64
libopenssl1_0_0-debuginfo-1.0.1k-2.24.1.x86_64
libstdc++6-debuginfo-4.8.3+r212056-2.2.4.x86_64
libtxc_dxtn-debuginfo-1.0.1-5.1.x86_64 libudev1-debuginfo-210-25.16.1.x86_64
libz1-debuginfo-1.2.8-5.1.2.x86_64                                              

(gdb) list
644                                     rep->move(c->parent->first, c);         
645                             c->replace_with(rep);                           
646                             sh->simplify_dep_rep(rep);                      
647                     } else if (c->bc.op == CF_OP_LOOP_BREAK) {              
648                             assert(!loop_stack.empty());                    
649                             depart_node *dep =
sh->create_depart(loop_stack.top());             
650                             if (c->parent->first != c)                      
651                                     dep->move(c->parent->first, c);
652                             c->replace_with(dep);
653                             sh->simplify_dep_rep(dep);

(gdb) bt full
#0  r600_sb::bc_parser::prepare_ir (this=this@entry=0x7ffd0c763950) at
sb/sb_bc_parser.cpp:649
        dep = <optimized out>
        c = 0x11c8a30
        flags = 64
        I = 
        E = <optimized out>
#1  0x00007f853df86389 in r600_sb::bc_parser::prepare
(this=this@entry=0x7ffd0c763950)
    at sb/sb_bc_parser.cpp:107
        r = <optimized out>
#2  0x00007f853df879a1 in r600_sb_bytecode_process (rctx=rctx@entry=0xb4f680, 
    bc=bc@entry=0x119fcf0, pshader=pshader@entry=0x119fce8,
dump_bytecode=dump_bytecode@entry=0, 
    optimize=<optimized out>) at sb/sb_core.cpp:153
        shader_id = 15
        ctx = <optimized out>
        time_start = <optimized out>
        builder = {sh = @0xcdbb60, ctx = @0x110b860, bb = {hw_class_bit =
r600_sb::HB_EG, 
            bc = std::vector of length 368, capacity 512 = {<error reading
variable>, 
          error = 18395744}
        r = <optimized out>
        parser = {ctx = @0x110b860, dec = 0x113db20, bc = 0x119fcf0, pshader =
0x119fce8, 
          dw = 0x11a81e0, bc_ndw = 512, max_cf = 59, sh = 0x11a8e10, error = 0,
slots = {{
              0x11c8498, 0x0, 0x0, 0x0, 0x0}, {0x11c7b28, 0x11c7bc0, 0x11c7c58,
0x11c7cf0, 0x0}}, 
          cgroup = 0, cf_map = std::vector of length 61, capacity 64 =
{0x11bae38, 0x11bb0e0, 
            0x11bb2e8, 0x11bb6f8, 0x11bb900, 0x11bbd10, 0x11bbf18, 0x11bc7f8,
0x11bc938, 
            0x11bcb40, 0x11bd2e0, 0x11bd4e8, 0x11bd958, 0x11bdb60, 0x11bdfd0,
0x11be1d8, 
            0x11be648, 0x11be788, 0x11be8c8, 0x11bea08, 0x11beb48, 0x11bedf0,
0x11bef30, 
            0x11bf070, 0x11bf7e8, 0x11bf928, 0x11bfd38, 0x11bff40, 0x11c0518,
0x11c0720, 
            0x11c09c8, 0x11c0d60, 0x11c1a30, 0x11c1dc8, 0x11c4450, 0x11c4658,
0x11c4ac8, 
            0x11c4c08, 0x11c4d48, 0x11c4e88, 0x11c4fc8, 0x11c5270, 0x11c53b0,
0x11c54f0, 
            0x11c5960, 0x11c5b68, 0x11c6508, 0x11c6710, 0x11c7710, 0x11c7918,
0x11c7d88, 
            0x11c7ec8, 0x11c8008, 0x11c8148, 0x11c8288, 0x11c8530, 0x11c8670,
0x11c87b0, 
            0x11c88f0, 0x11c8a30, 0x11c8b70}, 
          loop_stack = std::stack wrapping: std::deque with 0 elements,
gpr_reladdr = false}
#3  0x00007f853df6c6ca in r600_pipe_shader_create (ctx=ctx@entry=0xb4f680, 
    shader=shader@entry=0x119fcd0, key=...) at r600_shader.c:186
        rctx = 0xb4f680
        sel = 0x11872b0
        r = 0
        dump = false
        use_sb = 1
        sb_disasm = 1
        export_shader = 0
        __func__ = "r600_pipe_shader_create"
#4  0x00007f853df75c7a in r600_shader_select (ctx=ctx@entry=0xb4f680,
sel=0x11872b0, 
    dirty=dirty@entry=0x7ffd0c764618) at r600_state_common.c:763
        key = {color_two_side = 0, alpha_to_one = 0, nr_cbufs = 0, vs_as_es =
0, vs_as_gs_a = 0, 
          vs_prim_id_out = 0}
        shader = 0x119fcd0
        r = <optimized out>
        __func__ = "r600_shader_select"
#5  0x00007f853df78b3a in r600_update_derived_state (rctx=0xb4f680) at
r600_state_common.c:1189
        ctx = 0xb4f680
        ps_dirty = true
        vs_dirty = false
        need_buf_const = <optimized out>
        gs_dirty = false
        blend_disable = <optimized out>
#6  r600_draw_vbo (ctx=0xb4f680, dinfo=<optimized out>) at
r600_state_common.c:1377
        rctx = 0xb4f680
        info = {indexed = 0 '\000', mode = 0, start = 0, count = 65536,
start_instance = 0, 
          instance_count = 1, vertices_per_patch = <optimized out>, index_bias
= 0, 
          min_index = <optimized out>, max_index = <optimized out>, 
          primitive_restart = <optimized out>, restart_index = <optimized out>, 
          count_from_stream_output = <optimized out>, indirect = <optimized
out>, 
          indirect_offset = <optimized out>}
        ib = {index_size = 0, offset = 0, buffer = 0x0, user_buffer = 0x0}
        i = <optimized out>
        cs = 0xc47260
#7  0x00007f853ded6877 in u_vbuf_draw_vbo (mgr=0xcbfa30, info=0x7ffd0c7648b0)
at util/u_vbuf.c:1159
        pipe = 0xb4f680
        start_vertex = <optimized out>
        min_index = <optimized out>
        num_vertices = <optimized out>
        unroll_indices = 0 '\000'
        used_vb_mask = <optimized out>
        user_vb_mask = 0
        incompatible_vb_mask = 0
        new_info = {indexed = 128 '\200', mode = 0, start = 18184896, count =
0, 
          start_instance = 18468848, instance_count = 0, vertices_per_patch =
16, 
          index_bias = 32645, min_index = 8, max_index = 0, primitive_restart =
160 '\240', 
          restart_index = 0, count_from_stream_output = 0xca8518, indirect =
0xca7690, 
          indirect_offset = 18229808}
#8  0x00007f853dd50b6f in st_draw_vbo (ctx=0xc68460, prims=<optimized out>, 
    nr_prims=<optimized out>, ib=0x0, index_bounds_valid=<optimized out>,
min_index=0, 
    max_index=65535, tfb_vertcount=0x0, indirect=0x0) at
state_tracker/st_draw.c:288
        ibuffer = {index_size = 0, offset = 0, buffer = 0x0, user_buffer = 0x0}
        info = {indexed = 0 '\000', mode = 0, start = 0, count = 65536,
start_instance = 0, 
          instance_count = 1, vertices_per_patch = 3, index_bias = 0, min_index
= 0, 
          max_index = 65535, primitive_restart = 0 '\000', restart_index = 0, 
          count_from_stream_output = 0x0, indirect = 0x0, indirect_offset = 0}
        arrays = <optimized out>
        i = <optimized out>
#9  0x00007f853dd208d7 in vbo_draw_arrays (ctx=0xc68460, mode=0, start=0,
count=65536, 
    numInstances=1, baseInstance=0) at vbo/vbo_exec_array.c:645
        exec = 0xca98c8
        prim = {{mode = 0, indexed = 0, begin = 1, end = 1, weak = 0,
no_current_update = 0, 
            is_indirect = 0, pad = 0, start = 0, count = 65536, basevertex = 0,
num_instances = 1, 
            base_instance = 0, indirect_offset = 0}, {mode = 0, indexed = 0,
begin = 0, end = 0, 
            weak = 0, no_current_update = 0, is_indirect = 0, pad = 0, start =
0, count = 0, 
            basevertex = 0, num_instances = 0, base_instance = 0,
indirect_offset = 0}}
#10 0x0000000000403421 in Draw() ()
No symbol table info available.
#11 0x00007f8542518154 in ?? () from /usr/lib64/libglut.so.3
No symbol table info available.
#12 0x00007f854251b9b9 in fgEnumWindows () from /usr/lib64/libglut.so.3
No symbol table info available.
#13 0x00007f854251870d in glutMainLoopEvent () from /usr/lib64/libglut.so.3
No symbol table info available.
#14 0x00007f8542518f0d in glutMainLoop () from /usr/lib64/libglut.so.3
No symbol table info available.
#15 0x0000000000402ff0 in main ()
No symbol table info available.

(gdb) info registers all
rax            0x220    544
rbx            0x11c8a30        18647600
rcx            0x0      0
rdx            0x1169be8        18258920
rsi            0x0      0
rdi            0x0      0
rbp            0x0      0x0
rsp            0x7ffd0c763490   0x7ffd0c763490
r8             0x114c4a8        18138280
r9             0x11af930        18544944
r10            0x11af930        18544944
r11            0x11af940        18544960
r12            0x38     56
r13            0x7ffd0c763950   140724812527952
r14            0x11af2d8        18543320
r15            0x3      3
rip            0x7f853df86062   0x7f853df86062
<r600_sb::bc_parser::prepare_ir()+1938>
eflags         0x10202  [ IF RF ]
cs             0x33     51
ss             0x2b     43
ds             0x0      0
es             0x0      0
fs             0x0      0
gs             0x0      0
st0            0        (raw 0x00000000000000000000)
st1            0        (raw 0x00000000000000000000)
st2            0        (raw 0x00000000000000000000)
st3            0        (raw 0x00000000000000000000)
st4            0        (raw 0x00000000000000000000)
st5            0        (raw 0x00000000000000000000)
st6            0        (raw 0x00000000000000000000)
st7            0        (raw 0x00000000000000000000)
fctrl          0x37f    895
fstat          0x0      0
ftag           0xffff   65535
fiseg          0x0      0
fioff          0x0      0
foseg          0x0      0
fooff          0x0      0
fop            0x0      0
xmm0           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x90, 0xce, 
    0x1c, 0x1, 0x0 <repeats 12 times>}, v8_int16 = {0xce90, 0x11c, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0}, 
  v4_int32 = {0x11cce90, 0x0, 0x0, 0x0}, v2_int64 = {0x11cce90, 0x0}, 
  uint128 = 0x000000000000000000000000011cce90}
xmm1           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x40, 0xba, 
    0x1b, 0x1, 0x0, 0x0, 0x0, 0x0, 0x10, 0xbb, 0x1b, 0x1, 0x0, 0x0, 0x0, 0x0},
v8_int16 = {0xba40, 
    0x11b, 0x0, 0x0, 0xbb10, 0x11b, 0x0, 0x0}, v4_int32 = {0x11bba40, 0x0,
0x11bbb10, 0x0}, 
  v2_int64 = {0x11bba40, 0x11bbb10}, uint128 =
0x00000000011bbb1000000000011bba40}
xmm2           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x38, 0xb8, 
    0x1b, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb9, 0x1b, 0x1, 0x0, 0x0, 0x0, 0x0},
v8_int16 = {0xb838, 
    0x11b, 0x0, 0x0, 0xb900, 0x11b, 0x0, 0x0}, v4_int32 = {0x11bb838, 0x0,
0x11bb900, 0x0}, 
  v2_int64 = {0x11bb838, 0x11bb900}, uint128 =
0x00000000011bb90000000000011bb838}
xmm3           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x60, 0xb6, 
    0x1b, 0x1, 0x0, 0x0, 0x0, 0x0, 0xf8, 0xb6, 0x1b, 0x1, 0x0, 0x0, 0x0, 0x0},
v8_int16 = {0xb660, 
    0x11b, 0x0, 0x0, 0xb6f8, 0x11b, 0x0, 0x0}, v4_int32 = {0x11bb660, 0x0,
0x11bb6f8, 0x0}, 
  v2_int64 = {0x11bb660, 0x11bb6f8}, uint128 =
0x00000000011bb6f800000000011bb660}
xmm4           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0xf8, 0xb4, 
    0x1b, 0x1, 0x0, 0x0, 0x0, 0x0, 0x90, 0xb5, 0x1b, 0x1, 0x0, 0x0, 0x0, 0x0},
v8_int16 = {0xb4f8, 
    0x11b, 0x0, 0x0, 0xb590, 0x11b, 0x0, 0x0}, v4_int32 = {0x11bb4f8, 0x0,
0x11bb590, 0x0}, 
  v2_int64 = {0x11bb4f8, 0x11bb590}, uint128 =
0x00000000011bb59000000000011bb4f8}
xmm5           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x80, 0xad, 
    0x1b, 0x1, 0x0, 0x0, 0x0, 0x0, 0x38, 0xae, 0x1b, 0x1, 0x0, 0x0, 0x0, 0x0},
v8_int16 = {0xad80, 
    0x11b, 0x0, 0x0, 0xae38, 0x11b, 0x0, 0x0}, v4_int32 = {0x11bad80, 0x0,
0x11bae38, 0x0}, 
  v2_int64 = {0x11bad80, 0x11bae38}, uint128 =
0x00000000011bae3800000000011bad80}
xmm6           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0xa0, 0x42, 
    0x21, 0x1, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x42, 0x21, 0x1, 0x0, 0x0, 0x0, 0x0},
v8_int16 = {0x42a0, 
    0x121, 0x0, 0x0, 0x42d0, 0x121, 0x0, 0x0}, v4_int32 = {0x12142a0, 0x0,
0x12142d0, 0x0}, 
  v2_int64 = {0x12142a0, 0x12142d0}, uint128 =
0x00000000012142d000000000012142a0}
xmm7           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0, 0x43, 
    0x21, 0x1, 0x0, 0x0, 0x0, 0x0, 0x30, 0x43, 0x21, 0x1, 0x0, 0x0, 0x0, 0x0},
v8_int16 = {0x4300, 
    0x121, 0x0, 0x0, 0x4330, 0x121, 0x0, 0x0}, v4_int32 = {0x1214300, 0x0,
0x1214330, 0x0}, 
  v2_int64 = {0x1214300, 0x1214330}, uint128 =
0x00000000012143300000000001214300}
xmm8           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {
    0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0}, v4_int32 = {0x0, 
    0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 =
0x00000000000000000000000000000000}
xmm9           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0xd0, 0x3c, 
    0x21, 0x1, 0x0, 0x0, 0x0, 0x0, 0xe0, 0x3e, 0x21, 0x1, 0x0, 0x0, 0x0, 0x0},
v8_int16 = {0x3cd0, 
    0x121, 0x0, 0x0, 0x3ee0, 0x121, 0x0, 0x0}, v4_int32 = {0x1213cd0, 0x0,
0x1213ee0, 0x0}, 
  v2_int64 = {0x1213cd0, 0x1213ee0}, uint128 =
0x0000000001213ee00000000001213cd0}
xmm10          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {
    0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0}, v4_int32 = {0x0, 
    0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 =
0x00000000000000000000000000000000}
xmm11          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {
    0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0}, v4_int32 = {0x0, 
    0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 =
0x00000000000000000000000000000000}
xmm12          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0},
v8_int16 = {0x0, 0x0, 
    0x0, 0x0, 0x0, 0xff, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0xff0000, 0x0},
v2_int64 = {0x0, 
    0xff0000}, uint128 = 0x0000000000ff00000000000000000000}
xmm13          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {
    0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0}, v4_int32 = {0x0, 
    0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 =
0x00000000000000000000000000000000}
xmm14          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {
    0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0}, v4_int32 = {0x0, 
    0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 =
0x00000000000000000000000000000000}
xmm15          {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {
    0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0}, v4_int32 = {0x0, 
    0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 =
0x00000000000000000000000000000000}
mxcsr          0x1fa0   [ PE IM DM ZM OM UM PM ]

-- 
You are receiving this mail because:
You are the assignee for the bug.

[-- Attachment #1.2: Type: text/html, Size: 18486 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

             reply	other threads:[~2015-07-30  2:33 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-30  2:33 bugzilla-daemon [this message]
2015-08-28 23:44 ` [Bug 91503] [r600g] regression: SB-related NI/Turks crash on 'gsraytrace' bugzilla-daemon
2015-08-28 23:46 ` bugzilla-daemon
2015-08-28 23:48 ` bugzilla-daemon
2015-08-28 23:49 ` bugzilla-daemon
2015-08-28 23:49 ` bugzilla-daemon
2015-09-02 13:45 ` bugzilla-daemon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-91503-502@http.bugs.freedesktop.org/ \
    --to=bugzilla-daemon@freedesktop.org \
    --cc=dri-devel@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.