From: Heiko Carstens <hca@linux.ibm.com>
To: Baoquan He <bhe@redhat.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
akpm@linux-foundation.org, hch@lst.de, cl@linux.com,
42.hyeyoo@gmail.com, penberg@kernel.org, rientjes@google.com,
iamjoonsoo.kim@lge.com, vbabka@suse.cz, David.Laight@aculab.com,
david@redhat.com, herbert@gondor.apana.org.au,
davem@davemloft.net, linux-crypto@vger.kernel.org,
steffen.klassert@secunet.com, netdev@vger.kernel.org,
gor@linux.ibm.com, agordeev@linux.ibm.com,
borntraeger@linux.ibm.com, svens@linux.ibm.com,
linux-s390@vger.kernel.org, michael@walle.cc,
linux-i2c@vger.kernel.org, wsa@kernel.org,
Halil Pasic <pasic@linux.ibm.com>,
Vineeth Vijayan <vneethv@linux.ibm.com>
Subject: Re: [PATCH 00/22] Don't use kmalloc() with GFP_DMA
Date: Mon, 21 Feb 2022 14:57:34 +0100 [thread overview]
Message-ID: <YhOaTsWUKO0SWsh7@osiris> (raw)
In-Reply-To: <20220219005221.634-1-bhe@redhat.com>
On Sat, Feb 19, 2022 at 08:51:59AM +0800, Baoquan He wrote:
> Let's replace it with other ways. This is the first step towards
> removing dma-kmalloc support in kernel (Means that if everyting
> is going well, we can't use kmalloc(GFP_DMA) to allocate buffer in the
> future).
...
>
> Next, plan to investigate how we should handle places as below. We
> firstly need figure out whether they really need buffer from ZONE_DMA.
> If yes, how to change them with other ways. This need help from
> maintainers, experts from sub-components and code contributors or anyone
> knowing them well. E.g s390 and crypyto, we need guidance and help.
>
> 1) Kmalloc(GFP_DMA) in s390 platform, under arch/s390 and drivers/s390;
So, s390 partially requires GFP_DMA allocations for memory areas which
are required by the hardware to be below 2GB. There is not necessarily
a device associated when this is required. E.g. some legacy "diagnose"
calls require buffers to be below 2GB.
How should something like this be handled? I'd guess that the
dma_alloc API is not the right thing to use in such cases. Of course
we could say, let's waste memory and use full pages instead, however
I'm not sure this is a good idea.
s390 drivers could probably converted to dma_alloc API, even though
that would cause quite some code churn.
> For this first patch series, thanks to Hyeonggon for helping
> reviewing and great suggestions on patch improving. We will work
> together to continue the next steps of work.
>
> Any comment, thought, or suggestoin is welcome and appreciated,
> including but not limited to:
> 1) whether we should remove dma-kmalloc support in kernel();
The question is: what would this buy us? As stated above I'd assume
this comes with quite some code churn, so there should be a good
reason to do this.
From this cover letter I only get that there was a problem with kdump
on x86, and this has been fixed. So why this extra effort?
> 3) Drop support for allocating DMA memory from slab allocator
> (as Christoph Hellwig said) and convert them to use DMA32
> and see what happens
Can you please clarify what "convert to DMA32" means? I would assume
this does _not_ mean that passing GFP_DMA32 to slab allocator would
work then?
btw. there are actually two kmalloc allocations which pass GFP_DMA32;
I guess this is broken(?):
drivers/hid/intel-ish-hid/ishtp-fw-loader.c: dma_buf = kmalloc(payload_max_size, GFP_KERNEL | GFP_DMA32);
drivers/media/test-drivers/vivid/vivid-osd.c: dev->video_vbase = kzalloc(dev->video_buffer_size, GFP_KERNEL | GFP_DMA32);
next prev parent reply other threads:[~2022-02-21 13:57 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-19 0:51 Baoquan He
2022-02-19 0:52 ` [PATCH 01/22] parisc: pci-dma: remove stale code and comment Baoquan He
2022-02-19 7:07 ` Christoph Hellwig
2022-02-19 0:52 ` [PATCH 02/22] net: moxa: Don't use GFP_DMA when calling dma_alloc_coherent() Baoquan He
2022-02-19 7:07 ` Christoph Hellwig
2022-02-19 0:52 ` [PATCH 03/22] gpu: ipu-v3: " Baoquan He
2022-02-19 7:07 ` Christoph Hellwig
2022-02-19 0:52 ` [PATCH 04/22] drm/sti: Don't use GFP_DMA when calling dma_alloc_wc() Baoquan He
2022-02-19 7:08 ` Christoph Hellwig
2022-02-19 0:52 ` [PATCH 05/22] sound: n64: Don't use GFP_DMA when calling dma_alloc_coherent() Baoquan He
2022-02-19 7:08 ` Christoph Hellwig
2022-02-19 0:52 ` [PATCH 06/22] fbdev: da8xx: " Baoquan He
2022-02-19 7:08 ` Christoph Hellwig
2022-02-19 0:52 ` [PATCH 07/22] fbdev: mx3fb: Don't use GFP_DMA when calling dma_alloc_wc() Baoquan He
2022-02-19 7:08 ` Christoph Hellwig
2022-02-19 0:52 ` [PATCH 08/22] usb: gadget: lpc32xx_udc: Don't use GFP_DMA when calling dma_alloc_coherent() Baoquan He
2022-02-19 7:09 ` Christoph Hellwig
2022-02-19 0:52 ` [PATCH 09/22] usb: cdns3: " Baoquan He
2022-02-19 7:09 ` Christoph Hellwig
2022-02-19 0:52 ` [PATCH 10/22] uio: pruss: " Baoquan He
2022-02-19 7:09 ` Christoph Hellwig
2022-02-19 0:52 ` [PATCH 11/22] staging: emxx_udc: " Baoquan He
2022-02-19 6:51 ` Wolfram Sang
2022-02-20 1:55 ` Baoquan He
2022-02-19 7:09 ` Christoph Hellwig
2022-02-19 0:52 ` [PATCH 12/22] " Baoquan He
2022-02-19 7:10 ` Christoph Hellwig
2022-02-19 0:52 ` [PATCH 13/22] spi: atmel: " Baoquan He
2022-02-19 7:10 ` Christoph Hellwig
2022-02-19 0:52 ` [PATCH 14/22] spi: spi-ti-qspi: " Baoquan He
2022-02-19 7:12 ` Christoph Hellwig
2022-02-19 0:52 ` [PATCH 15/22] usb: cdns3: Don't use GFP_DMA32 when calling dma_pool_alloc() Baoquan He
2022-02-19 7:13 ` Christoph Hellwig
2022-02-19 0:52 ` [PATCH 16/22] usb: udc: lpc32xx: Don't use GFP_DMA " Baoquan He
2022-02-19 7:13 ` Christoph Hellwig
2022-02-19 0:52 ` [PATCH 17/22] net: marvell: prestera: " Baoquan He
2022-02-19 4:54 ` Jakub Kicinski
2022-02-20 2:06 ` Baoquan He
2022-02-19 7:13 ` Christoph Hellwig
2022-02-19 0:52 ` [PATCH 18/22] net: ethernet: mtk-star-emac: Don't use GFP_DMA when calling dmam_alloc_coherent() Baoquan He
2022-02-19 7:13 ` Christoph Hellwig
2022-02-19 0:52 ` [PATCH 19/22] ethernet: rocker: Use dma_alloc_noncoherent() for dma buffer Baoquan He
2022-02-19 7:14 ` Christoph Hellwig
2022-02-19 0:52 ` [PATCH 20/22] HID: intel-ish-hid: " Baoquan He
2022-02-19 7:14 ` Christoph Hellwig
2022-02-19 0:52 ` [PATCH 21/22] mmc: wbsd: " Baoquan He
2022-02-19 7:17 ` Christoph Hellwig
2022-02-20 8:40 ` Baoquan He
2022-02-22 8:45 ` Christoph Hellwig
2022-02-22 9:14 ` Baoquan He
2022-02-22 13:11 ` Christoph Hellwig
2022-02-22 13:40 ` Baoquan He
2022-02-22 13:41 ` [PATCH 1/2] dma-mapping: check dma_mask for streaming mapping allocs Baoquan He
2022-02-22 15:59 ` Christoph Hellwig
2022-02-23 0:28 ` Baoquan He
2022-02-23 14:25 ` Christoph Hellwig
2022-02-23 14:57 ` David Laight
2022-02-24 14:11 ` Baoquan He
2022-02-24 14:27 ` David Laight
2022-02-25 15:39 ` 'Baoquan He'
2022-02-22 13:42 ` [PATCH 2/2] kernel/dma: rename dma_alloc_direct and dma_map_direct Baoquan He
2022-02-22 15:59 ` Christoph Hellwig
2022-02-19 0:52 ` [PATCH 22/22] mtd: rawnand: Use dma_alloc_noncoherent() for dma buffer Baoquan He
2022-02-19 7:19 ` Christoph Hellwig
2022-02-19 11:18 ` Hyeonggon Yoo
2022-02-22 8:46 ` Christoph Hellwig
2022-02-22 9:06 ` David Laight
2022-02-22 13:16 ` 'Christoph Hellwig'
2022-02-21 13:57 ` Heiko Carstens [this message]
2022-02-22 8:44 ` [PATCH 00/22] Don't use kmalloc() with GFP_DMA Christoph Hellwig
2022-02-22 13:12 ` Baoquan He
2022-02-22 13:26 ` Baoquan He
2022-02-23 19:18 ` Heiko Carstens
2022-02-24 6:33 ` Christoph Hellwig
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=YhOaTsWUKO0SWsh7@osiris \
--to=hca@linux.ibm.com \
--cc=42.hyeyoo@gmail.com \
--cc=David.Laight@aculab.com \
--cc=agordeev@linux.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=bhe@redhat.com \
--cc=borntraeger@linux.ibm.com \
--cc=cl@linux.com \
--cc=davem@davemloft.net \
--cc=david@redhat.com \
--cc=gor@linux.ibm.com \
--cc=hch@lst.de \
--cc=herbert@gondor.apana.org.au \
--cc=iamjoonsoo.kim@lge.com \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-s390@vger.kernel.org \
--cc=michael@walle.cc \
--cc=netdev@vger.kernel.org \
--cc=pasic@linux.ibm.com \
--cc=penberg@kernel.org \
--cc=rientjes@google.com \
--cc=steffen.klassert@secunet.com \
--cc=svens@linux.ibm.com \
--cc=vbabka@suse.cz \
--cc=vneethv@linux.ibm.com \
--cc=wsa@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