From: Richard Henderson <richard.henderson@linaro.org>
To: lixianglai <lixianglai@loongson.cn>, qemu-devel@nongnu.org
Cc: maobibo@loongson.cn, Song Gao <gaosong@loongson.cn>,
Xiaojuan Yang <yangxiaojuan@loongson.cn>,
zhaotianrui@loongson.cn, yijun@loongson.cn,
wuruiyang@loongson.cn
Subject: Re: [PATCH V4 1/1] target/loongarch: Fixed tlb huge page loading issue
Date: Fri, 15 Mar 2024 07:06:44 -1000 [thread overview]
Message-ID: <553e5eee-7af5-4ecf-b994-1bdd6ca8a820@linaro.org> (raw)
In-Reply-To: <874eb7af-d1a0-0777-bc10-555381b85118@loongson.cn>
On 3/14/24 23:01, lixianglai wrote:
> Hi Richard :
>
>> On 3/14/24 20:22, lixianglai wrote:
>>> Hi Richard:
>>>> On 3/13/24 15:33, Xianglai Li wrote:
>>>>> + if (unlikely((level == 0) || (level > 4))) {
>>>>> + return base;
>>>>> + }
>> ...
>>>> Perhaps it would be worthwhile to add another for the level==0 or > 4 case above?
>>>>
>>> A normal level 4 page table should not print an error log,
>>>
>>> only if a level 4 page is large, so we should put it in
>>>
>>> if (FIELD_EX64(base, TLBENTRY, HUGE)) {
>>> if (unlikely(level == 4)) {
>>> qemu_log_mask(LOG_GUEST_ERROR,
>>> "Attempted use of level %lu huge page\n", level);
>>> }
>>>
>>> if (FIELD_EX64(base, TLBENTRY, LEVEL)) {
>>> return base;
>>> } else {
>>> return FIELD_DP64(base, TLBENTRY, LEVEL, level);
>>> }
>>> }
>>
>> A level 5 page table is not normal, nor is a level 0 lddir.
>>
>
> We communicate with the hardware guys that the behavior above level 4 and lddir 0 is
> undefined behavior.
>
> The result of our test on 3A5000 is that it has no any effect on "base",
>
> however in future chips the behavior may change since it may support 5-level page table
> and width for level[13:14] may change also.
>
>
> So in this context,I am not sure which level to use to print logs,
>
> which content to print, and where to add these prints,
>
> any more detailed advice?
Yes, right there in the IF that I quoted at the top.
What I was trying to spell out is
if (unlikely(level == 0 || level > 4)) {
qemu_log_mask(LOG_GUEST_ERROR,
"Attepted LDDIR with level %"PRId64"\n", level);
return base;
}
r~
next prev parent reply other threads:[~2024-03-15 17:07 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <cover.1710379781.git.lixianglai@loongson.cn>
2024-03-14 1:33 ` [PATCH V4 1/1] target/loongarch: Fixed tlb huge page loading issue Xianglai Li
2024-03-14 2:28 ` chen huacai
2024-03-14 16:30 ` Richard Henderson
2024-03-15 6:22 ` lixianglai
2024-03-15 7:46 ` Richard Henderson
2024-03-15 9:01 ` lixianglai
2024-03-15 17:06 ` Richard Henderson [this message]
2024-03-16 1:19 ` lixianglai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=553e5eee-7af5-4ecf-b994-1bdd6ca8a820@linaro.org \
--to=richard.henderson@linaro.org \
--cc=gaosong@loongson.cn \
--cc=lixianglai@loongson.cn \
--cc=maobibo@loongson.cn \
--cc=qemu-devel@nongnu.org \
--cc=wuruiyang@loongson.cn \
--cc=yangxiaojuan@loongson.cn \
--cc=yijun@loongson.cn \
--cc=zhaotianrui@loongson.cn \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).