linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Juergen Gross <jgross@suse.com>
To: Linus Torvalds <torvalds@linux-foundation.org>,
	Borislav Petkov <bp@alien8.de>
Cc: Christian Kujau <lists@nerdbynature.de>,
	Michael Kelley <mikelley@microsoft.com>,
	linux-kernel@vger.kernel.org,
	Greg KH <gregkh@linuxfoundation.org>,
	Linux regressions mailing list <regressions@lists.linux.dev>
Subject: Re: External USB disks not recognized with v6.1.8 when using Xen
Date: Mon, 6 Feb 2023 07:33:56 +0100	[thread overview]
Message-ID: <093a90b7-3365-bc66-f0bf-c78c75814879@suse.com> (raw)
In-Reply-To: <CAHk-=wgC_MEFnnzUGN4q9pmhxV+eFV1Oo=W2j1J69YhJF5EDtw@mail.gmail.com>


[-- Attachment #1.1.1: Type: text/plain, Size: 3504 bytes --]

On 05.02.23 21:21, Linus Torvalds wrote:
> On Sun, Feb 5, 2023 at 5:20 AM Borislav Petkov <bp@alien8.de> wrote:
>>
>> @@ -53,7 +53,8 @@ static inline u8 mtrr_type_lookup(u64 addr,
>>          /*
>>           * Return no-MTRRs:
>>           */
>> -       return MTRR_TYPE_INVALID;
>> +       *uniform = 1;
>> +       return MTRR_TYPE_UNCACHABLE;
> 
> So this is the one I'd almost leave alone.
> 
> Because this is not a "there are no MTRR's" situation, this is a "I
> haven't enabled CONFIG_MTRR, so I don't _know_ if there are any MTRR's
> or not.

Yes.

> And returning MTRR_TYPE_UNCACHABLE will then disable things like
> largepages etc, so this change would effectively mean that if
> CONFIG_MTRR is off, it would turn off hugepage support too.

Correct.

> 
> But maybe that was the only thing that cared, and we have:
> 
>> @@ -721,8 +721,9 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
>>          u8 mtrr, uniform;
>>
>>          mtrr = mtrr_type_lookup(addr, addr + PUD_SIZE, &uniform);
>> -       if ((mtrr != MTRR_TYPE_INVALID) && (!uniform) &&
>> -           (mtrr != MTRR_TYPE_WRBACK))
>> +       if (mtrr != MTRR_TYPE_UNCACHABLE &&
>> +           mtrr != MTRR_TYPE_WRBACK &&
>> +           !uniform)
>>                  return 0;
> 
> Here you make up for it, but I don't actually understand why these
> checks exist at all.
> 
> I *think* that what the check should do is just check for uniformity.
> 
> Why would the largepage code otherwise care?

I agree. The reasoning in the comment above pud_set_huge() is nonsense, as
it is not specific to huge pages:

  * - MTRRs are enabled and the corresponding MTRR memory type is WB, which
  *   has no effect on the requested PAT memory type.

Any other MTRR memory type would interfere with the requested PAT memory
type in undesired ways, but this is still true when using small pages
only.

> Other MTRR types are explicitly fine, and I think things like the X
> server might even want to do write-combining with large pages etc.
> 
> So I think the hugepage code should only do
> 
>       if (!uniform)
>            return 0;
> 
> or there should be some explanation for why those types are special?

As written above: there is an explanation, but it doesn't make much sense
IMHO.

> 
>>> @@ -748,8 +749,9 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
>>          u8 mtrr, uniform;
>>
>>          mtrr = mtrr_type_lookup(addr, addr + PMD_SIZE, &uniform);
>> -       if ((mtrr != MTRR_TYPE_INVALID) && (!uniform) &&
>> -           (mtrr != MTRR_TYPE_WRBACK)) {
>> +       if (mtrr != MTRR_TYPE_UNCACHABLE &&
>> +           mtrr != MTRR_TYPE_WRBACK &&
>> +           !uniform) {
> 
> Same here.
> 
> Again, I *think* that the reason it used to do that "check two types"
> thing is simply because "uniform" wasn't set correctly.

This might very well be the reason, yes.

I still don't see why the original report of Christian is making sense:

According to the error message, the _requested_ memory type was UC-, but
the reverted patch only affects cases where the requested type is WB. So
why does a revert of 90b926e68f50 is helping to make this message go away?
The message was:

   ioremap error for 0xf2520000-0xf2530000, requested 0x2, got 0x0

Meanwhile I've found a system which is issuing such a message under Xen.
I'll investigate further _why_ a request of UC- ends up to get WB.


Juergen

[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3149 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]

  reply	other threads:[~2023-02-06  6:34 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-30  3:46 External USB disks not recognized with v6.1.8 when using Xen Christian Kujau
2023-01-30  5:17 ` Greg KH
2023-01-30 12:01 ` Linux kernel regression tracking (#adding)
2023-01-31 22:50   ` Christian Kujau
2023-02-01  8:14     ` Juergen Gross
2023-02-01  9:37       ` Christian Kujau
2023-02-02 11:38       ` Christian Kujau
2023-02-02 20:24         ` Linus Torvalds
2023-02-03 16:50           ` Christian Kujau
2023-02-03 17:29             ` Christian Kujau
2023-02-05 13:20           ` Borislav Petkov
2023-02-05 17:17             ` Christian Kujau
2023-02-05 20:21             ` Linus Torvalds
2023-02-06  6:33               ` Juergen Gross [this message]
2023-02-06  9:54                 ` Juergen Gross
2023-02-06  9:43               ` Borislav Petkov
2023-02-05 10:40     ` Linux kernel regression tracking (#update)
2023-02-14  9:35 ` [tip: x86/urgent] x86/mtrr: Revert 90b926e68f50 ("x86/pat: Fix pat_x_mtrr_type() for MTRR disabled case") tip-bot2 for Juergen Gross
2023-02-18  9:47   ` Christian Kujau
2023-02-18  9:59     ` Borislav Petkov
2023-05-08 13:41     ` [tip: x86/cleanups] Documentation/process: Explain when tip branches get merged into mainline tip-bot2 for Christian Kujau
2023-05-15 15:28     ` tip-bot2 for Christian Kujau

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=093a90b7-3365-bc66-f0bf-c78c75814879@suse.com \
    --to=jgross@suse.com \
    --cc=bp@alien8.de \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lists@nerdbynature.de \
    --cc=mikelley@microsoft.com \
    --cc=regressions@lists.linux.dev \
    --cc=torvalds@linux-foundation.org \
    /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).