At 2026-05-28 23:24:56, "Philippe Mathieu-Daudé" <[email protected]> wrote:
>Hi,
>
>On 24/5/26 14:41, [email protected] wrote:
>> When booting an i386 guest, the `info tlb` command
>> may walk the entire page table hierarchy and emit
>> an enormous amount of output (as many as 800+ million
>> entries under my test).
>> It will take dozens of minutes to print all the info,
>> because each monitor print function will holds 'mon_lock'.
>> This effectively hangs the qemu monitor, and even leading
>> to program exit due to timeout.
>> 
>> So it may be better to show only the first 32 entries
>> and the last entry by default.
>> 
>> And if full output is required, the user can redirect
>> the output to a file by specifying a file name, e.g.:
>> `info tlb xxx.txt`.
>> 
>> Signed-off-by: Alano Song <[email protected]>
>> ---
>>   hmp-commands-info.hx  |  10 +-
>>   target/i386/monitor.c | 230 ++++++++++++++++++++++++++++++++++--------
>>   2 files changed, 195 insertions(+), 45 deletions(-)
>> 
>> diff --git a/hmp-commands-info.hx b/hmp-commands-info.hx
>> index 82134eb6c2..33b4604d11 100644
>> --- a/hmp-commands-info.hx
>> +++ b/hmp-commands-info.hx
>> @@ -188,17 +188,19 @@ ERST
>>   
>>       {
>>           .name       = "tlb",
>> -        .args_type  = "",
>> -        .params     = "",
>> -        .help       = "show virtual to physical memory mappings",
>> +        .args_type  = "file:s?",
>> +        .params     = "[file]",
>> +        .help       = "show virtual to physical memory mappings (optionally 
>> save to file)",
>>           .cmd        = hmp_info_tlb,
>>           .arch_bitmask = QEMU_ARCH_I386 | QEMU_ARCH_SH4 | QEMU_ARCH_SPARC \
>>                           | QEMU_ARCH_PPC | QEMU_ARCH_XTENSA | 
>> QEMU_ARCH_M68K,
>>       },
>>   
>>   SRST
>> -  ``info tlb``
>> +  ``info tlb`` [*file*]
>>       Show virtual to physical memory mappings.
>> +    If *file* is specified, the output is saved to the given file
>> +    instead of being printed to the monitor.
>>   ERST
>
>What about passing count or range by argument instead, keeping the

>default behavior?


Hi, Philippe:


Your suggestion is good,
I can add several options,
so that users can control the output range and count.


And just as I described earlier, we should modify the default behavior:
only print the first 32 entries and the last entry.
so that users can know the range while avoiding
the output of all the entries (there are too many).


Alano.



Reply via email to