Skip to content

performance regression and occasionnal dead-lock when linking with llvm 3.9 #36905

Closed
@semarie

Description

@semarie

I experiment some problems with rustc 1.12.0 (under OpenBSD):

There are two kind of problems:

  • performance regression from stable to stable : I saw lot of xxx has been running for over 60 seconds messages in make check
  • occasionnally rustc compiler dead-lock: all threads are in thrslee state.

For the performance problem, by tracing the syscalls I saw lot of __thrsleep(), __thrwakeup() and sched_yield() dance: the process makes high usage of thread-syscalls, and it slows down.

Some stats for 1 second, I have 16314 syscalls:

  • 7344 __thrwakeup
  • 7343 __thrsleep
  • 1605 sched_yield
  • 11 mmap
  • 4 write
  • 4 mquery
  • 2 munmap
  • 1 fstat

For this second, by thread:

  • thread 1031567:
    • 1850 __thrsleep
    • 1850 __thrwakeup
    • 443 sched_yield
  • thread 1048099
    • 1848 __thrsleep
    • 1848 __thrwakeup
    • 298 sched_yield
  • thread 1056179:
    • 1844 __thrsleep
    • 1844 __thrwakeup
    • 483 sched_yield
    • 4 write
    • 3 mmap
    • 2 mquery
    • 1 munmap
    • 1 fstat
  • thread 1065035:
    • 1801 __thrsleep
    • 1802 __thrwakeup
    • 381 sched_yield
    • 8 mmap
    • 2 mquery
    • 1 munmap

I am unsure about the way to better describe the problem or reduce it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions