Weekly notes for team meetings/reports/emails
Table of Contents
- Tasks
[0/0]
:tasks - Review Queue
[0/0]
:reviews- TODO {PATCH 0/7} Move qtests to a separate folder
- TODO {Qemu-arm} {PATCH 00/13} target/arm: Implement semihosting v2.0
- TODO {Qemu-arm} {PATCH v2 0/5} Support disabling TCG on ARM (part 2)
- TODO {Qemu-devel} {PATCH v6 0/6} Allow Valgrind checking all QEMU processes
- TODO {Qemu-devel} {PATCH 0/6} exec: Cleanup watchpoints
- TODO {PATCH 0/4} docs: add docs about use of automatic cleanup functions
- TODO {PATCH 0/4} docker: Update Travis-CI image to run acceptance tests
- TODO {PATCH v3 00/34} target/arm: Implement ARMv8.1-VHE
- TODO {Qemu-devel} {PATCH v4 00/22} target/arm: Implement ARMv8.5-MemTag, system mode
- TODO {Qemu-devel} {RFC PATCH} Implement qemuthreadyield for posix, use it in mttcg to handle EXCPYIELD
- TODO {PATCH 0/2} tests/acceptance: Add test of NeXTcube framebuffer using OCR
- TODO {Qemu-devel} {PATCH 0/4} Introduce the microvm machine type
- TODO {PATCH 0/3} tests/acceptance: Add tests for the Leon3 board
- TODO {PATCH 0/5} tests/acceptance: Add bFLT loader linux-user test
- TODO {PATCH v2 0/9} KVM: arm/arm64: vgic: ITS translation cache
- TODO {Qemu-devel} {RFC PATCH 0/7} Proof of concept for Meson integration
- TODO {PATCH 00/59} KVM: arm64: ARMv8.3 Nested Virtualization support
- TODO {PATCH v2 0/9} configure: Fix softmmu –static linking
- TODO {PATCH 0/8} Miscellaneous acceptance test and Travis CI improvements
- TODO {Qemu-devel} {PATCH v22 0/7} QEMU AVR 8 bit cores
- TODO {RFC PATCH v2 0/8} arm64/sve: First steps towards optimizing syscalls
- TODO {Qemu-devel} {PATCH v2 00/11} monitor: Split monitor.c in core/HMP/QMP/misc
- TODO {Qemu-arm} {PATCH v2 00/42} target/arm: Convert VFP decoder to decodetree
- TODO {Qemu-devel} {PATCH 0/7} Allow Valgrind checking all QEMU processes
- TODO {PATCH 0/4} tests/docker: add podman support
- TODO {Qemu-devel} {PATCH 0/2} Implement PowerPC FPSCR flag Fraction Rounded
- TODO {Qemu-devel} {RFC v4 0/7} Baby steps towards saner headers
- TODO {Qemu-devel} {PATCH v12 00/12} Add RX archtecture support
- TODO {PATCH 00/13} target/arm/kvm: enable SVE in guests
- TODO {Qemu-devel} {multiprocess RFC PATCH 00/37} Initial support of multi-process qemu
- TODO {Qemu-devel} {PATCH 0/6} Refine exec
- TODO {PATCH v4 00/19} Acceptance Tests: target architecture support
- TODO {PATCH 0/5} travis-ci: Build EDK2 roms
- TODO {PATCH+RFC 0/6} target/arm: Define cortex-a{73,75,76}
- TODO {Qemu-devel} {PATCH 0/9} tcg: Add tcggenextract2i32,i64
- TODO {Qemu-devel} {RFC PATCH 0/6} pc: Support firmware configuration with -blockdev
- TODO {Qemu-devel} {PATCH 00/23} tests/tcg/xtensa: conditionalize xtensa tests
- TODO {PATCH 00/10} Rework debug exception handling code
- TODO {PATCH+RFC 0/6} target/arm: Define cortex-a{73,75,76}
- TODO {PATCH v3 00/20} Acceptance Tests: target architecture support
- TODO {PATCH 0/6} Initial support for CVADP
- TODO {Qemu-devel} {PATCH v6 00/49} linux-user: Split dosyscall
- TODO {PATCH 0/5} target/mips: Add MSA ASE tests
- TODO {Qemu-arm} {PATCH 00/25} Kconfig dependencies for ARM machines
- TODO {RFC QEMU v2 0/2} arm/virt: Account for guest pause time
- TODO {PATCH v12 00/25} Fixing record/replay and adding reverse debugging
- TODO {PATCH v2 00/18} OpenBSD: Enable qtesting
- TODO {PATCH v11 00/25} Fixing record/replay and adding reverse debugging
- TODO {Qemu-devel} {PATCH v3 0/4} tcg: support heterogenous CPU clusters
- TODO {Qemu-devel} {PATCH RFC 00/11} Add Renesas RX archtecture
- TODO {Qemu-devel} {PATCH 00/11} target/arm: Implement ARMv8.5-BTI
- TODO {PATCH v5 00/73} per-CPU locks
- TODO {Qemu-arm} {PATCH 00/13} Support disabling TCG on ARM
- TODO {PATCH v10 00/24} Fixing record/replay and adding reverse debugging
- TODO {RFC PATCH 0/8} arm64/sve: First steps towards optimizing syscalls
- TODO {RFC PATCH 00/12} arm64: SVE guest support test hacks
- TODO {Qemu-devel} {RFC PATCH v2 00/37} Support Kconfig in QEMU
- TODO {Qemu-devel} {PATCH 0/4} tcg: support heterogenous CPU clusters
- TODO {Qemu-devel} {PATCH v3 00/31} target/arm: Implement ARMv8.3-PAuth
- TODO {Qemu-arm} {PATCH 0/3} target/arm: Vector expansion improvments.
- TODO {Qemu-devel} {PATCH} configure: Force the C standard to gnu11
- TODO {Qemu-devel} {PATCH 0/3} cutils: Cleanup, improve documentation
- TODO {Qemu-devel} {PATCH v2 00/27} target/arm: Implement ARMv8.3-PAuth
- TODO {Qemu-devel} {RFC PATCH 0/7} virtio-fs: shared file system for virtual machines3
- TODO {PATCH for-4.0 0/5} tcg/i386: Improve guestbase handling
- TODO {Qemu-devel} {PATCH for-4.0 00/71} qtest: qgraph driver framework
- TODO {Qemu-arm} {PATCH v7 00/16} gdbstub: support for the multiprocess extension
- TODO {PATCH v7 00/19} Fixing record/replay and adding reverse debugging
- TODO {PATCH v2 0/3} Bootstrap Python venv and acceptance/functional tests
- TODO {Qemu-arm} {PATCH 00/13} target/arm: Implement v8M stack limit checks
- TODO {Qemu-devel} {PATCH v2 0/9} target/arm: Rely on id regs instead of features
- TODO {Qemu-devel} {PATCH v2 00/15} target/arm: sve system mode patches
- TODO {Qemu-arm} {PATCH v2 00/15} gdbstub: support for the multiprocess extension
- TODO {PATCH v2 0/3} tests/vm: Improvements when KVM is not available
- TODO {PATCH 00/35} exec: drop BQL from interrupt handling
- TODO {PATCH 0/4} tests/vm: various trivial fixes
- TODO {PATCH 0/6} docker: Port to Python 3
- Deferred Tasks
[0/2]
- Absences
- Actions
[nil 23922 49921 500797 nil switch-to-buffer (#<buffer *draft*>) nil 957000]
Tasks [0/0]
:tasks
QEMU Tooling (VIRT-252)
QEMU plugin support (VIRT-280)
- posted {PATCH v2 0/5} fixed up semihosting fixups
- posted {PATCH v3 0/4} semihosting fixes
- more re-base of v5 branch
- Mostly churn from MemOp changes
- posted {PATCH v4 0/4} semihosting at translate time fixes
Upstream Work (VIRT-109)
- spent some time getting qemu-test onto 5.2.x
- posted {PULL 00/12} fixes for gdbstub, gitdm and testing
- posted {PATCH v1 00/42} current testing/next queue (podman, docker, ci)
Other Activities
- Connect travel administrative stuff
Completed Reviews [1/1]
Review Queue [0/0]
:reviews
Deferred Tasks [0/2]
TODO https://github.com/willnewton/qemucrash
Will has a linux-user exec test case which fails.
TODO Fix up ARMv6 memory barriers
QEMU CI Loop (VIRT-187)
- port existing tests to qa-reports :todo
- add additional test patterns :todo
MTTCG tests (VIRT-52)
- need to dust these off and get up-streamed if I'm going to add new tests :todo
Testing and CI
KVM CI Loop (VIRT-2)
- The LKFT team are working with gregkh to ensure -stable is tested for KVM regressions :done
- wrote up the State of testing for KVM
- look at example regression to see what would have caught the failure :todo
- look at kselftest and understand it's place :todo
GSoC Mentoring (VIRT-348)
- merging work
Absences
- Connect Sep 23-27th
Actions
These are actions to process my current TODO tasks in various ways
Update JIRA VIRT Tickets
Format headline task in JIRA markup
(defun my-filter-out-todo-lines (s backend info) "Filter out lines ending in :todo, - may be mapped to *" (apply 'concat (--remove (s-matches? (rx ":todo" (zero-or-more blank) eol) it) (s-slice-at (rx bol (in "-*")) s)))) (defun my-filter-headlines (s backend info) "Transform Headlines" (replace-regexp-in-string (rx "{color:" (one-or-more (in alnum "{}")) "{color}") "" s)) (defun my-translate-mu4e-links (link backend info) "Format mu4e links for export." (setq my-debug-var link) (let ((type (org-element-property :type link)) (path (org-element-property :path link)) (desc (substring-no-properties (nth 2 link)))) (if (string-match-p "mu4e" type) (when (string-match my-org-mu4e-index-links path) (format "[%s|https://www.google.com/search?q=%s]" (replace-regexp-in-string (rx (in "({})")) "" desc) (match-string 1 path))) (format "[%s|%s]" desc path)))) (org-export-define-derived-backend 'my-jira-export 'jira :translate-alist '((link . my-translate-mu4e-links)) :filters-alist '((:filter-headline . my-filter-headlines) (:filter-plain-list . my-filter-out-todo-lines))) (if (not my-current-jira-ticket) (format "No ticket current set") (json-encode-string (replace-regexp-in-string "\\(?:h[12]\\.\\)" "\nh3." (let ((headline-rx (rx bol (one-or-more "*") (one-or-more nonl) (eval (format "virt:%d" my-current-jira-ticket)) (not (any digit))))) (save-excursion ;; Grab the current state of the review queue (goto-char (point-min)) (when (re-search-forward headline-rx) (goto-char (match-beginning 0)) (org-export-as 'my-jira-export t nil t)))))))
Post Comment to JIRA
:auth_basic := (my-pass-password "jira") :ticket := (format "VIRT-%s" :virt-ticket) # POST https://dev-projects.linaro.org/rest/api/latest/issue/:ticket/comment POST https://projects.linaro.org/rest/api/latest/issue/:ticket/comment Authorization: Basic :auth_basic Accept: application/json Content-Type: application/json { "body": :comment }
Draft Status Email
This section deals with drafting my status emails. A few things a tied together but mainly it is a case of running the exporters over the relevant parts of the document.
Export the current tasks
The main task list used tags (done and todo)
(defun my-filter-out-done-lines (s backend info) "Filter out lines ending in :done" (apply 'concat (--remove (s-matches? (rx ":done" (zero-or-more blank) eol) it) (s-slice-at (rx bol "-") s)))) ; headline _back-end _info (defun my-filter-out-old-completed-todos (s backend info) "Filter out DONE items if they where completed over a week ago." (let ((date (plist-get info :with-date)) (todo (plist-get info :with-todo-keywords)) (todo-type (org-element-property :todo-type s)) (output s)) ;; getting there (setq my-global-debug-var (add-to-list 'my-global-debug-var (list :string s :date date :todo todo :todo-type todo-type))) ;; strip ~~~\n lines (let ((start (string-match "~+\n" output))) (if start (concat (substring s 0 start) (substring s (match-end 0))) output)))) (org-export-define-derived-backend 'my-status-report 'ascii :options-alist '((:with-todo-keywords nil) (:num nil)) :filters-alist '((:filter-plain-list . my-filter-out-done-lines) (:filter-headline . my-filter-out-old-completed-todos))) ;; Snarf the weeks activities (save-excursion (goto-char (point-min)) (when (re-search-forward "* Tasks") (goto-char (match-beginning 0)) (org-export-as 'my-status-report t nil t )))
Export the current review queue
This is the fragment for dealing with the current review queue. It also relies on a helper in my config to format links when exporting to text files (and html).
(s-join "\n" (subseq (--remove (= 0 (length it)) (s-lines (save-excursion ;; Grab the current state of the review queue (goto-char (point-min)) (when (re-search-forward "* Review Queue") (goto-char (match-beginning 0)) (org-export-as 'ascii t nil t))))) 0 12))
Export current absence plans
(save-excursion (goto-char (point-min)) (when (re-search-forward "* Absences") (goto-char (match-beginning 0)) (org-export-as 'ascii t nil t )))
Draft a new status email
(org-update-statistics-cookies t) (let ((end-of-week (chomp (shell-command-to-string "date --date='09:00 this Sun' +'%b. %e %Y'")))) (compose-mail "linaro-toolchain@lists.linaro.org" (format "[ACTIVITY] week ending %s" end-of-week) nil t 'switch-to-buffer) (insert activities) (insert "\n") (insert "Absences\n") (insert "========\n\n") (insert absences) (insert "\n") (insert "Current Review Queue\n") (insert "====================\n\n") (insert reviews) (run-at-time 1 nil #'switch-to-buffer (current-buffer)))
Default Action
This is the default action bound C-c C-C which attempts to figure out what I want to do when I hammer C-c C-c at any point in the document. As passing parameters around amongst lots of sub-functions is a pain we define my-current-jira-ticket as a global that is referenced by the relevant functions.
(let ((called-point (car org-mark-ring)) (processed)) (save-excursion (message "Checking at: %s" called-point) (goto-char called-point) (when (org-at-heading-p) (let ((heading (nth 4 (org-heading-components))) (virt-rx (rx "[" (or "virt" "tcwg") ":" (group (one-or-more digit)) "]"))) (when (string-match virt-rx heading) (setq my-current-jira-ticket (string-to-number (match-string 1 heading))) (org-sbe update-ticket) (setq processed (format "Updated ticket: %s/%d" heading my-current-jira-ticket)))))) (unless processed (message "No default action")) processed)