Skip to content

sched_yield spam #4496

@Jpx3

Description

@Jpx3

Openblas spams (40k interrupts/s) the sched_yield syscall, resulting in severe performance degradation.

Highest impact:

/usr/lib/x86_64-linux-gnu/libc-2.31.so(__sched_yield+0x7) [0xe14e7]
[...]/openblas/linux-x86_64/libopenblas_nolapack.so.0(sgemm_thread_nt+0xe35) [0x1f4c75]
[...]/openblas/linux-x86_64/libopenblas_nolapack.so.0(exec_blas+0xce) [0x348e8e]
[...]/openblas/linux-x86_64/libopenblas_nolapack.so.0(sgemm_thread_nt+0x4f3) [0x1f4333]
[...]/openblas/linux-x86_64/libopenblas_nolapack.so.0(sgemm_thread_tn+0x117) [0x1f5097]
[...]/openblas/linux-x86_64/libopenblas_nolapack.so.0(cblas_sgemm+0x449) [0x1215d9]
[...]
unexpected_backtracing_error [0x7fdcfc459831]

Less but still noticable impact:

/usr/lib/x86_64-linux-gnu/libc-2.31.so(__sched_yield+0x7) [0xe14e7]
[...]/openblas/linux-x86_64/libopenblas_nolapack.so.0(sgemm_thread_nt+0xe35) [0x1f4c75]
[...]/openblas/linux-x86_64/libopenblas_nolapack.so.0(openblas_read_env+0x36d) [0x34885d]
/usr/lib/x86_64-linux-gnu/libpthread-2.31.so(start_thread+0xd7) [0x7ea7]
/usr/lib/x86_64-linux-gnu/libc-2.31.so(clone+0x3f) [0xfba2f]

image

image
pick_next_task_fair, pick_next_task, update_curr, etc.. are called by the sched_yield syscall.
The percentages are global, that syscall needs >30% of my CPU

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