linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Michael Schmitz <schmitzmic@gmail.com>
To: Arnd Bergmann <arnd@kernel.org>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
	Linux-Arch <linux-arch@vger.kernel.org>,
	scsi <linux-scsi@vger.kernel.org>,
	Christoph Hellwig <hch@infradead.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Jakub Kicinski <kuba@kernel.org>, Arnd Bergmann <arnd@arndb.de>,
	Denis Efremov <efremov@linux.com>,
	linux-m68k <linux-m68k@lists.linux-m68k.org>,
	John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>,
	Khalid Aziz <khalid@gonehiking.org>,
	Miquel van Smoorenburg <mikevs@xs4all.net>,
	Parisc List <linux-parisc@vger.kernel.org>,
	Robin Murphy <robin.murphy@arm.com>,
	Matt Wang <wwentao@vmware.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Mark Salyzyn <salyzyn@android.com>,
	Linux IOMMU <iommu@lists.linux-foundation.org>,
	alpha <linux-alpha@vger.kernel.org>,
	linuxppc-dev <linuxppc-dev@lists.ozlabs.org>,
	"Maciej W . Rozycki" <macro@orcam.me.uk>
Subject: Re: [PATCH v2 3/3] arch/*/: remove CONFIG_VIRT_TO_BUS
Date: Wed, 29 Jun 2022 09:38:00 +1200	[thread overview]
Message-ID: <b1edec96-ccb2-49d6-323b-1abc0dc37a50@gmail.com> (raw)
In-Reply-To: <CAK8P3a1ivqYB38c_QTjG8e85ZBnCB6HEa-6LR1HDc8shG1Pwmw@mail.gmail.com>

Hi Arnd,

On 28/06/22 19:08, Arnd Bergmann wrote:
> On Tue, Jun 28, 2022 at 5:25 AM Michael Schmitz <schmitzmic@gmail.com> wrote:
>> Am 28.06.2022 um 09:12 schrieb Michael Schmitz:
>>
>> Leaving the bounce buffer handling in place, and taking a few other
>> liberties - this is what converting the easiest case (a3000 SCSI) might
>> look like. Any obvious mistakes? The mvme147 driver would be very
>> similar to handle (after conversion to a platform device).
>>
>> The driver allocates bounce buffers using kmalloc if it hits an
>> unaligned data buffer - can such buffers still even happen these days?
>> If I understand dma_map_single() correctly, the resulting dma handle
>> would be equally misaligned?
>>
>> To allocate a bounce buffer, would it be OK to use dma_alloc_coherent()
>> even though AFAIU memory used for DMA buffers generally isn't consistent
>> on m68k?
> I think it makes sense to skip the bounce buffering as you do here:
> the only standardized way we have for integrating that part is to
> use the swiotlb infrastructure, but as you mentioned earlier that
> part is probably too resource-heavy here for Amiga.
OK, leaving the old custom logic in place allows to convert the 24 bit 
DMA drivers more easily.
>
> I see two other problems with your patch though:
>
> a) you still duplicate the cache handling: the cache_clear()/cache_push()
> is supposed to already be done by dma_map_single() when the device
> is not cache-coherent.

That's one of the 'liberties' I alluded to. The reason I left these in 
is that I'm none too certain what device feature the DMA API uses to 
decide a device isn't cache-coherent. If it's dev->coherent_dma_mask, 
the way I set up the device in the a3000 driver should leave the 
coherent mask unchanged. For the Zorro drivers, devices are set up to 
use the same storage to store normal and coherent masks - something we 
most likely want to change. I need to think about the ramifications of 
that.

Note that zorro_esp.c uses dma_sync_single_for_device() and uses a 32 
bit coherent DMA mask which does work OK. I might  ask Adrian to test a 
change to only set dev->dma_mask, and drop the 
dma_sync_single_for_device() calls if there's any doubt on this aspect.

> b) The bounce buffer is never mapped here, instead you have the
> virt_to_phys() here, which is not the same. I think you need to map
> the pointer that actually gets passed down to the device after deciding
> to use a bouce buffer or not.

I hadn't realized that I can map the bounce buffer just as it's done for 
the SCp data buffer. Should have been obvious, but I'm still learning 
about the DMA API.

I've updated the patch now, will re-send as part of a complete series 
once done.

Cheers,

     Michael


>
>       Arnd

  reply	other threads:[~2022-06-28 21:38 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-17 12:57 [PATCH v2 0/3] phase out CONFIG_VIRT_TO_BUS Arnd Bergmann
2022-06-17 12:57 ` [PATCH v2 1/3] scsi: dpt_i2o: drop stale VIRT_TO_BUS dependency Arnd Bergmann
2022-06-21  8:43   ` Hannes Reinecke
2022-06-17 12:57 ` [PATCH v2 2/3] scsi: BusLogic remove bus_to_virt Arnd Bergmann
2022-06-17 14:02   ` Robin Murphy
2022-06-21  8:45   ` Hannes Reinecke
2022-06-21 21:56   ` Khalid Aziz
2022-06-23 14:47     ` Arnd Bergmann
2022-06-24 15:38       ` Khalid Aziz
2022-06-24 15:43         ` Arnd Bergmann
2022-06-17 12:57 ` [PATCH v2 3/3] arch/*/: remove CONFIG_VIRT_TO_BUS Arnd Bergmann
2022-06-18  1:06   ` Michael Schmitz
2022-06-24  9:10     ` Arnd Bergmann
2022-06-26  5:21       ` Michael Schmitz
2022-06-26  8:36         ` Arnd Bergmann
2022-06-27  8:09           ` Michael Schmitz
2022-06-27  8:26     ` Geert Uytterhoeven
2022-06-27 21:12       ` Michael Schmitz
2022-06-28  3:25         ` Michael Schmitz
2022-06-28  7:03           ` Geert Uytterhoeven
2022-06-28 21:03             ` Michael Schmitz
2022-06-28 21:50               ` Arnd Bergmann
2022-06-28 23:09                 ` Michael Schmitz
2022-06-28 23:50                   ` Bart Van Assche
2022-06-29  0:01                     ` Michael Schmitz
2022-06-29  0:14                       ` Michael Schmitz
2022-06-29  6:21                   ` Christoph Hellwig
2022-06-30 19:21                     ` Michael Schmitz
2022-06-30  8:04                   ` David Laight
2022-06-30  9:40                     ` Christophe Leroy
2022-06-30 10:32                       ` David Laight
2022-06-28  7:08           ` Arnd Bergmann
2022-06-28 21:38             ` Michael Schmitz [this message]
2022-06-28 21:55               ` Arnd Bergmann
2022-06-28 23:43                 ` Michael Schmitz
2022-06-29  6:25               ` Christoph Hellwig
2022-06-30 19:26                 ` Michael Schmitz

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=b1edec96-ccb2-49d6-323b-1abc0dc37a50@gmail.com \
    --to=schmitzmic@gmail.com \
    --cc=arnd@arndb.de \
    --cc=arnd@kernel.org \
    --cc=efremov@linux.com \
    --cc=geert@linux-m68k.org \
    --cc=glaubitz@physik.fu-berlin.de \
    --cc=hch@infradead.org \
    --cc=iommu@lists.linux-foundation.org \
    --cc=khalid@gonehiking.org \
    --cc=kuba@kernel.org \
    --cc=linux-alpha@vger.kernel.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-m68k@lists.linux-m68k.org \
    --cc=linux-parisc@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=m.szyprowski@samsung.com \
    --cc=macro@orcam.me.uk \
    --cc=mikevs@xs4all.net \
    --cc=robin.murphy@arm.com \
    --cc=salyzyn@android.com \
    --cc=wwentao@vmware.com \
    /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).