From: Marek Vasut <marek.vasut@gmail.com>
To: u-boot@lists.denx.de
Subject: [PATCH] nvme: Fix cache alignment
Date: Tue, 2 Feb 2021 17:08:56 +0100 [thread overview]
Message-ID: <eb29e39f-cc44-26fc-2896-41959472da2b@gmail.com> (raw)
In-Reply-To: <20210202130456.43c308bf@slackpad.fritz.box>
On 2/2/21 2:04 PM, Andre Przywara wrote:
Hi,
[...]
>>> The various structures in the driver are already correcty padded and
>>
>> typo: correctly
>>
>>> cache aligned in memory, however the cache operations are called on
>>> the structure sizes, which themselves might not be cache aligned. Add
>>> the necessary rounding to fix this, which permits the nvme to work on
>>> arm64.
>>
>> +ARM guys
>>
>> Which ARM64 SoC did you test this with?
>>
>> The round down in this patch should be unnecessary. But it's better to
>> figure out which call to dcache_xxx() with an unaligned end address.
>
> I agree. There is no requirement for the actual cache maintenance
> instruction's address to be aligned, and also we align everything
> already in the implementations of flush_dcache_range() and
> invalidate_dcache_range().
I would suggest you insert check_cache_range() into
arch/arm/cpu/armv8/cache_v8.c invalidate_dcache_range() and
flush_dcache_range() which would prove you wrong.
> Actually I think rounding here is *wrong*, as we paper over the
> requirement of the *buffer* to be cache line aligned. So this must be
> assured at buffer allocation time, and just rounding before calling
> cache maintenance merely avoids (read: silences!) the warnings.
>
> I think drivers/net/bcmgenet.c does the right thing.
>
> Happy to provide more detailed rationale and explanations if needed.
Please do spend some more time on this, possibly even test your claim on
real hardware, and then provide more details.
next prev parent reply other threads:[~2021-02-02 16:08 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-30 17:53 [PATCH] nvme: Fix cache alignment Marek Vasut
2021-02-02 3:55 ` Bin Meng
2021-02-02 8:05 ` Marek Vasut
2021-02-02 8:54 ` Bin Meng
2021-02-02 9:04 ` Marek Vasut
2021-02-02 9:12 ` Bin Meng
2021-02-02 16:09 ` Marek Vasut
2021-02-02 13:04 ` Andre Przywara
2021-02-02 16:08 ` Marek Vasut [this message]
2021-02-02 16:23 ` Andre Przywara
2021-02-02 21:18 ` Marek Vasut
2021-02-03 10:42 ` Andre Przywara
2021-02-03 13:08 ` Marek Vasut
2021-02-04 10:26 ` Andre Przywara
2021-02-04 16:57 ` Tom Rini
2021-02-07 18:20 ` Marek Vasut
2021-02-07 19:13 ` Tom Rini
2021-02-08 13:32 ` Andre Przywara
2021-02-08 15:11 ` Bin Meng
2021-02-08 15:51 ` Marek Vasut
2021-02-08 15:49 ` Marek Vasut
2021-02-08 16:30 ` Andre Przywara
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=eb29e39f-cc44-26fc-2896-41959472da2b@gmail.com \
--to=marek.vasut@gmail.com \
--cc=u-boot@lists.denx.de \
/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