[PATCH] D32354: [ELF] - Set DF_STATIC_TLS flag for i386 target.

George Rimar via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 26 10:05:19 PDT 2017


grimar updated this revision to Diff 96776.
grimar added a comment.

Review comments addressed. Perfomance difference seems varies.
I observed from no difference to about 2%. Each run has 25 iterations.

**Chromium**:
Before patch:

  3024,298420      task-clock (msec)         #    1,000 CPUs utilized            ( +-  0,23% )
            1      context-switches          #    0,000 K/sec                    ( +- 11,47% )
            1      cpu-migrations            #    0,000 K/sec                    ( +- 16,67% )
      168 021      page-faults               #    0,056 M/sec                    ( +-  0,15% )
  
  3,024534666 seconds time elapsed                                          ( +-  0,23% )

After patch:

  3028,392936      task-clock (msec)         #    1,000 CPUs utilized            ( +-  0,17% )
            1      context-switches          #    0,000 K/sec                    ( +- 11,47% )
            1      cpu-migrations            #    0,000 K/sec                    ( +- 11,47% )
      167 843      page-faults               #    0,055 M/sec                    ( +-  0,14% )
  
  3,028637012 seconds time elapsed                                          ( +-  0,17% )

3,028637012 / 3,024534666 == 1.001x

**Clang**:
Before patch:

   444,407019      task-clock (msec)         #    0,998 CPUs utilized            ( +-  0,23% )
            0      context-switches          #    0,000 K/sec                    ( +- 46,77% )
            0      cpu-migrations            #    0,000 K/sec                    ( +- 55,28% )
       54 471      page-faults               #    0,123 M/sec                    ( +-  0,08% )
  
  0,445156259 seconds time elapsed                                          ( +-  0,26% )

After patch:

   447,810554      task-clock (msec)         #    0,999 CPUs utilized            ( +-  0,24% )
            0      context-switches          #    0,000 K/sec                    ( +- 40,82% )
            0      cpu-migrations            #    0,000 K/sec                    ( +- 69,22% )
       54 492      page-faults               #    0,122 M/sec                    ( +-  0,04% )
  0,448175370 seconds time elapsed                                          ( +-  0,25% )

0,448175370 / 0,445156259 == 1.003x

**ScyllaDB**:
Before patch:

  2301,014053      task-clock (msec)         #    0,999 CPUs utilized            ( +-  0,24% )
            1      context-switches          #    0,000 K/sec                    ( +- 21,08% )
            1      cpu-migrations            #    0,000 K/sec                    ( +- 18,09% )
      288 479      page-faults               #    0,125 M/sec                    ( +-  0,06% )
  2,302234392 seconds time elapsed                                          ( +-  0,24% )  

After patch:

  2347,685157      task-clock (msec)         #    1,000 CPUs utilized            ( +-  0,23% )
            1      context-switches          #    0,000 K/sec                    ( +- 17,46% )
            1      cpu-migrations            #    0,000 K/sec                    ( +- 18,09% )
      288 911      page-faults               #    0,123 M/sec                    ( +-  0,04% )
  2,348484871 seconds time elapsed                                          ( +-  0,23% )
     

2,348484871 / 2,302234392 == 1.02x

Not sure how much that is acceptable. Should we use approach from previous diff which never
affected on perfomance ?


https://reviews.llvm.org/D32354

Files:
  ELF/Config.h
  ELF/Relocations.cpp
  ELF/SyntheticSections.cpp
  ELF/Target.cpp
  ELF/Target.h
  test/ELF/Inputs/i386-static-tls-model1.s
  test/ELF/Inputs/i386-static-tls-model2.s
  test/ELF/Inputs/i386-static-tls-model3.s
  test/ELF/Inputs/i386-static-tls-model4.s
  test/ELF/aarch64-tls-ie.s
  test/ELF/i386-static-tls-model.s
  test/ELF/i386-tls-ie-shared.s
  test/ELF/tls-dynamic-i686.s
  test/ELF/tls-dynamic.s
  test/ELF/tls-got.s
  test/ELF/tls-initial-exec-local.s
  test/ELF/tls-opt-iele-i686-nopic.s

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D32354.96776.patch
Type: text/x-patch
Size: 24162 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170426/2a358310/attachment.bin>


More information about the llvm-commits mailing list