Re: [patch] Support LLVM 7

Поиск
Список
Период
Сортировка
От Christoph Berg
Тема Re: [patch] Support LLVM 7
Дата
Msg-id 20180920201341.GA21756@msg.df7cb.de
обсуждение исходный текст
Ответ на Re: [patch] Support LLVM 7  (Andres Freund <andres@anarazel.de>)
Список pgsql-hackers
Re: Andres Freund 2018-09-20 <20180920173009.ywi5grbotl7um65p@alap3.anarazel.de>
> Hm, this is pretty helpful.  Sorry to ask, but could you a) turn on
> jit_debugging_support (connection start) b) jit_dump_bitcode.
> 
> Then reproduce again.  After that, it'd be helpful to get:
> 1) /proc/cpuinfo
> 2) the "newest" *.bc file from the data directory
> 3) a backtrace
> 4) gdb disassemble at the point of the error.

postgres=# show jit_debugging_support ;
 jit_debugging_support
-----------------------
 on
(1 Zeile)

postgres=# set jit = on;
SET
postgres=# set jit_dump_bitcode = on;
SET
postgres=# select pg_backend_pid();                                                              pg_backend_pid
----------------
          14414
(1 Zeile)

postgres=# SELECT
ARRAY(SELECTf.i FROM (                                                                             (SELECT d + g.i FROM
generate_series(4,30, 3) d ORDER BY 1)                                    UNION ALL
                                                 (SELECT d + g.i FROM generate_series(0, 30, 5) d ORDER BY 1)
                    ) f(i)
ORDERBY f.i LIMIT 10)                                                                      FROM generate_series(1, 3)
g(i);

(gdb) f 0
#0  0xf4a20c14 in evalexpr_0_15 ()
(gdb) disassemble
Dump of assembler code for function evalexpr_0_15:
   0xf4a20b58 <+0>:     mflr    r0
   0xf4a20b5c <+4>:     stw     r0,4(r1)
   0xf4a20b60 <+8>:     stwu    r1,-48(r1)
   0xf4a20b64 <+12>:    mr      r6,r4
   0xf4a20b68 <+16>:    mr      r7,r3
   0xf4a20b6c <+20>:    addi    r8,r3,8
   0xf4a20b70 <+24>:    addi    r9,r3,5
   0xf4a20b74 <+28>:    lwz     r4,4(r4)
   0xf4a20b78 <+32>:    lwz     r3,12(r3)
   0xf4a20b7c <+36>:    lwz     r10,28(r3)
   0xf4a20b80 <+40>:    lwz     r3,32(r3)
   0xf4a20b84 <+44>:    stw     r4,44(r1)
   0xf4a20b88 <+48>:    stw     r9,40(r1)
   0xf4a20b8c <+52>:    stw     r5,36(r1)
   0xf4a20b90 <+56>:    stw     r6,32(r1)
   0xf4a20b94 <+60>:    stw     r7,28(r1)
   0xf4a20b98 <+64>:    stw     r8,24(r1)
   0xf4a20b9c <+68>:    stw     r10,20(r1)
   0xf4a20ba0 <+72>:    stw     r3,16(r1)
   0xf4a20ba4 <+76>:    b       0xf4a20ba8 <evalexpr_0_15+80>
   0xf4a20ba8 <+80>:    lwz     r3,44(r1)
   0xf4a20bac <+84>:    lwz     r4,24(r3)
   0xf4a20bb0 <+88>:    cmplwi  r4,0
   0xf4a20bb4 <+92>:    bne     0xf4a20bc8 <evalexpr_0_15+112>
   0xf4a20bb8 <+96>:    b       0xf4a20bbc <evalexpr_0_15+100>
   0xf4a20bbc <+100>:   lwz     r3,44(r1)
   0xf4a20bc0 <+104>:   bl      0xf4a20c50 <deform_0_16>
   0xf4a20bc4 <+108>:   b       0xf4a20bc8 <evalexpr_0_15+112>
   0xf4a20bc8 <+112>:   lis     r3,423
   0xf4a20bcc <+116>:   ori     r4,r3,16744
   0xf4a20bd0 <+120>:   lwz     r3,28(r1)
   0xf4a20bd4 <+124>:   lwz     r5,32(r1)
   0xf4a20bd8 <+128>:   stfd    f5,1(r16)
   0xf4a20bdc <+132>:   b       0xf4a20be0 <evalexpr_0_15+136>
   0xf4a20be0 <+136>:   lwz     r3,24(r1)
   0xf4a20be4 <+140>:   lwz     r3,0(r3)
   0xf4a20be8 <+144>:   lwz     r4,40(r1)
   0xf4a20bec <+148>:   lbz     r5,0(r4)
   0xf4a20bf0 <+152>:   lwz     r6,20(r1)
   0xf4a20bf4 <+156>:   lwz     r7,16(r1)
   0xf4a20bf8 <+160>:   stb     r5,0(r7)
   0xf4a20bfc <+164>:   cmplwi  r5,0
   0xf4a20c00 <+168>:   stw     r3,12(r1)
   0xf4a20c04 <+172>:   stw     r6,8(r1)
   0xf4a20c08 <+176>:   bne     0xf4a20c24 <evalexpr_0_15+204>
   0xf4a20c0c <+180>:   b       0xf4a20c10 <evalexpr_0_15+184>
   0xf4a20c10 <+184>:   lwz     r3,12(r1)
=> 0xf4a20c14 <+188>:   .long 0xae800001
   0xf4a20c18 <+192>:   lwz     r4,8(r1)
   0xf4a20c1c <+196>:   stw     r3,0(r4)
   0xf4a20c20 <+200>:   b       0xf4a20c24 <evalexpr_0_15+204>
   0xf4a20c24 <+204>:   lwz     r3,24(r1)
   0xf4a20c28 <+208>:   lwz     r3,0(r3)
   0xf4a20c2c <+212>:   lwz     r4,40(r1)
   0xf4a20c30 <+216>:   lbz     r5,0(r4)
   0xf4a20c34 <+220>:   clrlwi  r5,r5,31
   0xf4a20c38 <+224>:   lwz     r6,36(r1)
   0xf4a20c3c <+228>:   stb     r5,0(r6)
   0xf4a20c40 <+232>:   lwz     r0,52(r1)
   0xf4a20c44 <+236>:   addi    r1,r1,48
   0xf4a20c48 <+240>:   mtlr    r0
   0xf4a20c4c <+244>:   blr
End of assembler dump.

Program received signal SIGSEGV, Segmentation fault.
0xf4a20c14 in evalexpr_0_15 ()
(gdb) bt f
#0  0xf4a20c14 in evalexpr_0_15 ()
No symbol table info available.
#1  0xf4a41b90 in ExecRunCompiledExpr (state=0x1a740bc, econtext=0x1a72e60, isNull=0xffe17c2b)
    at ./build/../src/backend/jit/llvm/llvmjit_expr.c:2591
        cstate = <optimized out>
        func = 0xf4a20b58 <evalexpr_0_15>
#2  0x00c2d39c in ExecEvalExprSwitchContext (isNull=0xffe17c2b, econtext=<optimized out>,
    state=0x1a740bc) at ./build/../src/include/executor/executor.h:303
        retDatum = <optimized out>
        oldContext = 0x1a06cc0
        retDatum = <optimized out>
        oldContext = <optimized out>
#3  ExecProject (projInfo=0x1a740b8) at ./build/../src/include/executor/executor.h:337
        econtext = <optimized out>
        state = 0x1a740bc
        slot = 0x1a74020
        isnull = 252
        econtext = <optimized out>
        state = <optimized out>
        slot = <optimized out>
        isnull = <optimized out>
#4  ExecScan (node=<optimized out>, accessMtd=accessMtd@entry=0xc3ce50 <FunctionNext>,
    recheckMtd=recheckMtd@entry=0xc3cdf0 <FunctionRecheck>)
    at ./build/../src/backend/executor/execScan.c:201
        slot = <optimized out>
        econtext = <optimized out>
        qual = 0x0
        projInfo = 0x1a740b8
#5  0x00c3ce3c in ExecFunctionScan (pstate=<optimized out>)
    at ./build/../src/backend/executor/nodeFunctionscan.c:270
        node = <optimized out>
#6  0x00c2b280 in ExecProcNodeFirst (node=0x1a72dd8)
    at ./build/../src/backend/executor/execProcnode.c:445
No locals.
#7  0x00c23058 in ExecProcNode (node=0x1a72dd8)
    at ./build/../src/include/executor/executor.h:237
No locals.
#8  ExecutePlan (execute_once=<optimized out>, dest=0x1a6a878, direction=<optimized out>,
    numberTuples=<optimized out>, sendTuples=<optimized out>, operation=CMD_SELECT,
    use_parallel_mode=<optimized out>, planstate=0x1a72dd8, estate=0x1a06d50)
    at ./build/../src/backend/executor/execMain.c:1721
        slot = <optimized out>
        current_tuple_count = 0
        slot = <optimized out>
        current_tuple_count = <optimized out>
#9  standard_ExecutorRun (queryDesc=0x1960d50, direction=<optimized out>,
    count=<optimized out>, execute_once=<optimized out>)
    at ./build/../src/backend/executor/execMain.c:362
        estate = 0x1a06d50
        operation = CMD_SELECT
        dest = 0x1a6a878
        sendTuples = <optimized out>
        oldcontext = 0x1960cc0
        __func__ = "standard_ExecutorRun"
#10 0x00c23284 in ExecutorRun (queryDesc=queryDesc@entry=0x1960d50,
    direction=direction@entry=ForwardScanDirection, count=<optimized out>,
    execute_once=<optimized out>) at ./build/../src/backend/executor/execMain.c:305
No locals.
#11 0x00dcd3a0 in PortalRunSelect (portal=portal@entry=0x198d890, forward=forward@entry=true,
    count=0, count@entry=2147483647, dest=dest@entry=0x1a6a878)
    at ./build/../src/backend/tcop/pquery.c:932
        queryDesc = 0x1960d50
        direction = <optimized out>
        nprocessed = <optimized out>
        __func__ = "PortalRunSelect"
#12 0x00dcee7c in PortalRun (portal=portal@entry=0x198d890, count=count@entry=2147483647,
    isTopLevel=isTopLevel@entry=true, run_once=run_once@entry=true, dest=dest@entry=0x1a6a878,
    altdest=altdest@entry=0x1a6a878,
    completionTag=completionTag@entry=0xffe1800c ".\363W\223\307g0@")
    at ./build/../src/backend/tcop/pquery.c:773
        save_exception_stack = 0xffe18160
        save_context_stack = 0x0
        local_sigjmp_buf = {{__jmpbuf = {-32516271, -1998838, 20072133, 0, 0, -1998838,
              27249760, 27699320, 19171432, 19171820, 2147483647, -1998836, 26483320,
              -1998836, 26794128, 2, 19171840, 26476288, 26794128, 19144432, 19171844,
              671228962, 0 <repeats 36 times>, -1, 27691048, 0, 0, -1, 0 <repeats 49 times>},
            __mask_was_saved = 0, __saved_mask = {__val = {15993932, 19161904, 671228488,
                4292968320, 26456480, 19162012, 26802336, 4292968336, 15993932, 4292968460,
                671228488, 26476288, 26476144, 19164812, 26802336, 4292968368, 16146884,
                19164812, 26483320, 4292968384, 16145016, 2, 0, 17767752, 26483304, 19087032,
                2, 4292968400, 10863184, 19144432, 2, 4292968432}}}}
        result = <optimized out>
        nprocessed = <optimized out>
        saveTopTransactionResourceOwner = 0x1968c88
        saveTopTransactionContext = 0x19fcc60
        saveActivePortal = 0x0
        saveResourceOwner = 0x1968c88
        savePortalContext = 0x0
        saveMemoryContext = 0x19fcc60
        __func__ = "PortalRun"
#13 0x00dca4ec in exec_simple_query (
    query_string=0x193ff00 "SELECT\n", ' ' <repeats 12 times>, "ARRAY(SELECT f.i FROM (\n", ' ' <repeats 16 times>,
"(SELECTd + g.i FROM generate_series(4, 30, 3) d ORDER BY 1)\n", ' ' <repeats 16 times>, "UNION ALL\n", ' ' <repeats 16
times>,"(SELECT d + g.i FROM generate_series(0"...) at ./build/../src/backend/tcop/postgres.c:1122
 
        parsetree = 0x1941a50
        portal = 0x198d890
        snapshot_set = <optimized out>
        commandTag = <optimized out>
        completionTag =
".\363W\223\307g0@\000\307sl\000\000\000\002\000\000\000\001\000\000\000\001\000\000\000\001\001$\211\374\001\226tP\377\341\201\060\001\223\377\000\001$fh\000\000\001>\377\341\200`\000\364\264$\001$\211",
<incompletesequence \374>
 
        querytree_list = <optimized out>
        plantree_list = <optimized out>
        receiver = 0x1a6a878
        format = 61
        dest = DestRemote
        oldcontext = 0x19fcc60
        parsetree_list = 0x1941a78
        parsetree_item = 0x1941a68
        save_log_statement_stats = <optimized out>
        was_logged = false
        use_implicit_block = <optimized out>
        msec_str =
".\363W\223\307g0@\000\307sl\000\000\000\002\000\000\000\001\000\000\000\001\000\000\000\001\001$\211",<incomplete
sequence\374>
 
        __func__ = "exec_simple_query"
#14 0x00dcbfcc in PostgresMain (argc=<optimized out>, argv=argv@entry=0x1967450,
    dbname=<optimized out>, username=<optimized out>)
    at ./build/../src/backend/tcop/postgres.c:4153
        query_string = 0x193ff00 "SELECT\n", ' ' <repeats 12 times>, "ARRAY(SELECT f.i FROM (\n", ' ' <repeats 16
times>,"(SELECT d + g.i FROM generate_series(4, 30, 3) d ORDER BY 1)\n", ' ' <repeats 16 times>, "UNION ALL\n", ' '
<repeats16 times>, "(SELECT d + g.i FROM generate_series(0"...
 
        firstchar = 81
        input_message = {
          data = 0x193ff00 "SELECT\n", ' ' <repeats 12 times>, "ARRAY(SELECT f.i FROM (\n", ' ' <repeats 16 times>,
"(SELECTd + g.i FROM generate_series(4, 30, 3) d ORDER BY 1)\n", ' ' <repeats 16 times>, "UNION ALL\n", ' ' <repeats 16
times>,"(SELECT d + g.i FROM generate_series(0"..., len = 318, maxlen = 1024, cursor = 318}
 
        local_sigjmp_buf = {{__jmpbuf = {-32560447, 14233748, 20054449, 26612304, 19171644,
              19545576, -1997596, 19545448, -1997608, 1537473521, 5, 1537473887, 0, 19171028,
              1, 19171836, 26637392, 26637168, 19171840, 19143524, 19171836, 671097412,
              0 <repeats 40 times>, -1, 0 <repeats 49 times>}, __mask_was_saved = 1,
            __saved_mask = {__val = {0, 0, 4, 4292971016, 15, 0, 4292971016, 4292969328, 0, 0,
                4294967295, 0, 0, 19171648, 4294967295, 19171644, 224, 19143524, 26628416,
                4292969360, 13022924, 0, 4294967295, 0, 116, 4150968980, 26628416, 0,
                13023288, 0, 0, 4292969424}}}}
        send_ready_for_query = false
        disable_idle_in_transaction_timeout = false
        __func__ = "PostgresMain"
#15 0x00d35ebc in BackendRun (port=0x1965140)
    at ./build/../src/backend/postmaster/postmaster.c:4361
        ac = 1
        secs = 590789147
        usecs = 972771
        i = 1
        av = 0x1967450
        maxac = <optimized out>
        av = <optimized out>
        maxac = <optimized out>
        ac = <optimized out>
        secs = <optimized out>
        usecs = <optimized out>
        i = <optimized out>
        __func__ = "BackendRun"
#16 BackendStartup (port=0x1965140) at ./build/../src/backend/postmaster/postmaster.c:4033
        bn = 0x1961250
        pid = <optimized out>
        bn = <optimized out>
        pid = <optimized out>
        __func__ = "BackendStartup"
        save_errno = <optimized out>
#17 ServerLoop () at ./build/../src/backend/postmaster/postmaster.c:1706
        port = 0x1965140
        i = <optimized out>
        rmask = {fds_bits = {16, 0 <repeats 31 times>}}
        selres = <optimized out>
        now = <optimized out>
        readmask = {fds_bits = {24, 0 <repeats 31 times>}}
        nSockets = 5
        last_lockfile_recheck_time = 1537473887
        last_touch_time = 1537473521
        __func__ = "ServerLoop"
#18 0x00d36bdc in PostmasterMain (argc=<optimized out>, argv=<optimized out>)
    at ./build/../src/backend/postmaster/postmaster.c:1379
        opt = <optimized out>
        status = <optimized out>
        userDoption = <optimized out>
        listen_addr_saved = <optimized out>
        i = <optimized out>
        output_config_variable = <optimized out>
        __func__ = "PostmasterMain"
#19 0x00a4e050 in main (argc=5, argv=0x193b0e0) at ./build/../src/backend/main/main.c:228
No locals.


$ cat /proc/cpuinfo
processor       : 0
cpu             : POWER8 (architected), altivec supported
clock           : 3425.000000MHz
revision        : 2.1 (pvr 004b 0201)
...
processor       : 23
cpu             : POWER8 (architected), altivec supported
clock           : 3425.000000MHz
revision        : 2.1 (pvr 004b 0201)

timebase        : 512000000
platform        : pSeries
model           : IBM,8284-22A
machine         : CHRP IBM,8284-22A
MMU             : Hash


I'll leave the session open for a while if you have more questions.

Christoph

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Laurenz Albe
Дата:
Сообщение: Unclear error message
Следующее
От: Kevin Grittner
Дата:
Сообщение: Re: Allow parallelism for deferrable serializable txns