All of lore.kernel.org
 help / color / mirror / Atom feed
From: Catalin Marinas <catalin.marinas@arm.com>
To: Ard Biesheuvel <ardb@kernel.org>
Cc: Linux ARM <linux-arm-kernel@lists.infradead.org>,
	"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS"
	<devicetree@vger.kernel.org>,
	Frank Rowand <frowand.list@gmail.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linux Memory Management List <linux-mm@kvack.org>,
	iommu@lists.linux-foundation.org,
	Rob Herring <robh+dt@kernel.org>,
	linux-rpi-kernel@lists.infradead.org,
	Will Deacon <will@kernel.org>, Christoph Hellwig <hch@lst.de>,
	Robin Murphy <robin.murphy@arm.com>
Subject: Re: [PATCH 1/4] of/fdt: Update zone_dma_bits when running in bcm2711
Date: Fri, 9 Oct 2020 18:10:52 +0100	[thread overview]
Message-ID: <20201009171051.GL23638@gaia> (raw)
In-Reply-To: <CAMj1kXFuqw3qNRAB78OzvMws+t7=B6L8pASA36D2fxXobbvpUA@mail.gmail.com>

On Fri, Oct 09, 2020 at 06:23:06PM +0200, Ard Biesheuvel wrote:
> On Fri, 9 Oct 2020 at 17:24, Lorenzo Pieralisi
> <lorenzo.pieralisi@arm.com> wrote:
> > We can move this check to IORT code and call it from arm64 if it
> > can be made to work.
> 
> Finding the smallest value in the IORT, and assigning it to
> zone_dma_bits if it is < 32 should be easy. But as I understand it,
> having these separate DMA and DMA32 zones is what breaks kdump, no? So
> how is this going to fix the underlying issue?

If zone_dma_bits is 32, ZONE_DMA32 disappears into ZONE_DMA (GFP_DMA32
allocations fall back to ZONE_DMA).

kdump wants DMA-able memory and, without a 30-bit ZONE_DMA, that would
be the bottom 32-bit. With the introduction of ZONE_DMA, this suddenly
became 1GB. We could change kdump to allocate ZONE_DMA32 but this one
may also be small as it lost 1GB to ZONE_DMA. However, the kdump kernel
would need to be rebuilt without ZONE_DMA since it won't have any. IIRC
(it's been a while since I looked), the kdump allocation couldn't span
multiple zones.

In a separate thread, we try to fix kdump to use allocations above 4G as
a fallback but this only fixes platforms with enough RAM (and maybe it's
only those platforms that care about kdump).

-- 
Catalin
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

WARNING: multiple messages have this Message-ID (diff)
From: Catalin Marinas <catalin.marinas@arm.com>
To: Ard Biesheuvel <ardb@kernel.org>
Cc: Linux ARM <linux-arm-kernel@lists.infradead.org>,
	"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS"
	<devicetree@vger.kernel.org>,
	Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
	Frank Rowand <frowand.list@gmail.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linux Memory Management List <linux-mm@kvack.org>,
	iommu@lists.linux-foundation.org,
	Rob Herring <robh+dt@kernel.org>,
	linux-rpi-kernel@lists.infradead.org,
	Will Deacon <will@kernel.org>, Christoph Hellwig <hch@lst.de>,
	Nicolas Saenz Julienne <nsaenzjulienne@suse.de>,
	Robin Murphy <robin.murphy@arm.com>
Subject: Re: [PATCH 1/4] of/fdt: Update zone_dma_bits when running in bcm2711
Date: Fri, 9 Oct 2020 18:10:52 +0100	[thread overview]
Message-ID: <20201009171051.GL23638@gaia> (raw)
In-Reply-To: <CAMj1kXFuqw3qNRAB78OzvMws+t7=B6L8pASA36D2fxXobbvpUA@mail.gmail.com>

On Fri, Oct 09, 2020 at 06:23:06PM +0200, Ard Biesheuvel wrote:
> On Fri, 9 Oct 2020 at 17:24, Lorenzo Pieralisi
> <lorenzo.pieralisi@arm.com> wrote:
> > We can move this check to IORT code and call it from arm64 if it
> > can be made to work.
> 
> Finding the smallest value in the IORT, and assigning it to
> zone_dma_bits if it is < 32 should be easy. But as I understand it,
> having these separate DMA and DMA32 zones is what breaks kdump, no? So
> how is this going to fix the underlying issue?

If zone_dma_bits is 32, ZONE_DMA32 disappears into ZONE_DMA (GFP_DMA32
allocations fall back to ZONE_DMA).

kdump wants DMA-able memory and, without a 30-bit ZONE_DMA, that would
be the bottom 32-bit. With the introduction of ZONE_DMA, this suddenly
became 1GB. We could change kdump to allocate ZONE_DMA32 but this one
may also be small as it lost 1GB to ZONE_DMA. However, the kdump kernel
would need to be rebuilt without ZONE_DMA since it won't have any. IIRC
(it's been a while since I looked), the kdump allocation couldn't span
multiple zones.

In a separate thread, we try to fix kdump to use allocations above 4G as
a fallback but this only fixes platforms with enough RAM (and maybe it's
only those platforms that care about kdump).

-- 
Catalin

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: Catalin Marinas <catalin.marinas@arm.com>
To: Ard Biesheuvel <ardb@kernel.org>
Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
	Nicolas Saenz Julienne <nsaenzjulienne@suse.de>,
	"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" 
	<devicetree@vger.kernel.org>, Will Deacon <will@kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linux Memory Management List <linux-mm@kvack.org>,
	iommu@lists.linux-foundation.org,
	Rob Herring <robh+dt@kernel.org>,
	linux-rpi-kernel@lists.infradead.org,
	Frank Rowand <frowand.list@gmail.com>,
	Christoph Hellwig <hch@lst.de>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	Robin Murphy <robin.murphy@arm.com>
Subject: Re: [PATCH 1/4] of/fdt: Update zone_dma_bits when running in bcm2711
Date: Fri, 9 Oct 2020 18:10:52 +0100	[thread overview]
Message-ID: <20201009171051.GL23638@gaia> (raw)
In-Reply-To: <CAMj1kXFuqw3qNRAB78OzvMws+t7=B6L8pASA36D2fxXobbvpUA@mail.gmail.com>

On Fri, Oct 09, 2020 at 06:23:06PM +0200, Ard Biesheuvel wrote:
> On Fri, 9 Oct 2020 at 17:24, Lorenzo Pieralisi
> <lorenzo.pieralisi@arm.com> wrote:
> > We can move this check to IORT code and call it from arm64 if it
> > can be made to work.
> 
> Finding the smallest value in the IORT, and assigning it to
> zone_dma_bits if it is < 32 should be easy. But as I understand it,
> having these separate DMA and DMA32 zones is what breaks kdump, no? So
> how is this going to fix the underlying issue?

If zone_dma_bits is 32, ZONE_DMA32 disappears into ZONE_DMA (GFP_DMA32
allocations fall back to ZONE_DMA).

kdump wants DMA-able memory and, without a 30-bit ZONE_DMA, that would
be the bottom 32-bit. With the introduction of ZONE_DMA, this suddenly
became 1GB. We could change kdump to allocate ZONE_DMA32 but this one
may also be small as it lost 1GB to ZONE_DMA. However, the kdump kernel
would need to be rebuilt without ZONE_DMA since it won't have any. IIRC
(it's been a while since I looked), the kdump allocation couldn't span
multiple zones.

In a separate thread, we try to fix kdump to use allocations above 4G as
a fallback but this only fixes platforms with enough RAM (and maybe it's
only those platforms that care about kdump).

-- 
Catalin

  reply	other threads:[~2020-10-09 17:11 UTC|newest]

Thread overview: 93+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-01 16:17 [PATCH 0/4] arm64: Default to 32-bit wide ZONE_DMA Nicolas Saenz Julienne
2020-10-01 16:17 ` Nicolas Saenz Julienne
2020-10-01 16:17 ` Nicolas Saenz Julienne
2020-10-01 16:17 ` [PATCH 1/4] of/fdt: Update zone_dma_bits when running in bcm2711 Nicolas Saenz Julienne
2020-10-01 16:17   ` Nicolas Saenz Julienne
2020-10-01 16:17   ` Nicolas Saenz Julienne
2020-10-01 17:15   ` Catalin Marinas
2020-10-01 17:15     ` Catalin Marinas
2020-10-01 17:15     ` Catalin Marinas
2020-10-01 17:23     ` Catalin Marinas
2020-10-01 17:23       ` Catalin Marinas
2020-10-01 17:23       ` Catalin Marinas
2020-10-01 17:31       ` Nicolas Saenz Julienne
2020-10-01 17:31         ` Nicolas Saenz Julienne
2020-10-01 17:31         ` Nicolas Saenz Julienne
2020-10-01 20:02         ` Rob Herring
2020-10-01 20:02           ` Rob Herring
2020-10-01 20:02           ` Rob Herring
2020-10-02 11:55         ` Catalin Marinas
2020-10-02 11:55           ` Catalin Marinas
2020-10-02 11:55           ` Catalin Marinas
2020-10-08 10:05           ` Nicolas Saenz Julienne
2020-10-08 10:05             ` Nicolas Saenz Julienne
2020-10-08 10:05             ` Nicolas Saenz Julienne
2020-10-08 10:13             ` Catalin Marinas
2020-10-08 10:13               ` Catalin Marinas
2020-10-08 10:13               ` Catalin Marinas
2020-10-08 19:43               ` Ard Biesheuvel
2020-10-08 19:43                 ` Ard Biesheuvel
2020-10-08 19:43                 ` Ard Biesheuvel
2020-10-09  3:59                 ` Jeremy Linton
2020-10-09  3:59                   ` Jeremy Linton
2020-10-09  3:59                   ` Jeremy Linton
2020-10-09  8:37                   ` Nicolas Saenz Julienne
2020-10-09  8:37                     ` Nicolas Saenz Julienne
2020-10-09  8:37                     ` Nicolas Saenz Julienne
2020-10-09  7:10             ` Christoph Hellwig
2020-10-09  7:10               ` Christoph Hellwig
2020-10-09  7:10               ` Christoph Hellwig
2020-10-09  7:37               ` Ard Biesheuvel
2020-10-09  7:37                 ` Ard Biesheuvel
2020-10-09  7:37                 ` Ard Biesheuvel
2020-10-09  8:36                 ` Nicolas Saenz Julienne
2020-10-09  8:36                   ` Nicolas Saenz Julienne
2020-10-09  8:36                   ` Nicolas Saenz Julienne
2020-10-09  9:13                   ` Ard Biesheuvel
2020-10-09  9:13                     ` Ard Biesheuvel
2020-10-09  9:13                     ` Ard Biesheuvel
2020-10-09 13:33                     ` Nicolas Saenz Julienne
2020-10-09 13:33                       ` Nicolas Saenz Julienne
2020-10-09 13:33                       ` Nicolas Saenz Julienne
2020-10-09 15:24                     ` Lorenzo Pieralisi
2020-10-09 15:24                       ` Lorenzo Pieralisi
2020-10-09 15:24                       ` Lorenzo Pieralisi
2020-10-09 16:23                       ` Ard Biesheuvel
2020-10-09 16:23                         ` Ard Biesheuvel
2020-10-09 16:23                         ` Ard Biesheuvel
2020-10-09 17:10                         ` Catalin Marinas [this message]
2020-10-09 17:10                           ` Catalin Marinas
2020-10-09 17:10                           ` Catalin Marinas
2020-10-10 10:36                           ` Ard Biesheuvel
2020-10-10 10:36                             ` Ard Biesheuvel
2020-10-10 10:36                             ` Ard Biesheuvel
2020-10-10 10:53                             ` Nicolas Saenz Julienne
2020-10-10 10:53                               ` Nicolas Saenz Julienne
2020-10-10 10:53                               ` Nicolas Saenz Julienne
2020-10-10 12:38                               ` Catalin Marinas
2020-10-10 12:38                                 ` Catalin Marinas
2020-10-10 12:38                                 ` Catalin Marinas
2020-10-12  6:47                           ` Christoph Hellwig
2020-10-12  6:47                             ` Christoph Hellwig
2020-10-12  6:47                             ` Christoph Hellwig
2020-10-12  8:47                             ` Catalin Marinas
2020-10-12  8:47                               ` Catalin Marinas
2020-10-12  8:47                               ` Catalin Marinas
2020-10-02  9:05   ` kernel test robot
2020-10-02  9:05     ` kernel test robot
2020-10-02  9:05     ` kernel test robot
2020-10-01 16:17 ` [PATCH 2/4] dma-direct: Turn zone_dma_bits default value into a define Nicolas Saenz Julienne
2020-10-01 16:17   ` Nicolas Saenz Julienne
2020-10-01 16:17   ` Nicolas Saenz Julienne
2020-10-01 16:17 ` [PATCH 3/4] arm64: Default to 32-bit ZONE_DMA Nicolas Saenz Julienne
2020-10-01 16:17   ` Nicolas Saenz Julienne
2020-10-01 16:17   ` Nicolas Saenz Julienne
2020-10-01 17:19   ` Catalin Marinas
2020-10-01 17:19     ` Catalin Marinas
2020-10-01 17:19     ` Catalin Marinas
2020-10-01 16:17 ` [PATCH 4/4] mm: Update DMA zones description Nicolas Saenz Julienne
2020-10-01 16:17   ` Nicolas Saenz Julienne
2020-10-01 16:17   ` Nicolas Saenz Julienne
2020-10-01 17:19   ` Catalin Marinas
2020-10-01 17:19     ` Catalin Marinas
2020-10-01 17:19     ` Catalin Marinas

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=20201009171051.GL23638@gaia \
    --to=catalin.marinas@arm.com \
    --cc=ardb@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=frowand.list@gmail.com \
    --cc=hch@lst.de \
    --cc=iommu@lists.linux-foundation.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-rpi-kernel@lists.infradead.org \
    --cc=robh+dt@kernel.org \
    --cc=robin.murphy@arm.com \
    --cc=will@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.