2020-09-11 05:59:34

by Yi Li

[permalink] [raw]
Subject: [PATCH] kvm/eventfd:do wildcard calculation before list_for_each_entry_safe

There is no need to calculate wildcard in each loop
since wildcard is not changed.

Signed-off-by: Yi Li <[email protected]>
---
virt/kvm/eventfd.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/virt/kvm/eventfd.c b/virt/kvm/eventfd.c
index d6408bb497dc..c2323c27a28b 100644
--- a/virt/kvm/eventfd.c
+++ b/virt/kvm/eventfd.c
@@ -853,15 +853,17 @@ kvm_deassign_ioeventfd_idx(struct kvm *kvm, enum kvm_bus bus_idx,
struct eventfd_ctx *eventfd;
struct kvm_io_bus *bus;
int ret = -ENOENT;
+ bool wildcard;

eventfd = eventfd_ctx_fdget(args->fd);
if (IS_ERR(eventfd))
return PTR_ERR(eventfd);

+ wildcard = !(args->flags & KVM_IOEVENTFD_FLAG_DATAMATCH);
+
mutex_lock(&kvm->slots_lock);

list_for_each_entry_safe(p, tmp, &kvm->ioeventfds, list) {
- bool wildcard = !(args->flags & KVM_IOEVENTFD_FLAG_DATAMATCH);

if (p->bus_idx != bus_idx ||
p->eventfd != eventfd ||
--
2.25.3




2020-09-11 17:25:14

by Paolo Bonzini

[permalink] [raw]
Subject: Re: [PATCH] kvm/eventfd:do wildcard calculation before list_for_each_entry_safe

On 11/09/20 07:56, Yi Li wrote:
> There is no need to calculate wildcard in each loop
> since wildcard is not changed.
>
> Signed-off-by: Yi Li <[email protected]>
> ---
> virt/kvm/eventfd.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/virt/kvm/eventfd.c b/virt/kvm/eventfd.c
> index d6408bb497dc..c2323c27a28b 100644
> --- a/virt/kvm/eventfd.c
> +++ b/virt/kvm/eventfd.c
> @@ -853,15 +853,17 @@ kvm_deassign_ioeventfd_idx(struct kvm *kvm, enum kvm_bus bus_idx,
> struct eventfd_ctx *eventfd;
> struct kvm_io_bus *bus;
> int ret = -ENOENT;
> + bool wildcard;
>
> eventfd = eventfd_ctx_fdget(args->fd);
> if (IS_ERR(eventfd))
> return PTR_ERR(eventfd);
>
> + wildcard = !(args->flags & KVM_IOEVENTFD_FLAG_DATAMATCH);
> +
> mutex_lock(&kvm->slots_lock);
>
> list_for_each_entry_safe(p, tmp, &kvm->ioeventfds, list) {
> - bool wildcard = !(args->flags & KVM_IOEVENTFD_FLAG_DATAMATCH);
>
> if (p->bus_idx != bus_idx ||
> p->eventfd != eventfd ||
>

Queued, thanks.

Paolo