Skip to content

v0.0.170

Choose a tag to compare

@github-actions github-actions released this 28 Aug 19:07
· 91 commits to main since this release

rePIU v0.0.170

이전 릴리스 v0.0.169 이후의 변경입니다. Linux 성능 축을 **"재진입마다 트랩 하나"**까지
좁혔습니다. 아직 고치지 않았습니다.

좁혀진 사슬

Windows Linux
프레임당 재진입 160.6 ~154 (0.90배)
재진입당 breakpoint 0.0432 1.010

재진입 비율은 Linux가 오히려 적습니다. 다른 것은 나올 때마다 트랩을 내는가이고, 이 23배가
앞서 잰 breakpoint 24.2배와 맞습니다. Windows가 트랩을 피하는 경로는 Glide direct
dispatch(재진입의 95.1%)이고, Linux에서도 87%가 그 경로로 갑니다 — 그런데 성공해도 트랩이
붙습니다.

실행 중 계측 네 줄

REPIU_EXECUTION_TIME_PROFILE=1과 REPIU_LIVE_PROFILE_INTERVAL_MS로 켭니다.

[repiu-live-profile]  veh/glide/port-io/dos/unaccounted 몫
[repiu-live-veh]      배달 수·배달당 cycle·커널 gap·클래스 셋
[repiu-live-aot]      캐시 entry/boundary/재진입, 경계 사유 다섯
[repiu-live-gdd]      direct dispatch patched/resolved/relinked/entry/success

Linux는 로더 요약에 닿지 못하므로 이 줄들이 아니면 아무것도 읽을 수 없습니다.

알려진 것

  • 성능은 아직 고치지 않았습니다.
  • 다음 질문: Windows에서 그 INT3이 왜 다시 밟히지 않는가.
  • 이 버전을 만드는 동안 추정이 네 번 틀렸습니다. 모두 카운터의 이름으로 뜻을 짐작하고
    증가 지점을 읽지 않은 경우였고, 표로 frontier에 남겼습니다.

rePIU v0.0.170

Changes since v0.0.169. The Linux performance axis is narrowed to one trap per cache
reentry
. Nothing is fixed yet.

The chain, narrowed

Windows Linux
Reentries a frame 160.6 ~154 (0.90x)
Breakpoints per reentry 0.0432 1.010

Linux reenters less often. What differs is whether leaving costs a trap, and that 23x matches
the 24.2x breakpoint excess measured earlier. The path Windows uses to avoid it is Glide direct
dispatch, at 95.1% of its reentries, and 87% of Linux's reentries take it too -- yet a success
still costs a trap.

Four lines of live instrumentation

Enabled with REPIU_EXECUTION_TIME_PROFILE=1 and REPIU_LIVE_PROFILE_INTERVAL_MS.

[repiu-live-profile]  veh / glide / port-io / dos / unaccounted shares
[repiu-live-veh]      deliveries, cycles per delivery, kernel gap, three classes
[repiu-live-aot]      cache entry / boundary / reentry, five boundary reasons
[repiu-live-gdd]      direct dispatch patched / resolved / relinked / entry / success

Linux never reaches the loader summary, so without these nothing here can be read.

Known

  • No performance has been fixed.
  • Next question: why that INT3 stops being hit on Windows.
  • Four inferences were wrong while making this version. All took a counter's meaning from its
    name instead of from where it increments; the frontier carries the table.