From 91f8bb15a1706ff169cf409923e134fcbeb73461 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 16 Apr 2024 15:49:21 +0100 Subject: [PATCH] 2024-tcg: Updates --- 2024-tcg/01-tcg-translation.png | Bin 0 -> 59797 bytes 2024-tcg/01-tcg-translation.svg | 90 +++++++-------- 2024-tcg/02-tcg-helpers.png | Bin 0 -> 51948 bytes 2024-tcg/02-tcg-helpers.svg | 245 ++++++++++++++++++++++++++++++++++++++++ 2024-tcg/03-not-obvious.png | Bin 0 -> 54660 bytes 2024-tcg/03-not-obvious.svg | 117 +++++++++++++++++++ 2024-tcg/04-experiments.png | Bin 0 -> 29654 bytes 2024-tcg/04-experiments.svg | 110 ++++++++++++++++++ 2024-tcg/05-lessons.png | Bin 0 -> 43522 bytes 2024-tcg/05-lessons.svg | 122 ++++++++++++++++++++ 10 files changed, 632 insertions(+), 52 deletions(-) create mode 100644 2024-tcg/01-tcg-translation.png create mode 100644 2024-tcg/02-tcg-helpers.png create mode 100644 2024-tcg/02-tcg-helpers.svg create mode 100644 2024-tcg/03-not-obvious.png create mode 100644 2024-tcg/03-not-obvious.svg create mode 100644 2024-tcg/04-experiments.png create mode 100644 2024-tcg/04-experiments.svg create mode 100644 2024-tcg/05-lessons.png create mode 100644 2024-tcg/05-lessons.svg diff --git a/2024-tcg/01-tcg-translation.png b/2024-tcg/01-tcg-translation.png new file mode 100644 index 0000000000000000000000000000000000000000..3f9c817c5ac10b7d03a02455b92216318ba4d286 GIT binary patch literal 59797 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 + inkscape:current-layer="layer1" + showgrid="false" + inkscape:export-bgcolor="#ffffffff" /> - - - @@ -116,36 +102,36 @@ xml:space="preserve" transform="matrix(0.26458333,0,0,0.26458333,-4.2320215,-5.4130078)" id="text4" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';white-space:pre;shape-inside:url(#rect5);fill:none;stroke:#000000">auipc a5,0x13 + id="tspan5">auipc a5,0x13 addi a5,a5,1756 + id="tspan40">addi a5,a5,1756 sd a5,8(s9) + id="tspan42">sd a5,8(s9) sd a5,0(s9) + id="tspan44">sd a5,0(s9) j 591c + id="tspan46">j 591c + id="tspan48"> mv a0,a3 + id="tspan50">mv a0,a3 sd a3,-296(s0) + id="tspan52">sd a3,-296(s0) jal 40a0 + id="tspan54">jal 40a0 beqz a0,584e + id="tspan56">beqz a0,584e in qemu (host) memory. + y="28.275999">in qemu (host) memory AtV)`kcdY9>;NBcTQ-iFwk+(Q79CKqel*( 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 lLf-fY6udNkKj!iYcs$v~QQ@RCaf? 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 literal 0 HcmV?d00001 diff --git a/2024-tcg/02-tcg-helpers.svg b/2024-tcg/02-tcg-helpers.svg new file mode 100644 index 0000000..df3ba40 --- /dev/null +++ b/2024-tcg/02-tcg-helpers.svg @@ -0,0 +1,245 @@ + + + + + + + + + + + + + + + + + + auipc a5,0x13 +addi a5,a5,1756 +sd a5,8(s9) +sd a5,0(s9) +sret + + + TranslationBlock________________x86 code ... ...call helper_sret + in qemu (host) memory + guest physical page + qemu function________________helper_sret(env){ ... ...} + + + diff --git a/2024-tcg/03-not-obvious.png b/2024-tcg/03-not-obvious.png new file mode 100644 index 0000000000000000000000000000000000000000..0129232cca036ac02b858e02e99ddb96f838f086 GIT binary patch literal 54660 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 + + + + + + + + + + Some things which are important but not obvious: * TB invalidation is page based * Some jumps can be optimized * Guest's page cache is important * Slow performance is bad, but uneven performance might be worse + + diff --git a/2024-tcg/04-experiments.png b/2024-tcg/04-experiments.png new file mode 100644 index 0000000000000000000000000000000000000000..a3237343beebbf1f520738b2dee86d42c663afeb GIT binary patch literal 29654 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 literal 0 HcmV?d00001 diff --git a/2024-tcg/04-experiments.svg b/2024-tcg/04-experiments.svg new file mode 100644 index 0000000..2afaa97 --- /dev/null +++ b/2024-tcg/04-experiments.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + Experiments: * "Super-pages" * Software TLB changes * CPU state optimization * QOM casts + + diff --git a/2024-tcg/05-lessons.png b/2024-tcg/05-lessons.png new file mode 100644 index 0000000000000000000000000000000000000000..cb961559460cf479c30e37e3bec5a59efe19f09f GIT binary patch literal 43522 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 literal 0 HcmV?d00001 diff --git a/2024-tcg/05-lessons.svg b/2024-tcg/05-lessons.svg new file mode 100644 index 0000000..31c2d3b --- /dev/null +++ b/2024-tcg/05-lessons.svg @@ -0,0 +1,122 @@ + + + + + + + + + + + Lessons: * There are no easy fixes * Lots of guest and host RAM helps performance * Translation time doesn't matter much * CPU pinning * Flame graphs & profiles + + -- 1.8.3.1