From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: Zhenyu Zhang <zhenyzha@redhat.com>,
Robin Murphy <robin.murphy@arm.com>,
Peter Maydell <peter.maydell@linaro.org>
Cc: qemu-arm@nongnu.org, qemu-devel@nongnu.org,
Jonathan.Cameron@huawei.com, gshan@redhat.com, eauger@redhat.com,
sebott@redhat.com, cohuck@redhat.com, ddutile@redhat.com,
shahuang@redhat.com, qemu-riscv <qemu-riscv@nongnu.org>,
qemu-ppc <qemu-ppc@nongnu.org>, Song Gao <gaosong@loongson.cn>
Subject: Re: [PATCH v3] hw/arm/virt: Avoid unexpected warning from Linux guest on host with Fujitsu CPUs
Date: Mon, 17 Jun 2024 11:36:14 +0200 [thread overview]
Message-ID: <c77dc7ce-a205-4dcb-a63b-451cac00de5d@linaro.org> (raw)
In-Reply-To: <CAJFLiBLt4ig0XpDScq0M1EAPo1PEvZNiumf9kKMOErSE_OJ_cQ@mail.gmail.com>
On 17/6/24 07:26, Zhenyu Zhang wrote:
> On Thu, Jun 13, 2024 at 1:48 AM Robin Murphy <robin.murphy@arm.com> wrote:
>>
>> On 2024-06-12 1:50 pm, Philippe Mathieu-Daudé wrote:
>>> On 12/6/24 14:48, Peter Maydell wrote:
>>>> On Wed, 12 Jun 2024 at 13:33, Philippe Mathieu-Daudé
>>>> <philmd@linaro.org> wrote:
>>>>>
>>>>> Hi Zhenyu,
>>>>>
> Hello Philippe,
>
>>>>> On 12/6/24 04:05, Zhenyu Zhang wrote:
>>>>>> diff --git a/hw/arm/virt.c b/hw/arm/virt.c
>>>>>> index 3c93c0c0a6..3cefac6d43 100644
>>>>>> --- a/hw/arm/virt.c
>>>>>> +++ b/hw/arm/virt.c
>>>>>> @@ -271,6 +271,17 @@ static void create_fdt(VirtMachineState *vms)
>>>>>> qemu_fdt_setprop_cell(fdt, "/", "#size-cells", 0x2);
>>>>>> qemu_fdt_setprop_string(fdt, "/", "model", "linux,dummy-virt");
>>>>>>
>>>>>> + /*
>>>>>> + * For QEMU, all DMA is coherent. Advertising this in the root
>>>>>> node
>>>>>> + * has two benefits:
>>>>>> + *
>>>>>> + * - It avoids potential bugs where we forget to mark a DMA
>>>>>> + * capable device as being dma-coherent
>>>>>> + * - It avoids spurious warnings from the Linux kernel about
>>>>>> + * devices which can't do DMA at all
>>>>>> + */
>>>>>> + qemu_fdt_setprop(fdt, "/", "dma-coherent", NULL, 0);
>>>>>
>>>>> OK, but why restrict that to the Aarch64 virt machine?
>>>>> Shouldn't advertise this generically in create_device_tree()?
>>>>> Or otherwise at least in the other virt machines?
>>>>
>>>> create_device_tree() creates an empty device tree, not one
>>>> with stuff in it. It seems reasonable to me for this property
>>>> on the root to be set in the same place we set other properties
>>>> of the root node.
>>>
>>> OK. Still the question about other virt machines remains
>>> unanswered :)
>>
>> From the DT consumer point of view, the interpretation and assumptions
>> around coherency *are* generally architecture- or platform-specific. For
>> instance on RISC-V, many platforms want to assume coherency by default
>> (and potentially use "dma-noncoherent" to mark individual devices that
>> aren't), while others may still want to do the opposite and use
>> "dma-coherent" in the same manner as Arm and AArch64. Neither property
>> existed back in ePAPR, so typical PowerPC systems wouldn't even be
>> looking and will just make their own assumptions by other means.
TIL :)
> As Robin's comment says, each platform wants to assume coherency
> by default may be different. Adding it to all virt machines may
> introduce new risks. Currently, the issue is only valid on Fujitsu CPUs
> where the cache line size is 256 bytes, meaning the combination of
> kvm+virt-platform is needed to trigger the warning. So I'd be inclined
> to add this "dma-coherent" property for the "virt" platform first
> and advertise the property to other platforms if we hit the issue
> on those platforms.
Thanks Robin & Zhenyu,
Phil.
next prev parent reply other threads:[~2024-06-17 9:36 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-12 2:05 [PATCH v3] hw/arm/virt: Avoid unexpected warning from Linux guest on host with Fujitsu CPUs Zhenyu Zhang
2024-06-12 2:25 ` Gavin Shan
2024-06-12 3:04 ` Donald Dutile
2024-06-12 9:53 ` Jonathan Cameron via
2024-06-12 12:33 ` Philippe Mathieu-Daudé
2024-06-12 12:48 ` Peter Maydell
2024-06-12 12:50 ` Philippe Mathieu-Daudé
2024-06-12 17:48 ` Robin Murphy
2024-06-17 5:26 ` Zhenyu Zhang
2024-06-17 9:36 ` Philippe Mathieu-Daudé [this message]
2024-06-21 13:01 ` Peter Maydell
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=c77dc7ce-a205-4dcb-a63b-451cac00de5d@linaro.org \
--to=philmd@linaro.org \
--cc=Jonathan.Cameron@huawei.com \
--cc=cohuck@redhat.com \
--cc=ddutile@redhat.com \
--cc=eauger@redhat.com \
--cc=gaosong@loongson.cn \
--cc=gshan@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=qemu-riscv@nongnu.org \
--cc=robin.murphy@arm.com \
--cc=sebott@redhat.com \
--cc=shahuang@redhat.com \
--cc=zhenyzha@redhat.com \
/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).