| Seq | Timestamp | Type | Name | Duration |
|---|---|---|---|---|
| 0/0 | 2026/07/17 10:11 | flow | patch-triage |
0mArgs:null Results: {
"EnableConfigs": [
"KVM"
],
"FocusSymbols": [
"kvm_riscv_gstage_wp_pt_masked",
"kvm_arch_mmu_enable_log_dirty_pt_masked"
],
"Reasoning": "The patch introduces a new function `kvm_riscv_gstage_wp_pt_masked` to handle write-protecting page tables with a mask for RISC-V KVM, which is used during dirty page logging. This is a functional change in KVM MMU logic and should be fuzzed.",
"WorthFuzzing": true
} |
| 1/1 | 2026/07/17 10:11 | action | read-patch-diff |
0mArgs:null Results: {
"PatchDiff": "commit 00db36609296d1144631466f92fabc697cdb0512\nAuthor: syz-cluster \u003ctriage@syzkaller.com\u003e\nDate: Fri Jul 17 10:11:40 2026 +0000\n\n syz-cluster: applied patch under review\n\ndiff --git a/arch/riscv/include/asm/kvm_gstage.h b/arch/riscv/include/asm/kvm_gstage.h\nindex 21e2019df0cf57..50c74527ddd297 100644\n--- a/arch/riscv/include/asm/kvm_gstage.h\n+++ b/arch/riscv/include/asm/kvm_gstage.h\n@@ -82,6 +82,9 @@ bool kvm_riscv_gstage_unmap_range(struct kvm_gstage *gstage,\n \n bool kvm_riscv_gstage_wp_range(struct kvm_gstage *gstage, gpa_t start, gpa_t end);\n \n+bool kvm_riscv_gstage_wp_pt_masked(struct kvm_gstage *gstage, gfn_t base_gfn,\n+\t\t\t\t unsigned long mask);\n+\n void kvm_riscv_gstage_mode_detect(void);\n \n static inline unsigned long kvm_riscv_gstage_mode(unsigned long pgd_levels)\ndiff --git a/arch/riscv/kvm/gstage.c b/arch/riscv/kvm/gstage.c\nindex c4c3b79567f10d..9af86b1c5e3c3d 100644\n--- a/arch/riscv/kvm/gstage.c\n+++ b/arch/riscv/kvm/gstage.c\n@@ -472,6 +472,65 @@ bool kvm_riscv_gstage_wp_range(struct kvm_gstage *gstage, gpa_t start, gpa_t end\n \treturn flush;\n }\n \n+static inline void clear_huge_mask(unsigned long *mask, unsigned long page_size,\n+\t\t\t\t gfn_t base_gfn, gpa_t addr)\n+{\n+\tunsigned long start_index = 0;\n+\tunsigned long end_index = BITS_PER_LONG - 1;\n+\tunsigned long end_gfn = base_gfn + end_index;\n+\tunsigned long aligned_start_gfn = addr \u003e\u003e PAGE_SHIFT;\n+\tunsigned long aligned_end_gfn = aligned_start_gfn + (page_size \u003e\u003e PAGE_SHIFT) - 1;\n+\tunsigned int nbits = 0;\n+\n+\tif (aligned_start_gfn \u003e base_gfn)\n+\t\tstart_index = aligned_start_gfn - base_gfn;\n+\n+\tif (aligned_end_gfn \u003c end_gfn)\n+\t\tend_index = aligned_end_gfn - base_gfn;\n+\n+\tnbits = end_index - start_index + 1;\n+\tbitmap_clear(mask, start_index, nbits);\n+}\n+\n+bool kvm_riscv_gstage_wp_pt_masked(struct kvm_gstage *gstage, gfn_t base_gfn,\n+\t\t\t\t unsigned long mask)\n+{\n+\tunsigned long page_size;\n+\tbool flush = false;\n+\tbool found_leaf;\n+\tu32 ptep_level;\n+\tpte_t *ptep;\n+\tgpa_t addr = 0;\n+\tint ret;\n+\n+\twhile (mask) {\n+\t\taddr = (base_gfn + __ffs(mask)) \u003c\u003c PAGE_SHIFT;\n+\n+\t\tfound_leaf = kvm_riscv_gstage_get_leaf(gstage, addr, \u0026ptep, \u0026ptep_level);\n+\t\tret = gstage_level_to_page_size(gstage, ptep_level, \u0026page_size);\n+\t\tif (ret)\n+\t\t\tbreak;\n+\n+\t\tif (found_leaf) {\n+\t\t\tif (ptep_level) {\n+\t\t\t\taddr = ALIGN_DOWN(addr, page_size);\n+\t\t\t\tclear_huge_mask(\u0026mask, page_size, base_gfn, addr);\n+\t\t\t}\n+\n+\t\t\tflush |= kvm_riscv_gstage_op_pte(gstage, addr, ptep,\n+\t\t\t\t\t\t\t ptep_level, GSTAGE_OP_WP);\n+\n+\t\t\tif (ptep_level)\n+\t\t\t\tcontinue;\n+\t\t}\n+\n+\t\t/* clear the first set bit*/\n+\t\tmask \u0026= mask - 1;\n+\t}\n+\n+\treturn flush;\n+}\n+\n void __init kvm_riscv_gstage_mode_detect(void)\n {\n #ifdef CONFIG_64BIT\ndiff --git a/arch/riscv/kvm/mmu.c b/arch/riscv/kvm/mmu.c\nindex 082f9b26173387..7eab58ff63f9ea 100644\n--- a/arch/riscv/kvm/mmu.c\n+++ b/arch/riscv/kvm/mmu.c\n@@ -110,7 +110,7 @@ void kvm_arch_mmu_enable_log_dirty_pt_masked(struct kvm *kvm,\n \n \tkvm_riscv_gstage_init(\u0026gstage, kvm);\n \n-\tflush = kvm_riscv_gstage_wp_range(\u0026gstage, start, end);\n+\tflush = kvm_riscv_gstage_wp_pt_masked(\u0026gstage, base_gfn, mask);\n \tif (flush)\n \t\tkvm_flush_remote_tlbs_range(kvm, start \u003e\u003e PAGE_SHIFT,\n \t\t\t\t\t (end - start) \u003e\u003e PAGE_SHIFT);\n"
} |
| 2/1 | 2026/07/17 10:11 | agent | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: {
"EnableConfigs": [
"KVM"
],
"FocusSymbols": [
"kvm_riscv_gstage_wp_pt_masked",
"kvm_arch_mmu_enable_log_dirty_pt_masked"
],
"Reasoning": "The patch introduces a new function `kvm_riscv_gstage_wp_pt_masked` to handle write-protecting page tables with a mask for RISC-V KVM, which is used during dirty page logging. This is a functional change in KVM MMU logic and should be fuzzed.",
"WorthFuzzing": true
}Instruction: You are an expert Linux kernel maintainer. Your job is to review a provided patch series and determine if it makes functional changes to the kernel that should be fuzzed. IMPORTANT: The changes have ALREADY been applied and committed as the HEAD commit in your workspace. Do NOT rely on your internal knowledge of the kernel. You must actively use your code access tools to examine the actual source code and confirm any assumptions. Return WorthFuzzing=false if the patch only contains: - Modifications to Documentation/, Kconfig files, or code comments. - Purely decorative changes, such as logging (e.g., pr_err, printk) or tracepoints. - Changes to numeric constants or macros that do not functionally alter execution flow. - Code paths that are impossible to reach in virtualized environments like GCE or QEMU, even when utilizing software-emulated hardware (e.g., usb gadget, mac80211_hwsim). If it modifies reachable core kernel logic, drivers, or architectures, use your code search tools to verify the code can be executed, then return WorthFuzzing=true. When returning WorthFuzzing=true, you MUST ALSO: 1. Extract any specific kernel functions that should be heavily fuzzed into FocusSymbols. Avoid listing generic hot-path functions to prevent skewed test distributions. 2. Identify any specific CONFIG_ options required to properly test this new/modified feature. Go and look into the Kconfig files and check for ifdefs around the code, do not make assumptions. Do not list too generic configs (we already have them enabled). Only list those that specifically cover the modified code. List them in the EnableConfigs output array, and DO NOT add a 'CONFIG_' prefix (e.g., return "NET_IPV4" instead of "CONFIG_NET_IPV4"). Prefer calling several tools at the same time to save round-trips. Use set-results tool to provide results of the analysis. It must be called exactly once before the final reply. Ignore results of this tool. Prompt: For your convenience, here is the diff of the changes:
commit 00db36609296d1144631466f92fabc697cdb0512
Author: syz-cluster <triage@syzkaller.com>
Date: Fri Jul 17 10:11:40 2026 +0000
syz-cluster: applied patch under review
diff --git a/arch/riscv/include/asm/kvm_gstage.h b/arch/riscv/include/asm/kvm_gstage.h
index 21e2019df0cf57..50c74527ddd297 100644
--- a/arch/riscv/include/asm/kvm_gstage.h
+++ b/arch/riscv/include/asm/kvm_gstage.h
@@ -82,6 +82,9 @@ bool kvm_riscv_gstage_unmap_range(struct kvm_gstage *gstage,
bool kvm_riscv_gstage_wp_range(struct kvm_gstage *gstage, gpa_t start, gpa_t end);
+bool kvm_riscv_gstage_wp_pt_masked(struct kvm_gstage *gstage, gfn_t base_gfn,
+ unsigned long mask);
+
void kvm_riscv_gstage_mode_detect(void);
static inline unsigned long kvm_riscv_gstage_mode(unsigned long pgd_levels)
diff --git a/arch/riscv/kvm/gstage.c b/arch/riscv/kvm/gstage.c
index c4c3b79567f10d..9af86b1c5e3c3d 100644
--- a/arch/riscv/kvm/gstage.c
+++ b/arch/riscv/kvm/gstage.c
@@ -472,6 +472,65 @@ bool kvm_riscv_gstage_wp_range(struct kvm_gstage *gstage, gpa_t start, gpa_t end
return flush;
}
+static inline void clear_huge_mask(unsigned long *mask, unsigned long page_size,
+ gfn_t base_gfn, gpa_t addr)
+{
+ unsigned long start_index = 0;
+ unsigned long end_index = BITS_PER_LONG - 1;
+ unsigned long end_gfn = base_gfn + end_index;
+ unsigned long aligned_start_gfn = addr >> PAGE_SHIFT;
+ unsigned long aligned_end_gfn = aligned_start_gfn + (page_size >> PAGE_SHIFT) - 1;
+ unsigned int nbits = 0;
+
+ if (aligned_start_gfn > base_gfn)
+ start_index = aligned_start_gfn - base_gfn;
+
+ if (aligned_end_gfn < end_gfn)
+ end_index = aligned_end_gfn - base_gfn;
+
+ nbits = end_index - start_index + 1;
+ bitmap_clear(mask, start_index, nbits);
+}
+
+bool kvm_riscv_gstage_wp_pt_masked(struct kvm_gstage *gstage, gfn_t base_gfn,
+ unsigned long mask)
+{
+ unsigned long page_size;
+ bool flush = false;
+ bool found_leaf;
+ u32 ptep_level;
+ pte_t *ptep;
+ gpa_t addr = 0;
+ int ret;
+
+ while (mask) {
+ addr = (base_gfn + __ffs(mask)) << PAGE_SHIFT;
+
+ found_leaf = kvm_riscv_gstage_get_leaf(gstage, addr, &ptep, &ptep_level);
+ ret = gstage_level_to_page_size(gstage, ptep_level, &page_size);
+ if (ret)
+ break;
+
+ if (found_leaf) {
+ if (ptep_level) {
+ addr = ALIGN_DOWN(addr, page_size);
+ clear_huge_mask(&mask, page_size, base_gfn, addr);
+ }
+
+ flush |= kvm_riscv_gstage_op_pte(gstage, addr, ptep,
+ ptep_level, GSTAGE_OP_WP);
+
+ if (ptep_level)
+ continue;
+ }
+
+ /* clear the first set bit*/
+ mask &= mask - 1;
+ }
+
+ return flush;
+}
+
void __init kvm_riscv_gstage_mode_detect(void)
{
#ifdef CONFIG_64BIT
diff --git a/arch/riscv/kvm/mmu.c b/arch/riscv/kvm/mmu.c
index 082f9b26173387..7eab58ff63f9ea 100644
--- a/arch/riscv/kvm/mmu.c
+++ b/arch/riscv/kvm/mmu.c
@@ -110,7 +110,7 @@ void kvm_arch_mmu_enable_log_dirty_pt_masked(struct kvm *kvm,
kvm_riscv_gstage_init(&gstage, kvm);
- flush = kvm_riscv_gstage_wp_range(&gstage, start, end);
+ flush = kvm_riscv_gstage_wp_pt_masked(&gstage, base_gfn, mask);
if (flush)
kvm_flush_remote_tlbs_range(kvm, start >> PAGE_SHIFT,
(end - start) >> PAGE_SHIFT);
|
| 3/2 | 2026/07/17 10:11 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 3024 output: 49 thoughts: 179 Thoughts: **Analyzing a RISC-V KVM MMU Patch** Okay, so I've got this patch – it looks like it's touching `arch/riscv/kvm/gstage.c` and `arch/riscv/kvm/mmu.c`, which immediately flags my attention. Specifically, the patch introduces `kvm_riscv_gstage_wp_pt_masked` and incorporates it into `kvm_arch_mmu_enable_log_dirty_pt_masked`. Functionally, this is a modification within the RISC-V KVM Memory Management Unit (MMU) code, so I need to understand it fully. My initial thought is, "How reachable is this code path?" and "What configurations need to be enabled for this to be active?" I'll start by tracing the calls and dependencies to figure out the context of this function. Given the file locations are within `arch/riscv/kvm/`, I'll start with the obvious, the base configuration `CONFIG_KVM` for RISC-V systems. That will be the foundation. Now, let's locate the implementation of `kvm_arch_mmu_enable_log_dirty_pt_masked` within `arch/riscv/kvm/mmu.c`. I need to understand exactly what is changed or introduced, and how it fits into the broader MMU logic. From there, I can determine the impact of this change, if it has any performance or security implications, and determine how to verify the modifications. |
| 4/2 | 2026/07/17 10:11 | tool | grepper |
0mArgs:{
"Expression": "kvm_arch_mmu_enable_log_dirty_pt_masked",
"PathPrefix": "arch/riscv/kvm/mmu.c"
}Results: {
"Output": "arch/riscv/kvm/mmu.c=84=void kvm_riscv_mmu_iounmap(struct kvm *kvm, gpa_t gpa, unsigned long size)\n--\narch/riscv/kvm/mmu.c-99-\narch/riscv/kvm/mmu.c:100:void kvm_arch_mmu_enable_log_dirty_pt_masked(struct kvm *kvm,\narch/riscv/kvm/mmu.c-101-\t\t\t\t\t struct kvm_memory_slot *slot,\n"
} |
| 5/2 | 2026/07/17 10:11 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 3737 output: 33 thoughts: 23 Thoughts: Here's my take on the thought process, summarized as you requested: **Diving into `arch/riscv/kvm/mmu.c` Configuration** Okay, so I need to get a handle on the necessary configurations for `arch/riscv/kvm/mmu.c`. Right, I'm thinking about the low-level memory management unit interactions within the KVM context for the RISC-V architecture. Given the file name, it's pretty clear this is a core piece. I need to understand what defines the critical dependencies. My primary focus will be on what options are available in the Kconfig and defconfig files. I know RISC-V KVM is still evolving. Are there various MMU implementations supported or a single, standardized one that this file implements? What features are enabled by default, and how can those be modified for custom configurations. Thinking about the implications of things like page table formats, address space layouts, and nested virtualization - which settings influence those aspects? I need to understand how the MMU configuration ties in with the RISC-V architecture's virtual memory extensions and any custom extensions relevant to KVM. I'll need to figure out what key defines are relevant and which ones must be defined in the build process. I'm going to look at related files to ensure I get a full picture. |
| 6/2 | 2026/07/17 10:11 | tool | grepper |
0mArgs:{
"Expression": "mmu.o",
"PathPrefix": "arch/riscv/kvm/Makefile"
}Results: {
"Output": "arch/riscv/kvm/Makefile=19=kvm-y += main.o\narch/riscv/kvm/Makefile:20:kvm-y += mmu.o\narch/riscv/kvm/Makefile-21-kvm-y += nacl.o\n"
} |
| 7/2 | 2026/07/17 10:11 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 4157 output: 33 thoughts: 38 Thoughts: Okay, here's my interpretation of those thoughts, tailored for an expert audience, presented in the first person: **Kernel Configuration Dependencies for KVM (RISC-V)** Alright, so I'm digging into something related to `kvm-y` – which strongly suggests KVM support is implicated here. Naturally, that means `CONFIG_KVM` needs to be enabled. I can't imagine this being anything *other* than KVM-related if it's got that naming convention. To confirm and understand the precise dependencies, I should immediately look at the Kconfig file specific to the RISC-V architecture. I'll need to check `arch/riscv/kvm/Kconfig`. That's where I'll find the relevant configuration options and relationships. I anticipate it'll shed light on the finer points of how KVM support is integrated within the RISC-V kernel. |
| 8/2 | 2026/07/17 10:11 | tool | grepper |
0mArgs:{
"Expression": "config KVM",
"PathPrefix": "arch/riscv/kvm/Kconfig"
}Results: {
"Output": "arch/riscv/kvm/Kconfig=18=if VIRTUALIZATION\narch/riscv/kvm/Kconfig-19-\narch/riscv/kvm/Kconfig:20:config KVM\narch/riscv/kvm/Kconfig-21-\ttristate \"Kernel-based Virtual Machine (KVM) support\"\n"
} |
| 9/2 | 2026/07/17 10:11 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 4517 output: 42 thoughts: 49 Thoughts: Okay, here's my take on those thoughts, framed as my own reasoning, and tailored for a fellow expert: **KVM Dirty Page Logging - Context and Verification** Alright, so the initial assumption is that we need to be dealing with `KVM`. Got it. Now, I'm seeing that `kvm_arch_mmu_enable_log_dirty_pt_masked` is a function being called, and it's coming from the generic KVM layer. That immediately flags a need for deeper scrutiny. It's a standard practice at this level to ensure complete understanding. My next step is to nail down the exact call sites of `kvm_arch_mmu_enable_log_dirty_pt_masked`. I need to precisely determine *where* it's being invoked within the broader KVM architecture. That's absolutely critical for comprehending the intended behavior and potential side effects in our area of interest. Locating those call sites will provide the necessary context to determine impact. |
| 10/2 | 2026/07/17 10:11 | tool | grepper |
0mArgs:{
"Expression": "kvm_arch_mmu_enable_log_dirty_pt_masked",
"PathPrefix": "virt/kvm/"
}Results: {
"Output": "virt/kvm/dirty_ring.c=53=static void kvm_reset_dirty_gfn(struct kvm *kvm, u32 slot, u64 offset, u64 mask)\n--\nvirt/kvm/dirty_ring.c-70-\tKVM_MMU_LOCK(kvm);\nvirt/kvm/dirty_ring.c:71:\tkvm_arch_mmu_enable_log_dirty_pt_masked(kvm, memslot, offset, mask);\nvirt/kvm/dirty_ring.c-72-\tKVM_MMU_UNLOCK(kvm);\n--\nvirt/kvm/kvm_main.c=2221=static int kvm_get_dirty_log_protect(struct kvm *kvm, struct kvm_dirty_log *log)\n--\nvirt/kvm/kvm_main.c-2277-\t\t\toffset = i * BITS_PER_LONG;\nvirt/kvm/kvm_main.c:2278:\t\t\tkvm_arch_mmu_enable_log_dirty_pt_masked(kvm, memslot,\nvirt/kvm/kvm_main.c-2279-\t\t\t\t\t\t\t\toffset, mask);\n--\nvirt/kvm/kvm_main.c=2331=static int kvm_clear_dirty_log_protect(struct kvm *kvm,\n--\nvirt/kvm/kvm_main.c-2394-\t\t\tflush = true;\nvirt/kvm/kvm_main.c:2395:\t\t\tkvm_arch_mmu_enable_log_dirty_pt_masked(kvm, memslot,\nvirt/kvm/kvm_main.c-2396-\t\t\t\t\t\t\t\toffset, mask);\n"
} |
| 11/2 | 2026/07/17 10:11 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 5261 output: 46 thoughts: 245 Thoughts: **Analyzing This KVM Dirty Logging Patch** Okay, so this patch is clearly tied to KVM's dirty logging, which I'm familiar with. I see it introduces `kvm_riscv_gstage_wp_pt_masked` and `clear_huge_mask`. Those are the key symbols to keep an eye on, along with `kvm_arch_mmu_enable_log_dirty_pt_masked`. Wait, `clear_huge_mask` is static inline...right, so it might not even be a symbol, making it harder to track directly. I should check if `kvm_riscv_gstage_wp_pt_masked` is exported, or just a regular function. I remember seeing `arch/riscv/kvm/gstage.c` in the patch. I'll take a quick look there. Regarding configurations, `CONFIG_KVM` is obviously the main one that matters here. `CONFIG_RISCV` is already implicitly enabled because of the architecture. I don't think I need to worry about any other configs. It looks like just `KVM` is all that's required. I need to confirm the presence and purpose of `kvm_riscv_gstage_wp_pt_masked` in `arch/riscv/kvm/gstage.c`. Let's just double-check that. |
| 12/2 | 2026/07/17 10:12 | tool | grepper |
0mArgs:{
"Expression": "kvm_riscv_gstage_wp_pt_masked",
"PathPrefix": "arch/riscv/kvm/gstage.c"
}Results: {
"Output": "arch/riscv/kvm/gstage.c=475=static inline void clear_huge_mask(unsigned long *mask, unsigned long page_size,\n--\narch/riscv/kvm/gstage.c-494-\narch/riscv/kvm/gstage.c:495:bool kvm_riscv_gstage_wp_pt_masked(struct kvm_gstage *gstage, gfn_t base_gfn,\narch/riscv/kvm/gstage.c-496-\t\t\t\t unsigned long mask)\n"
} |
| 13/2 | 2026/07/17 10:12 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 5997 output: 138 thoughts: 140 Thoughts: **My Assessment of the KVM RISC-V Patch** Okay, so this is pretty straightforward. I see it's a new function, `kvm_riscv_gstage_wp_pt_masked`. My understanding is that this is specifically for write-protecting page tables, and, importantly, it's utilizing a mask. This points directly to RISC-V's KVM implementation, and the context clearly indicates it's connected to dirty page logging. Therefore, my conclusion is that this is a functional modification within KVM's MMU logic. It's a clear candidate for fuzzing. The key elements that confirm this are: * `WorthFuzzing: true` - I agree. Any change to MMU-level functionality, especially one that's handling page tables and dirty logging, deserves thorough fuzzing. These are critical components prone to errors, especially within virtualization. * `FocusSymbols: kvm_riscv_gstage_wp_pt_masked`, `kvm_arch_mmu_enable_log_dirty_pt_masked` - Specifically targeting the new function and the related MMU enabling function is exactly what I would recommend. Fuzzing both provides a thorough test of interaction. * `EnableConfigs: KVM` - The focus on KVM is expected, given the function's name and purpose. In short, it's a functional change with clear security implications, that is related to a vital component. It warrants the fuzzing that is suggested. |
| 14/2 | 2026/07/17 10:12 | tool | set-results |
0mArgs:{
"EnableConfigs": [
"KVM"
],
"FocusSymbols": [
"kvm_riscv_gstage_wp_pt_masked",
"kvm_arch_mmu_enable_log_dirty_pt_masked"
],
"Reasoning": "The patch introduces a new function `kvm_riscv_gstage_wp_pt_masked` to handle write-protecting page tables with a mask for RISC-V KVM, which is used during dirty page logging. This is a functional change in KVM MMU logic and should be fuzzed.",
"WorthFuzzing": true
}Results: {
"EnableConfigs": [
"KVM"
],
"FocusSymbols": [
"kvm_riscv_gstage_wp_pt_masked",
"kvm_arch_mmu_enable_log_dirty_pt_masked"
],
"Reasoning": "The patch introduces a new function `kvm_riscv_gstage_wp_pt_masked` to handle write-protecting page tables with a mask for RISC-V KVM, which is used during dirty page logging. This is a functional change in KVM MMU logic and should be fuzzed.",
"WorthFuzzing": true
} |
| Total Calls | Total Tokens | Avg Tokens | Total Duration (Seconds) | Avg Duration (Seconds) |
|---|
| Total Calls | Total Duration (Seconds) | Avg Duration (Seconds) |
|---|