All of lore.kernel.org
 help / color / mirror / Atom feed
From: Leon Romanovsky <leon@kernel.org>
To: Alexander Potapenko <glider@google.com>
Cc: "Marek Szyprowski" <m.szyprowski@samsung.com>,
	"Christoph Hellwig" <hch@lst.de>,
	"Jonathan Corbet" <corbet@lwn.net>,
	"Madhavan Srinivasan" <maddy@linux.ibm.com>,
	"Michael Ellerman" <mpe@ellerman.id.au>,
	"Nicholas Piggin" <npiggin@gmail.com>,
	"Christophe Leroy" <christophe.leroy@csgroup.eu>,
	"Robin Murphy" <robin.murphy@arm.com>,
	"Joerg Roedel" <joro@8bytes.org>, "Will Deacon" <will@kernel.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Jason Wang" <jasowang@redhat.com>,
	"Xuan Zhuo" <xuanzhuo@linux.alibaba.com>,
	"Eugenio Pérez" <eperezma@redhat.com>,
	"Marco Elver" <elver@google.com>,
	"Dmitry Vyukov" <dvyukov@google.com>,
	"Masami Hiramatsu" <mhiramat@kernel.org>,
	"Mathieu Desnoyers" <mathieu.desnoyers@efficios.com>,
	"Jérôme Glisse" <jglisse@redhat.com>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org, iommu@lists.linux.dev,
	virtualization@lists.linux.dev, kasan-dev@googlegroups.com,
	linux-trace-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH 5/8] kmsan: convert kmsan_handle_dma to use physical addresses
Date: Thu, 26 Jun 2025 21:45:04 +0300	[thread overview]
Message-ID: <20250626184504.GK17401@unreal> (raw)
In-Reply-To: <CAG_fn=XWP-rpV-D2nV-a3wMbzqLn2T-43tyGnoS2AhVGU8oZMw@mail.gmail.com>

On Thu, Jun 26, 2025 at 07:43:06PM +0200, Alexander Potapenko wrote:
> On Wed, Jun 25, 2025 at 3:19 PM Leon Romanovsky <leon@kernel.org> wrote:
> >
> > From: Leon Romanovsky <leonro@nvidia.com>
> 
> Hi Leon,
> 
> >
> > Convert the KMSAN DMA handling function from page-based to physical
> > address-based interface.
> >
> > The refactoring renames kmsan_handle_dma() parameters from accepting
> > (struct page *page, size_t offset, size_t size) to (phys_addr_t phys,
> > size_t size).
> 
> Could you please elaborate a bit why this is needed? Are you fixing
> some particular issue?

It is soft of the fix and improvement at the same time.
Improvement: 
It allows direct call to kmsan_handle_dma() without need
to convert from phys_addr_t to struct page for newly introduced
dma_map_phys() routine.

Fix:
It prevents us from executing kmsan for addresses that don't have struct page
(for example PCI_P2PDMA_MAP_THRU_HOST_BRIDGE pages), which we are doing
with original code.

dma_map_sg_attrs()
 -> __dma_map_sg_attrs()
  -> dma_direct_map_sg()
   -> PCI_P2PDMA_MAP_THRU_HOST_BRIDGE and nents > 0
    -> kmsan_handle_dma_sg();
     -> kmsan_handle_dma(g_page(item) <---- this is "fake" page.

We are trying to build DMA API that doesn't require struct pages.

> 
> > A PFN_VALID check is added to prevent KMSAN operations
> > on non-page memory, preventing from non struct page backed address,
> >
> > As part of this change, support for highmem addresses is implemented
> > using kmap_local_page() to handle both lowmem and highmem regions
> > properly. All callers throughout the codebase are updated to use the
> > new phys_addr_t based interface.
> 
> KMSAN only works on 64-bit systems, do we actually have highmem on any of these?

I don't know, but the original code had this check:
  344         if (PageHighMem(page)) 
  345                 return;

Thanks

  reply	other threads:[~2025-06-26 18:45 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20250625131920eucas1p271b196cde042bd39ac08fb12beff5baf@eucas1p2.samsung.com>
2025-06-25 13:18 ` [PATCH 0/8] dma-mapping: migrate to physical address-based API Leon Romanovsky
2025-06-25 13:18   ` [PATCH 1/8] dma-debug: refactor to use physical addresses for page mapping Leon Romanovsky
2025-06-25 13:18   ` [PATCH 2/8] dma-mapping: rename trace_dma_*map_page to trace_dma_*map_phys Leon Romanovsky
2025-06-25 13:19   ` [PATCH 3/8] iommu/dma: rename iommu_dma_*map_page to iommu_dma_*map_phys Leon Romanovsky
2025-06-25 13:19   ` [PATCH 4/8] dma-mapping: convert dma_direct_*map_page to be phys_addr_t based Leon Romanovsky
2025-06-25 13:19   ` [PATCH 5/8] kmsan: convert kmsan_handle_dma to use physical addresses Leon Romanovsky
2025-06-26 17:43     ` Alexander Potapenko
2025-06-26 18:45       ` Leon Romanovsky [this message]
2025-06-27 16:28         ` Alexander Potapenko
2025-06-25 13:19   ` [PATCH 6/8] dma-mapping: fail early if physical address is mapped through platform callback Leon Romanovsky
2025-07-25 20:04     ` Robin Murphy
2025-07-27  6:30       ` Leon Romanovsky
2025-06-25 13:19   ` [PATCH 7/8] dma-mapping: export new dma_*map_phys() interface Leon Romanovsky
2025-06-25 13:19   ` [PATCH 8/8] mm/hmm: migrate to physical address-based DMA mapping API Leon Romanovsky
2025-07-15 13:24     ` Will Deacon
2025-07-15 13:58       ` Leon Romanovsky
2025-06-27 13:44   ` [PATCH 0/8] dma-mapping: migrate to physical address-based API Marek Szyprowski
2025-06-27 17:02     ` Leon Romanovsky
2025-06-30 13:38       ` Christoph Hellwig
2025-07-08 10:27         ` Marek Szyprowski
2025-07-08 11:00           ` Leon Romanovsky
2025-07-08 11:45             ` Marek Szyprowski
2025-07-08 12:06               ` Leon Romanovsky
2025-07-08 12:56                 ` Marek Szyprowski
2025-07-08 15:57                   ` Marek Szyprowski
2025-07-30 11:11           ` Robin Murphy
2025-07-30 13:40             ` Leon Romanovsky
2025-07-30 14:28               ` Jason Gunthorpe
2025-07-31  6:01                 ` Leon Romanovsky
2025-07-30 16:32             ` Marek Szyprowski
2025-07-31 17:37             ` Matthew Wilcox
2025-08-03 15:59               ` Jason Gunthorpe
2025-08-04  3:37                 ` Matthew Wilcox
2025-08-05 15:36                   ` Jason Gunthorpe
2025-07-06  6:00       ` Leon Romanovsky
2025-07-25 20:05   ` Robin Murphy
2025-07-29 14:03     ` Jason Gunthorpe

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=20250626184504.GK17401@unreal \
    --to=leon@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=christophe.leroy@csgroup.eu \
    --cc=corbet@lwn.net \
    --cc=dvyukov@google.com \
    --cc=elver@google.com \
    --cc=eperezma@redhat.com \
    --cc=glider@google.com \
    --cc=hch@lst.de \
    --cc=iommu@lists.linux.dev \
    --cc=jasowang@redhat.com \
    --cc=jglisse@redhat.com \
    --cc=joro@8bytes.org \
    --cc=kasan-dev@googlegroups.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-trace-kernel@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=m.szyprowski@samsung.com \
    --cc=maddy@linux.ibm.com \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mhiramat@kernel.org \
    --cc=mpe@ellerman.id.au \
    --cc=mst@redhat.com \
    --cc=npiggin@gmail.com \
    --cc=robin.murphy@arm.com \
    --cc=virtualization@lists.linux.dev \
    --cc=will@kernel.org \
    --cc=xuanzhuo@linux.alibaba.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 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.