linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Paul Cercueil <paul@crapouillou.net>,
	tglx@linutronix.de, airlied@linux.ie, airlied@redhat.com,
	akpm@linux-foundation.org, arnd@arndb.de, bcrl@kvack.org,
	bristot@redhat.com, bsegall@google.com, bskeggs@redhat.com,
	chris@zankel.net, christian.koenig@amd.com, clm@fb.com,
	davem@davemloft.net, deanbo422@gmail.com,
	dietmar.eggemann@arm.com, dri-devel@lists.freedesktop.org,
	dsterba@suse.com, green.hu@gmail.com, hch@lst.de,
	intel-gfx@lists.freedesktop.org, jcmvbkbc@gmail.com,
	josef@toxicpanda.com, juri.lelli@redhat.com, kraxel@redhat.com,
	linux-aio@kvack.org, linux-arm-kernel@lists.infradead.org,
	linux-btrfs@vger.kernel.org, linux-csky@vger.kernel.org,
	linux-fsdevel@vger.kernel.org,
	linux-graphics-maintainer@vmware.com,
	linux-kernel@vger.kernel.org, linux-mips@vger.kernel.org,
	linux-mm@kvack.org, linux-snps-arc@lists.infradead.org,
	linux-xtensa@linux-xtensa.org, linux@armlinux.org.uk,
	linuxppc-dev@lists.ozlabs.org, mgorman@suse.de, mingo@kernel.org,
	monstr@monstr.eu, mpe@ellerman.id.au, nickhu@andestech.com,
	nouveau@lists.freedesktop.org, paulmck@kernel.org,
	paulus@samba.org, peterz@infradead.org, ray.huang@amd.com,
	rodrigo.vivi@intel.com, rostedt@goodmis.org,
	sparclinux@vger.kernel.org, spice-devel@lists.freedesktop.org,
	sroland@vmware.com, torvalds@linuxfoundation.org,
	vgupta@synopsys.com, vincent.guittot@linaro.org,
	viro@zeniv.linux.org.uk,
	virtualization@lists.linux-foundation.org, x86@kernel.org
Subject: Re: [patch V3 13/37] mips/mm/highmem: Switch to generic kmap atomic
Date: Mon, 11 Jan 2021 10:16:46 +0100	[thread overview]
Message-ID: <20210111091646.hkugbtlcced3vmno@linutronix.de> (raw)
In-Reply-To: <20210109003352.GA18102@alpha.franken.de>

On 2021-01-09 01:33:52 [+0100], Thomas Bogendoerfer wrote:
> On Sat, Jan 09, 2021 at 12:58:05AM +0100, Thomas Bogendoerfer wrote:
> > On Fri, Jan 08, 2021 at 08:20:43PM +0000, Paul Cercueil wrote:
> > > Hi Thomas,
> > > 
> > > 5.11 does not boot anymore on Ingenic SoCs, I bisected it to this commit.
> > > 
> > > Any idea what could be happening?
> > 
> > not yet, kernel crash log of a Malta QEMU is below.
> 
> update:
> 
> This dirty hack lets the Malta QEMU boot again:
> 
> diff --git a/mm/highmem.c b/mm/highmem.c
> index c3a9ea7875ef..190cdda1149d 100644
> --- a/mm/highmem.c
> +++ b/mm/highmem.c
> @@ -515,7 +515,7 @@ void *__kmap_local_pfn_prot(unsigned long pfn, pgprot_t prot)
>  	vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
>  	BUG_ON(!pte_none(*(kmap_pte - idx)));
>  	pteval = pfn_pte(pfn, prot);
> -	set_pte_at(&init_mm, vaddr, kmap_pte - idx, pteval);
> +	set_pte(kmap_pte - idx, pteval);
>  	arch_kmap_local_post_map(vaddr, pteval);
>  	current->kmap_ctrl.pteval[kmap_local_idx()] = pteval;
>  	preempt_enable();
> 
> set_pte_at() tries to update cache and could do an kmap_atomic() there.
So the old implementation used set_pte() while the new one uses
set_pte_at().

> Not sure, if this is allowed at this point.
The problem is the recursion
  kmap_atomic() -> __update_cache() -> kmap_atomic()

and kmap_local_idx_push() runs out if index space before stack space.

I'm not sure if the __update_cache() worked for highmem. It has been
added for that in commit
   f4281bba81810 ("MIPS: Handle highmem pages in __update_cache")

but it assumes that the address returned by kmap_atomic() is the same or
related enough for flush_data_cache_page() to work.

> Thomas.
> 

Sebastian

  parent reply	other threads:[~2021-01-11  9:18 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-08 20:20 [patch V3 13/37] mips/mm/highmem: Switch to generic kmap atomic Paul Cercueil
2021-01-08 23:58 ` Thomas Bogendoerfer
2021-01-09  0:33   ` Thomas Bogendoerfer
2021-01-10 11:35     ` Paul Cercueil
2021-01-10 11:53       ` H. Nikolaus Schaller
2021-01-11  9:16     ` Sebastian Andrzej Siewior [this message]
  -- strict thread matches above, loose matches on Subject: below --
2020-11-03  9:27 [patch V3 00/37] mm/highmem: Preemptible variant of kmap_atomic & friends Thomas Gleixner
2020-11-03  9:27 ` [patch V3 13/37] mips/mm/highmem: Switch to generic kmap atomic Thomas Gleixner

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=20210111091646.hkugbtlcced3vmno@linutronix.de \
    --to=bigeasy@linutronix.de \
    --cc=airlied@linux.ie \
    --cc=airlied@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=arnd@arndb.de \
    --cc=bcrl@kvack.org \
    --cc=bristot@redhat.com \
    --cc=bsegall@google.com \
    --cc=bskeggs@redhat.com \
    --cc=chris@zankel.net \
    --cc=christian.koenig@amd.com \
    --cc=clm@fb.com \
    --cc=davem@davemloft.net \
    --cc=deanbo422@gmail.com \
    --cc=dietmar.eggemann@arm.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=dsterba@suse.com \
    --cc=green.hu@gmail.com \
    --cc=hch@lst.de \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jcmvbkbc@gmail.com \
    --cc=josef@toxicpanda.com \
    --cc=juri.lelli@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=linux-aio@kvack.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=linux-csky@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-graphics-maintainer@vmware.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-snps-arc@lists.infradead.org \
    --cc=linux-xtensa@linux-xtensa.org \
    --cc=linux@armlinux.org.uk \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mgorman@suse.de \
    --cc=mingo@kernel.org \
    --cc=monstr@monstr.eu \
    --cc=mpe@ellerman.id.au \
    --cc=nickhu@andestech.com \
    --cc=nouveau@lists.freedesktop.org \
    --cc=paul@crapouillou.net \
    --cc=paulmck@kernel.org \
    --cc=paulus@samba.org \
    --cc=peterz@infradead.org \
    --cc=ray.huang@amd.com \
    --cc=rodrigo.vivi@intel.com \
    --cc=rostedt@goodmis.org \
    --cc=sparclinux@vger.kernel.org \
    --cc=spice-devel@lists.freedesktop.org \
    --cc=sroland@vmware.com \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linuxfoundation.org \
    --cc=tsbogend@alpha.franken.de \
    --cc=vgupta@synopsys.com \
    --cc=vincent.guittot@linaro.org \
    --cc=viro@zeniv.linux.org.uk \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=x86@kernel.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).