2024-devconf: More assets master
authorRichard W.M. Jones <rjones@redhat.com>
Tue, 4 Jun 2024 16:41:10 +0000 (17:41 +0100)
committerRichard W.M. Jones <rjones@redhat.com>
Tue, 4 Jun 2024 16:41:10 +0000 (17:41 +0100)
17 files changed:
2024-devconf/2024-riscv64-devconf-outline.txt [new file with mode: 0644]
2024-devconf/Members – RISC-V International.pdf [new file with mode: 0644]
2024-devconf/Members – RISC-V International.png [new file with mode: 0644]
2024-devconf/Members – RISC-V International.xcf [new file with mode: 0644]
2024-devconf/Screenshot 2024-06-04 at 15-59-04 RISC-V International – RISC-V The Open Standard RISC Instruction Set Architecture.png [new file with mode: 0644]
2024-devconf/Screenshot 2024-06-04 at 15-59-45 Members – RISC-V International.png [new file with mode: 0644]
2024-devconf/Screenshot 2024-06-04 at 16-30-23 RISC-V Active ICs HCs SIGs and TGs - Home - RISC-V International.png [new file with mode: 0644]
2024-devconf/Screenshot 2024-06-04 at 16-38-29 Rise RISC-V Software Ecosystem – Linux Foundation Project.png [new file with mode: 0644]
2024-devconf/Screenshot 2024-06-04 at 16-42-34 Rise RISC-V Software Ecosystem – Linux Foundation Project.png [new file with mode: 0644]
2024-devconf/Screenshot 2024-06-04 at 17-28-15 sig-profiles lists.riscv.org Group.png [new file with mode: 0644]
2024-devconf/Screenshot 2024-06-04 at 17-35-26 Build System Info Fedora RISC-V.png [new file with mode: 0644]
2024-tcg/03-not-obvious.png
2024-tcg/03-not-obvious.svg
2024-tcg/04-experiments.png
2024-tcg/04-experiments.svg
2024-tcg/05-lessons.png
2024-tcg/05-lessons.svg

diff --git a/2024-devconf/2024-riscv64-devconf-outline.txt b/2024-devconf/2024-riscv64-devconf-outline.txt
new file mode 100644 (file)
index 0000000..6cfb81d
--- /dev/null
@@ -0,0 +1,220 @@
+So this is my outline plan, including the things we discussed on IRC
+yesterday ...
+
+>     > https://pretalx.com/devconf-cz-2024/talk/Q7XB3M/
+
+>     * One slide timeline of the project, showing start and major
+>       milestones.  Just show, don't talk about it.
+
+[David]
+
+> Talk is fine, but it's too easy to overspend time here. Probably:
+> - When we started, and re-started (after glibc ABI stabilization).
+> - All historical (archival bits are available) from day 1.
+> - Koji setup (libvirt up to 180 VMs in GCC Compiler Farm).
+> - New Koji setup with SiFive HiFive Unmatched boards (thanks SiFive and WDC
+> mainly).
+> - Boards hosted by the community (not many).
+> - Now Koji is in AWS, Fedora infra  managed resources (well, one VM).
+> - Pioneer connected (thanks RVI).
+> - VF2 is pending to be connected after new disk images are prepared (thanks
+> StarFive).
+
+Personally I'd just sum this up in a diagram on one slide, and not
+even talk about it.  Something like:
+
+  --- 2016 project starts
+   |
+   |
+  --- 2018 HiFive Unleashed
+   |
+   |
+  etc
+   |
+  --- 2024 Fedora 41
+
+>     * Current status - Fedora 40 & Fedora 41 status.  What boards are
+>       supported and/or recommended.
+
+[David]
+
+> Unmatched what Fedora mainly uses (same with Debian too).
+> VF2 is about to enter the game basically.
+> I would expect ESWIN/SiFive P550 boards to quickly join a list.
+> 
+>     * Commercial interest in RISC-V.  The current companies developing
+>       RISC-V hardware (as far as we can reveal).  Might stick to server
+>       hardware, since talking about _all_ the companies doing RISC-V could
+>       be impossible.
+
+[David]
+
+> SiFive, T-HEAD, Rivos, Ventana, Tenstorrent?
+> Well these are the validated or kinda trusted folks. SupermiT claims server
+> stuff with their X100, but a lot is unknown.
+
+
+>     * RVI and RISE.
+
+[Richard]
+
+Slide: RISC-V International (RVI)
+
+https://riscv.org/
+
+Slide: Members page
+
+https://riscv.org/members/
+
+Red Hat is a member of RVI through our parent company, IBM.
+Fedora is not directly a member.
+
+Slide: RISC-V groups
+
+https://tech.riscv.org/groups
+
+The range of things that RVI does is enormous, but to summarise
+this, it's steering the hardware and ISA standards and general
+collaboration.
+
+Slide: RISE
+
+https://riseproject.dev/
+
+Red Hat is directly a member.  We contribute 2 full time engineer
+equivalent people to the project.
+
+Slide: RISE TSCs
+
+(lower down same page)
+
+RISE tends to concentrate more at the software level, filling in
+gaps in the software and working with Linux distributions.
+
+
+
+
+> Yes.  One is handling open source standards, and collaboration in
+> general.  Another one is to fill the gaps in the software and avoid
+> duplicated expensive development.  We should show an up-to-date list
+> of the companies in RISE.  It has grown:
+> https://wiki.riseproject.dev/display/HOME/About+RISE
+
+
+>     * Profiles.  Tension between supporting future hardware and what is
+>       currently available for developers.
+
+[Richard]
+
+Slide: Profiles SIG
+
+https://jira.riscv.org/browse/RVG-156?src=confmacro
+or https://lists.riscv.org/g/sig-profiles
+
+I don't want to go deeply into RISC-V and extensions.  I wrote
+an article about this recently for Red Hat Research Quarterly if
+you're interested in finding out more.
+
+Slide: RVA23
+
+But an important effort in RISC-V is grouping certain hardware
+features into mandatory and optional layers which are called
+"profiles".
+
+The mandatory part of the standard includes:
+
+ - vector extension
+ - hypervisor extension
+ - hardware performance counters
+ - cache coherence
+ - "maybe" operations
+ - page-based memory types
+ - fine-grained TLB invalidation
+ - 39-bit virtual memory
+
+Optional extensions include:
+
+ - vector crypto
+ - byte, halfword atomic ops
+ - FP16
+ - 48- and 57-bit virtual memory
+ - raising exception on unimplemented opcodes (controversial!)
+
+Slide: RVA24
+
+Under discussion!
+
+New naming scheme.
+
+> Yes.
+> This is a complicated topic, and I am not fully up to date.
+> RVA 23/24, minor/major.
+> New naming scheme being discussed?
+> Note that deprecating extensions is kinda fine. We should talk about this being
+> a possibility.
+> 
+> You are more likely up to date with this.
+
+
+>     * CentOS Stream 10 work.  The path from Fedora 40 -> CS10.  How
+>       changes have to go upstream first.
+
+[Richard]
+
+Slide: Diagram showing downstream -> upstream -> F40 -> CS10 relationships
+       Students in China, David, etc.
+
+> Yes.
+> We basically want this ASAP, but we have done very minimal effort so far.
+> 
+>     * New Koji hub instance, integration with FAS so any Fedora packager
+>       can build.
+
+[Richard, input from Kevin]
+
+Slide: Screenshot of current Koji
+
+We're building a new Koji hub.
+
+Not the same as Fedora Koji (yet).
+
+Will be accessible by any Fedora packager, but might need pre-approval.
+
+Will automatically rebuild most Fedora packages, but doesn't block them.
+
+> Yes.
+> I don't think we have all the answers here, but maybe Kevin does.
+> TLDR; We will have a new Koji (still separate), but much closer to the existing
+> setup with FAS integration, and some form of koji-shadow.
+> 
+> 
+>     * Future plans for RISC-V as a primary architecture.
+
+[Richard]
+
+Slide: RISC-V as a primary Fedora architecture
+
+This is our long term goal.
+
+We're possibly talking about Fedora 42, but nothing has been decided.
+
+It requires better hardware to be available, especially higher end
+development boards and maybe server hardware.
+
+
+
+
+> Yes.
+> Nothing to hide, we are going for the 1st tier (primary) architecture support.
+> It's mainly blocked by proper server hardware availability.
+> Some things we should mention:
+> - Symlink hack we had, and that some folks will not like it.
+> - Potential of a new ABI if things move towards that direction.
+
+Rich.
+
+-- 
+Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
+Read my programming and virtualization blog: http://rwmj.wordpress.com
+libguestfs lets you edit virtual machines.  Supports shell scripting,
+bindings from many languages.  http://libguestfs.org
diff --git a/2024-devconf/Members – RISC-V International.pdf b/2024-devconf/Members – RISC-V International.pdf
new file mode 100644 (file)
index 0000000..6e0e3d3
Binary files /dev/null and "b/2024-devconf/Members \342\200\223 RISC-V International.pdf" differ
diff --git a/2024-devconf/Members – RISC-V International.png b/2024-devconf/Members – RISC-V International.png
new file mode 100644 (file)
index 0000000..28367c1
Binary files /dev/null and "b/2024-devconf/Members \342\200\223 RISC-V International.png" differ
diff --git a/2024-devconf/Members – RISC-V International.xcf b/2024-devconf/Members – RISC-V International.xcf
new file mode 100644 (file)
index 0000000..ff503a6
Binary files /dev/null and "b/2024-devconf/Members \342\200\223 RISC-V International.xcf" differ
diff --git a/2024-devconf/Screenshot 2024-06-04 at 15-59-04 RISC-V International – RISC-V The Open Standard RISC Instruction Set Architecture.png b/2024-devconf/Screenshot 2024-06-04 at 15-59-04 RISC-V International – RISC-V The Open Standard RISC Instruction Set Architecture.png
new file mode 100644 (file)
index 0000000..48dd89f
Binary files /dev/null and "b/2024-devconf/Screenshot 2024-06-04 at 15-59-04 RISC-V International \342\200\223 RISC-V The Open Standard RISC Instruction Set Architecture.png" differ
diff --git a/2024-devconf/Screenshot 2024-06-04 at 15-59-45 Members – RISC-V International.png b/2024-devconf/Screenshot 2024-06-04 at 15-59-45 Members – RISC-V International.png
new file mode 100644 (file)
index 0000000..83de54f
Binary files /dev/null and "b/2024-devconf/Screenshot 2024-06-04 at 15-59-45 Members \342\200\223 RISC-V International.png" differ
diff --git a/2024-devconf/Screenshot 2024-06-04 at 16-30-23 RISC-V Active ICs HCs SIGs and TGs - Home - RISC-V International.png b/2024-devconf/Screenshot 2024-06-04 at 16-30-23 RISC-V Active ICs HCs SIGs and TGs - Home - RISC-V International.png
new file mode 100644 (file)
index 0000000..31847c0
Binary files /dev/null and b/2024-devconf/Screenshot 2024-06-04 at 16-30-23 RISC-V Active ICs HCs SIGs and TGs - Home - RISC-V International.png differ
diff --git a/2024-devconf/Screenshot 2024-06-04 at 16-38-29 Rise RISC-V Software Ecosystem – Linux Foundation Project.png b/2024-devconf/Screenshot 2024-06-04 at 16-38-29 Rise RISC-V Software Ecosystem – Linux Foundation Project.png
new file mode 100644 (file)
index 0000000..87294ce
Binary files /dev/null and "b/2024-devconf/Screenshot 2024-06-04 at 16-38-29 Rise RISC-V Software Ecosystem \342\200\223 Linux Foundation Project.png" differ
diff --git a/2024-devconf/Screenshot 2024-06-04 at 16-42-34 Rise RISC-V Software Ecosystem – Linux Foundation Project.png b/2024-devconf/Screenshot 2024-06-04 at 16-42-34 Rise RISC-V Software Ecosystem – Linux Foundation Project.png
new file mode 100644 (file)
index 0000000..e9b3215
Binary files /dev/null and "b/2024-devconf/Screenshot 2024-06-04 at 16-42-34 Rise RISC-V Software Ecosystem \342\200\223 Linux Foundation Project.png" differ
diff --git a/2024-devconf/Screenshot 2024-06-04 at 17-28-15 sig-profiles lists.riscv.org Group.png b/2024-devconf/Screenshot 2024-06-04 at 17-28-15 sig-profiles lists.riscv.org Group.png
new file mode 100644 (file)
index 0000000..62173ed
Binary files /dev/null and b/2024-devconf/Screenshot 2024-06-04 at 17-28-15 sig-profiles lists.riscv.org Group.png differ
diff --git a/2024-devconf/Screenshot 2024-06-04 at 17-35-26 Build System Info Fedora RISC-V.png b/2024-devconf/Screenshot 2024-06-04 at 17-35-26 Build System Info Fedora RISC-V.png
new file mode 100644 (file)
index 0000000..3fab3cb
Binary files /dev/null and b/2024-devconf/Screenshot 2024-06-04 at 17-35-26 Build System Info Fedora RISC-V.png differ
index 0129232..145ff40 100644 (file)
Binary files a/2024-tcg/03-not-obvious.png and b/2024-tcg/03-not-obvious.png differ
index feceb27..4028c62 100644 (file)
@@ -26,9 +26,9 @@
      inkscape:pagecheckerboard="0"
      inkscape:deskcolor="#d1d1d1"
      inkscape:document-units="mm"
-     inkscape:zoom="1.0393815"
-     inkscape:cx="396.38958"
-     inkscape:cy="422.84763"
+     inkscape:zoom="0.73495371"
+     inkscape:cx="397.30394"
+     inkscape:cy="422.47559"
      inkscape:window-width="1920"
      inkscape:window-height="1029"
      inkscape:window-x="0"
          style="stroke-width:0.264583"
          x="21.956394"
          y="70.401794"
-         id="tspan11"></tspan><tspan
+         id="tspan11" /><tspan
          sodipodi:role="line"
          style="stroke-width:0.264583"
          x="21.956394"
          x="21.956394"
          y="82.749046"
          id="tspan9">   might be worse</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';fill:#ff0000;stroke:#ff0000;stroke-width:0.264583"
+       x="138.78633"
+       y="55.209347"
+       id="text4"><tspan
+         sodipodi:role="line"
+         id="tspan4"
+         style="stroke-width:0.264583"
+         x="138.78633"
+         y="55.209347">1 in 6 jumps are slow path</tspan><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="138.78633"
+         y="61.382973"
+         id="tspan5">but lookup_tb/tb_lookup takes 17% total time</tspan></text>
   </g>
 </svg>
index a323734..04c38fa 100644 (file)
Binary files a/2024-tcg/04-experiments.png and b/2024-tcg/04-experiments.png differ
index 2afaa97..a92c520 100644 (file)
@@ -26,9 +26,9 @@
      inkscape:pagecheckerboard="0"
      inkscape:deskcolor="#d1d1d1"
      inkscape:document-units="mm"
-     inkscape:zoom="1.0393815"
-     inkscape:cx="396.38958"
-     inkscape:cy="422.84763"
+     inkscape:zoom="1.4142136"
+     inkscape:cx="381.13056"
+     inkscape:cy="199.75767"
      inkscape:window-width="1920"
      inkscape:window-height="1029"
      inkscape:window-x="0"
          style="stroke-width:0.264583"
          x="21.956394"
          y="64.228172"
-         id="tspan20"> * CPU state optimization</tspan><tspan
+         id="tspan4"> * TB lookup changes</tspan><tspan
          sodipodi:role="line"
          style="stroke-width:0.264583"
          x="21.956394"
          y="70.401794"
-         id="tspan21" /><tspan
+         id="tspan5" /><tspan
          sodipodi:role="line"
          style="stroke-width:0.264583"
          x="21.956394"
          y="76.575424"
+         id="tspan20"> * CPU state optimization</tspan><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="21.956394"
+         y="82.749046"
+         id="tspan21" /><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="21.956394"
+         y="88.922668"
          id="tspan22"> * QOM casts</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';fill:#008000;stroke:#008000;stroke-width:0.264583"
+       x="47.388802"
+       y="98.283058"
+       id="text2"><tspan
+         sodipodi:role="line"
+         id="tspan2"
+         style="stroke-width:0.264583"
+         x="47.388802"
+         y="98.283058">+5% improvement</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';fill:#ff0000;stroke:#ff0000;stroke-width:0.264583"
+       x="99.232788"
+       y="49.022629"
+       id="text3"><tspan
+         sodipodi:role="line"
+         id="tspan3"
+         style="stroke-width:0.264583"
+         x="99.232788"
+         y="49.022629">14% of total time page table walking</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';fill:#ff0000;stroke:#ff0000;stroke-width:0.264583"
+       x="113.48491"
+       y="62.054153"
+       id="text6"><tspan
+         sodipodi:role="line"
+         id="tspan6"
+         style="stroke-width:0.264583"
+         x="113.48491"
+         y="62.054153">jmp cache up to 64 addrs per page:</tspan><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="113.48491"
+         y="68.227776"
+         id="tspan8"> - removing 47% worse</tspan><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="113.48491"
+         y="74.401405"
+         id="tspan7"> - other adjustments made it worse</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';fill:#ff0000;stroke:#ff0000;stroke-width:0.264583"
+       x="87.829224"
+       y="29.649782"
+       id="text10"><tspan
+         sodipodi:role="line"
+         id="tspan10"
+         style="stroke-width:0.264583"
+         x="87.829224"
+         y="29.649782">super-page = 4x pages =&gt; 33% slower</tspan><tspan
+         sodipodi:role="line"
+         style="stroke-width:0.264583"
+         x="87.829224"
+         y="35.823406"
+         id="tspan11">  8x pages =&gt; 50% slower</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';fill:#ff0000;stroke:#ff0000;stroke-width:0.264583"
+       x="86.915901"
+       y="85.241409"
+       id="text12"><tspan
+         sodipodi:role="line"
+         id="tspan12"
+         style="stroke-width:0.264583"
+         x="86.915901"
+         y="85.241409">10% of total time</tspan></text>
   </g>
 </svg>
index cb96155..a6102c0 100644 (file)
Binary files a/2024-tcg/05-lessons.png and b/2024-tcg/05-lessons.png differ
index 31c2d3b..da282c4 100644 (file)
          x="21.956394"
          y="88.922668"
          id="tspan27"> * Flame graphs &amp; profiles</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:4.9389px;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';fill:#008000;stroke:#008000;stroke-width:0.264583"
+       x="114.83377"
+       y="80.77211"
+       id="text1"><tspan
+         sodipodi:role="line"
+         id="tspan1"
+         style="fill:#ff0000;stroke:#ff0000;stroke-width:0.264583"
+         x="114.83377"
+         y="80.77211">(63% slower when 16 vCPUs pinned to 8 pCPUs)</tspan></text>
   </g>
 </svg>