Thread (37 messages) 37 messages, 4 authors, 1d ago

Re: [PATCH v3 03/17] verification/rvgen: Improve rv_dir discovery in RVGenerator

From: Thomas Weissschuh <hidden>
Date: 2026-07-02 14:09:52
Also in: lkml

On Thu, Jul 02, 2026 at 04:01:21PM +0200, Gabriele Monaco wrote:
On Thu, 2026-07-02 at 15:53 +0200, Nam Cao wrote:
quoted
Gabriele Monaco [off-list ref] writes:
quoted
The RVGenerator class can find the RV directory (kernel/trace/rv) in the
kernel tree to do some auto patching. This works by assuming PWD is
either the kernel tree or tools/verification, which isn't always the
case (e.g. when running from selftests).

Make discovery more robust by relying on the absolute path of the
current script and traversing backwards the right number of times.
This should work from any location if rvgen is in the kernel tree.
Agree.
quoted
+        # find the kernel tree root relative to this file's location
+        current_dir = os.path.dirname(os.path.abspath(__file__))
+        kernel_root = os.path.abspath(os.path.join(current_dir,
"../../../.."))

The  "../../../.." makes me sad.

We can find the git project root instead. For example:

def getGitRoot():
    return subprocess.Popen(['git', 'rev-parse', '--show-toplevel'],
stdout=subprocess.PIPE).communicate()[0].rstrip().decode('utf-8')

(stolen from
https://stackoverflow.com/questions/22081209/find-the-root-of-the-git-repository-where-the-file-lives
)

But that's not important, up to you.
Mmh good point, but what if we're running from a tarball?

I could still fall back to something that uses directory parents (maybe
something arguably nicer like

  os.path.join(current_dir, *([".."] * 4))

But that may not be more readable..
current_dir = pathlib.Path(__file__).abspath()
kernel_root = current_dir.parents[4]

pathlib is generally nicer than os.path.


Thomas
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help