From: "Fabio M. De Francesco" <fmdefrancesco@gmail.com>
To: Stefano Garzarella <sgarzare@redhat.com>
Cc: virtualization@lists.linux-foundation.org,
Andrey Zhadchenko <andrey.zhadchenko@virtuozzo.com>,
eperezma@redhat.com, netdev@vger.kernel.org, stefanha@redhat.com,
linux-kernel@vger.kernel.org, Jason Wang <jasowang@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
kvm@vger.kernel.org, Stefano Garzarella <sgarzare@redhat.com>
Subject: Re: [PATCH v2 3/8] vringh: replace kmap_atomic() with kmap_local_page()
Date: Thu, 16 Mar 2023 10:13:39 +0100 [thread overview]
Message-ID: <5675662.DvuYhMxLoT@suse> (raw)
In-Reply-To: <20230302113421.174582-4-sgarzare@redhat.com>
On giovedì 2 marzo 2023 12:34:16 CET Stefano Garzarella wrote:
> kmap_atomic() is deprecated in favor of kmap_local_page().
>
> With kmap_local_page() the mappings are per thread, CPU local, can take
> page-faults, and can be called from any context (including interrupts).
> Furthermore, the tasks can be preempted and, when they are scheduled to
> run again, the kernel virtual addresses are restored and still valid.
>
> kmap_atomic() is implemented like a kmap_local_page() which also disables
> page-faults and preemption (the latter only for !PREEMPT_RT kernels,
> otherwise it only disables migration).
>
> The code within the mappings/un-mappings in getu16_iotlb() and
> putu16_iotlb() don't depend on the above-mentioned side effects of
> kmap_atomic(), so that mere replacements of the old API with the new one
> is all that is required (i.e., there is no need to explicitly add calls
> to pagefault_disable() and/or preempt_disable()).
It seems that my commit message is quite clear and complete and therefore has
already been reused by others who have somehow given me credit.
I would really appreciate it being mentioned here that you are reusing a
"boiler plate" commit message of my own making and Cc me :-)
Thanks,
Fabio
> Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
> ---
>
> Notes:
> v2:
> - added this patch since checkpatch.pl complained about deprecation
> of kmap_atomic() touched by next patch
>
> drivers/vhost/vringh.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/vhost/vringh.c b/drivers/vhost/vringh.c
> index a1e27da54481..0ba3ef809e48 100644
> --- a/drivers/vhost/vringh.c
> +++ b/drivers/vhost/vringh.c
> @@ -1220,10 +1220,10 @@ static inline int getu16_iotlb(const struct vringh
> *vrh, if (ret < 0)
> return ret;
>
> - kaddr = kmap_atomic(iov.bv_page);
> + kaddr = kmap_local_page(iov.bv_page);
> from = kaddr + iov.bv_offset;
> *val = vringh16_to_cpu(vrh, READ_ONCE(*(__virtio16 *)from));
> - kunmap_atomic(kaddr);
> + kunmap_local(kaddr);
>
> return 0;
> }
> @@ -1241,10 +1241,10 @@ static inline int putu16_iotlb(const struct vringh
> *vrh, if (ret < 0)
> return ret;
>
> - kaddr = kmap_atomic(iov.bv_page);
> + kaddr = kmap_local_page(iov.bv_page);
> to = kaddr + iov.bv_offset;
> WRITE_ONCE(*(__virtio16 *)to, cpu_to_vringh16(vrh, val));
> - kunmap_atomic(kaddr);
> + kunmap_local(kaddr);
>
> return 0;
> }
> --
> 2.39.2
next prev parent reply other threads:[~2023-03-16 9:13 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-02 11:34 [PATCH v2 0/8] vdpa_sim: add support for user VA Stefano Garzarella
2023-03-02 11:34 ` Stefano Garzarella
2023-03-02 11:34 ` [PATCH v2 1/8] vdpa: add bind_mm/unbind_mm callbacks Stefano Garzarella
2023-03-02 11:34 ` Stefano Garzarella
2023-03-14 3:39 ` Jason Wang
2023-03-14 3:39 ` Jason Wang
2023-03-16 8:17 ` Stefano Garzarella
2023-03-16 8:17 ` Stefano Garzarella
2023-03-02 11:34 ` [PATCH v2 2/8] vhost-vdpa: use bind_mm/unbind_mm device callbacks Stefano Garzarella
2023-03-02 11:34 ` Stefano Garzarella
2023-03-14 3:48 ` Jason Wang
2023-03-14 3:48 ` Jason Wang
2023-03-16 8:31 ` Stefano Garzarella
2023-03-16 8:31 ` Stefano Garzarella
2023-03-16 10:11 ` Stefano Garzarella
2023-03-16 10:11 ` Stefano Garzarella
2023-03-02 11:34 ` [PATCH v2 3/8] vringh: replace kmap_atomic() with kmap_local_page() Stefano Garzarella
2023-03-02 11:34 ` Stefano Garzarella
2023-03-14 3:56 ` Jason Wang
2023-03-14 3:56 ` Jason Wang
2023-03-15 21:12 ` Fabio M. De Francesco
2023-03-16 2:53 ` Jason Wang
2023-03-16 2:53 ` Jason Wang
2023-03-16 8:09 ` Stefano Garzarella
2023-03-16 8:09 ` Stefano Garzarella
2023-03-16 9:25 ` Fabio M. De Francesco
2023-03-16 9:13 ` Fabio M. De Francesco [this message]
2023-03-16 9:17 ` Stefano Garzarella
2023-03-16 9:17 ` Stefano Garzarella
2023-03-02 11:34 ` [PATCH v2 4/8] vringh: support VA with iotlb Stefano Garzarella
2023-03-02 11:34 ` Stefano Garzarella
2023-03-03 14:38 ` Eugenio Perez Martin
2023-03-07 9:31 ` Stefano Garzarella
2023-03-07 9:31 ` Stefano Garzarella
2023-03-16 16:07 ` Stefano Garzarella
2023-03-16 16:07 ` Stefano Garzarella
2023-03-17 2:53 ` Jason Wang
2023-03-17 2:53 ` Jason Wang
2023-03-17 9:49 ` Eugenio Perez Martin
2023-03-17 11:25 ` Stefano Garzarella
2023-03-17 11:25 ` Stefano Garzarella
2023-03-14 4:53 ` Jason Wang
2023-03-14 4:53 ` Jason Wang
2023-03-16 8:38 ` Stefano Garzarella
2023-03-16 8:38 ` Stefano Garzarella
2023-03-02 11:34 ` [PATCH v2 5/8] vdpa_sim: make devices agnostic for work management Stefano Garzarella
2023-03-02 11:34 ` Stefano Garzarella
2023-03-03 14:40 ` Eugenio Perez Martin
2023-03-14 5:27 ` Jason Wang
2023-03-14 5:27 ` Jason Wang
2023-03-02 11:34 ` [PATCH v2 6/8] vdpa_sim: use kthread worker Stefano Garzarella
2023-03-02 11:34 ` Stefano Garzarella
2023-03-02 15:30 ` Simon Horman
2023-03-02 15:48 ` Stefano Garzarella
2023-03-02 15:48 ` Stefano Garzarella
2023-03-05 11:21 ` kernel test robot
2023-03-05 11:21 ` kernel test robot
2023-03-14 5:31 ` Jason Wang
2023-03-14 5:31 ` Jason Wang
2023-03-02 11:34 ` [PATCH v2 7/8] vdpa_sim: replace the spinlock with a mutex to protect the state Stefano Garzarella
2023-03-02 11:34 ` Stefano Garzarella
2023-03-14 5:29 ` Jason Wang
2023-03-14 5:29 ` Jason Wang
2023-03-14 5:31 ` Jason Wang
2023-03-14 5:31 ` Jason Wang
2023-03-16 8:42 ` Stefano Garzarella
2023-03-16 8:42 ` Stefano Garzarella
2023-03-02 11:34 ` [PATCH v2 8/8] vdpa_sim: add support for user VA Stefano Garzarella
2023-03-02 11:34 ` Stefano Garzarella
2023-03-14 5:36 ` Jason Wang
2023-03-14 5:36 ` Jason Wang
2023-03-16 9:11 ` Stefano Garzarella
2023-03-16 9:11 ` Stefano Garzarella
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=5675662.DvuYhMxLoT@suse \
--to=fmdefrancesco@gmail.com \
--cc=andrey.zhadchenko@virtuozzo.com \
--cc=eperezma@redhat.com \
--cc=jasowang@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mst@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=sgarzare@redhat.com \
--cc=stefanha@redhat.com \
--cc=virtualization@lists.linux-foundation.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.