Skip to content

vDSO reference parser updates and Go workaround

Andy Lutomirski lkml 3 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v3 Latest4 patches 3 repliesIn review
  2. v23 patches 0 repliesSuperseded
  3. v13 patches 3 repliesSuperseded

Changes from v1 from the cover letter

- Improve portability of the vdso parser.
- Add an explicit ELFCLASS check in the vdso parser (why not?).
- Fix x32 build.
- Add a comment describing what the hack works around, why, and where the Go bug was introduced.

Patches in v3 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/4doc,vdso: Rename vdso_test.c to vdso_standalone_test_x86.cDocumentation/vDSO/vdso_standalone_test_x86.c Documentation/vDSO/vdso_test.c+111 -1110 replies
2/4doc,vdso: Make vDSO examples more portableDocumentation/vDSO/parse_vdso.c Documentation/vDSO/vdso_standalone_test_x86.c Documentation/vDSO/vdso_test.c+123 -410 replies
3/4x86,vdso: Add PUT_LE to store little-endian valuesarch/x86/vdso/vdso2c.c+16 -30 replies
4/4x86,vdso: Hack to keep 64-bit Go programs workingarch/x86/vdso/Makefile arch/x86/vdso/vdso-fakesections.c arch/x86/vdso/vdso2c.h+60 -133 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v3 yet.

Read the v3 thread

Cover letter [PATCH v3 0/4] vDSO reference parser updates and Go workaround

Patches 1 and 2 update the vDSO reference parser.

Despite the late submission, this might be 3.16 material: it's just documentation. If I'd been more on top of this, I would have done it for 3.15. It's also probably worthwhile given that there is at least one rather buggy vDSO parser in the wild.

Patches 3 and 4 make "Hello world" as built by Go stop segfaulting. It's a performance regression for Go programs: it causes them to stop finding any symbols in the vDSO, but that's a lot better than segfaulting.

Changes from v1:
- Improve portability of the vdso parser.
- Add an explicit ELFCLASS check in the vdso parser (why not?).
- Fix x32 build.
- Add a comment describing what the hack works around, why, and where the Go bug was introduced.

Changes from v2: Re-add patch 1. Whoops.

Andy Lutomirski (4):
doc,vdso: Rename vdso_test.c to vdso_standalone_test_x86.c doc,vdso: Make vDSO examples more portable x86,vdso: Add PUT_LE to store little-endian values x86,vdso: Hack to keep 64-bit Go programs working

 Documentation/vDSO/parse_vdso.c               |  67 ++++++++------
 Documentation/vDSO/vdso_standalone_test_x86.c | 128 ++++++++++++++++++++++++++
 Documentation/vDSO/vdso_test.c                | 107 +++++----------------
 arch/x86/vdso/Makefile                        |  18 ++--
 arch/x86/vdso/vdso-fakesections.c             |  32 +++++++
 arch/x86/vdso/vdso2c.c                        |  19 +++-
 arch/x86/vdso/vdso2c.h                        |  23 ++++-
 7 files changed, 268 insertions(+), 126 deletions(-)
 create mode 100644 Documentation/vDSO/vdso_standalone_test_x86.c
 create mode 100644 arch/x86/vdso/vdso-fakesections.c
Signature · 1 line
1.9.3