From: Kishon Vijay Abraham I <kishon@ti.com>
To: Cornelia Huck <cohuck@redhat.com>, <alex.williamson@redhat.com>
Cc: <kvm@vger.kernel.org>, Ohad Ben-Cohen <ohad@wizery.com>,
Bjorn Andersson <bjorn.andersson@linaro.org>,
Mathieu Poirier <mathieu.poirier@linaro.org>,
linux-remoteproc <linux-remoteproc@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"Vutla, Lokesh" <lokeshvutla@ti.com>,
Vignesh Raghavendra <vigneshr@ti.com>,
"Strashko, Grygorii" <grygorii.strashko@ti.com>
Subject: [QUERY] Flushing cache from userspace using VFIO
Date: Mon, 6 Sep 2021 21:22:15 +0530 [thread overview]
Message-ID: <d338414f-ed88-20d4-7da0-6742dedb8579@ti.com> (raw)
Hi Alex, Cornelia,
I'm trying to see if I can use VFIO (Versatile Framework for userspace I/O
[1]) for communication between two cores within the same SoC. I've tried to put
down a picture like below which tries to communicate between ARM64 (running
Linux) and CORTEX R5 (running firmware). It uses rpmsg/remoteproc for the
control messages and the actual data buffers are directly accessed from the
userspace. The location of the data buffers can be informed to the userspace via
rpmsg_vfio (which has to be built as a rpmsg endpoint).
My question is after the userspace application in ARM64 writes to a buffer in
the SYSTEM MEMORY, can it flush it (through a VFIO IOCTL) before handing the
buffer to the CORTEX R5.
If it's implemented within kernel either we use dma_alloc_coherent() for
allocating coherent memory or streaming DMA APIs like
dma_map_single()/dma_unmap_single() for flushing/invalidate the cache.
Trying to see if that is already supported in VFIO or if not, would it be
acceptable to implement it.
Please let me know your thoughts.
┌───────────────────────────────────────────────────────────────────────────┐
│ │
│ ┌────────────────────┐ │
│ │ │ │
│ │ ┌──────────────┐ │ │
│ │ │ userspace │ │ Data Buffers │
│ │ │ Application ├───┼──────────────┐ │
│ │ │ │ │ │ │
│ │ └──────▲──┬────┘ │ │ │
│ │ │ │ │ │ │
│ │ │ │ user │ │ ┌─────────────────┐ │
│ │ ──────┼──┼─────── │ │ │ │ │
│ │ │ │ kernel │ │ │ │ │
│ │ ┌─────┴──▼────┐ │ ┌─────────┼────────────┐ │ │ │
│ │ │ │ │ │ │ │ │ Data │ │
│ │ │ rpmsg_vfio │ │ │ ┌──────▼─────────┐ │ │ Buffers │ │
│ │ │ │ │ │ │ Reserved Region◄──┼────┼────────┐ │ │
│ │ └─────▲──┬────┘ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ └────────────────┘ │ │ │ │ │
│ │ ┌─────┴──▼────┐ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ ┌──────┴──────┐ │ │
│ │ │ rpmsg │ │ │ SYSTEM MEMORY │ │ │ Application │ │ │
│ │ │ │ │ │ (DDR) │ │ │ Logic │ │ │
│ │ └─────▲──┬────┘ │ └──────────────────────┘ │ └───▲────┬────┘ │ │
│ │ │ │ │ │ │ │ │ │
│ │ ┌─────┴──▼────┐ │Notify Firmware/Control Message │ ┌───┴────▼────┐ │ │
│ │ │ ├───┼────────────────────────────────┼─► │ │ │
│ │ │ remoteproc │ │Interrupt ARM/Control Message │ │ Firmware │ │ │
│ │ │ ◄───┼────────────────────────────────┼─┤ │ │ │
│ │ └─────────────┘ │ │ └─────────────┘ │ │
│ │ ARM64(Linux) │ │ ARM CORTEX R5 │ │
│ └────────────────────┘ └─────────────────┘ │
│ │
│ SoC │
└───────────────────────────────────────────────────────────────────────────┘
Thank You,
Kishon
[1] -> https://youtu.be/WFkdTFTOTpA
next reply other threads:[~2021-09-06 15:52 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-06 15:52 Kishon Vijay Abraham I [this message]
2021-09-08 23:12 ` Alex Williamson
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=d338414f-ed88-20d4-7da0-6742dedb8579@ti.com \
--to=kishon@ti.com \
--cc=alex.williamson@redhat.com \
--cc=bjorn.andersson@linaro.org \
--cc=cohuck@redhat.com \
--cc=grygorii.strashko@ti.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-remoteproc@vger.kernel.org \
--cc=lokeshvutla@ti.com \
--cc=mathieu.poirier@linaro.org \
--cc=ohad@wizery.com \
--cc=vigneshr@ti.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
all inboxes | Powered by JetHome®