From: "Michael S. Tsirkin" <mst@redhat.com>
To: Fengguang Wu <fengguang.wu@intel.com>
Cc: Yuanhan Liu <yuanhan.liu@intel.com>,
kernel-janitors@vger.kernel.org,
Marcelo Tosatti <mtosatti@redhat.com>,
kvm@vger.kernel.org
Subject: Re: [kvm:queue 41/42] arch/s390/kvm/interrupt.c:428:12: warning: ignoring return value of 'vcpu_load
Date: Thu, 20 Sep 2012 05:22:30 +0000 [thread overview]
Message-ID: <20120920052230.GA5721@redhat.com> (raw)
In-Reply-To: <20120920001608.GB9337@localhost>
On Thu, Sep 20, 2012 at 08:16:08AM +0800, Fengguang Wu wrote:
> Hi Michael,
>
> FYI, there are new compile warnings show up in
>
> tree: git://git.kernel.org/pub/scm/virt/kvm/kvm.git queue
> head: 879238fecc051d95037ae76332916209a7770709
> commit: 9fc77441e5e1bf80b794cc546d2243ee9f4afb75 [41/42] KVM: make processes waiting on vcpu mutex killable
> config: s390-defconfig
>
> All error/warnings:
>
> arch/s390/kvm/interrupt.c: In function 'kvm_s390_handle_wait':
> arch/s390/kvm/interrupt.c:428:12: warning: ignoring return value of 'vcpu_load', declared with attribute warn_unused_result [-Wunused-result]
>
> vim +428 arch/s390/kvm/interrupt.c
> 418 add_wait_queue(&vcpu->arch.local_int.wq, &wait);
> 419 while (list_empty(&vcpu->arch.local_int.list) &&
> 420 list_empty(&vcpu->arch.local_int.float_int->list) &&
> 421 (!vcpu->arch.local_int.timer_due) &&
> 422 !signal_pending(current)) {
> 423 set_current_state(TASK_INTERRUPTIBLE);
> 424 spin_unlock_bh(&vcpu->arch.local_int.lock);
> 425 spin_unlock(&vcpu->arch.local_int.float_int->lock);
> 426 vcpu_put(vcpu);
> 427 schedule();
> > 428 vcpu_load(vcpu);
> 429 spin_lock(&vcpu->arch.local_int.float_int->lock);
> 430 spin_lock_bh(&vcpu->arch.local_int.lock);
> 431 }
> 432 __unset_cpu_idle(vcpu);
> 433 __set_current_state(TASK_RUNNING);
> 434 remove_wait_queue(&vcpu->arch.local_int.wq, &wait);
> 435 spin_unlock_bh(&vcpu->arch.local_int.lock);
> 436 spin_unlock(&vcpu->arch.local_int.float_int->lock);
> 437 hrtimer_try_to_cancel(&vcpu->arch.ckc_timer);
> 438 return 0;
Thanks for the report. This is because vcpu_load can now fail if task
is being killed. I'm guessing the following is the right fix but have
no way to tell. Warning: completely untested.
--->
kvm/arm: handle vcpu_load failure gracefully
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
--
diff --git a/arch/s390/kvm/interrupt.c b/arch/s390/kvm/interrupt.c
index b7bc1aa..5aedf25 100644
--- a/arch/s390/kvm/interrupt.c
+++ b/arch/s390/kvm/interrupt.c
@@ -362,6 +362,7 @@ int kvm_s390_handle_wait(struct kvm_vcpu *vcpu)
{
u64 now, sltime;
DECLARE_WAITQUEUE(wait, current);
+ int ret;
vcpu->stat.exit_wait_state++;
if (kvm_cpu_has_interrupt(vcpu))
@@ -407,7 +408,9 @@ no_timer:
spin_unlock(&vcpu->arch.local_int.float_int->lock);
vcpu_put(vcpu);
schedule();
- vcpu_load(vcpu);
+ ret = vcpu_load(vcpu);
+ if (ret)
+ goto cancel;
spin_lock(&vcpu->arch.local_int.float_int->lock);
spin_lock_bh(&vcpu->arch.local_int.lock);
}
@@ -416,6 +419,7 @@ no_timer:
remove_wait_queue(&vcpu->arch.local_int.wq, &wait);
spin_unlock_bh(&vcpu->arch.local_int.lock);
spin_unlock(&vcpu->arch.local_int.float_int->lock);
+cancel:
hrtimer_try_to_cancel(&vcpu->arch.ckc_timer);
return 0;
}
> ---
> 0-DAY kernel build testing backend Open Source Technology Centre
> Fengguang Wu, Yuanhan Liu Intel Corporation
WARNING: multiple messages have this Message-ID (diff)
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Fengguang Wu <fengguang.wu@intel.com>
Cc: Yuanhan Liu <yuanhan.liu@intel.com>,
kernel-janitors@vger.kernel.org,
Marcelo Tosatti <mtosatti@redhat.com>,
kvm@vger.kernel.org
Subject: Re: [kvm:queue 41/42] arch/s390/kvm/interrupt.c:428:12: warning: ignoring return value of 'vcpu_load', declared with attribute warn_unused_result
Date: Thu, 20 Sep 2012 08:22:30 +0300 [thread overview]
Message-ID: <20120920052230.GA5721@redhat.com> (raw)
In-Reply-To: <20120920001608.GB9337@localhost>
On Thu, Sep 20, 2012 at 08:16:08AM +0800, Fengguang Wu wrote:
> Hi Michael,
>
> FYI, there are new compile warnings show up in
>
> tree: git://git.kernel.org/pub/scm/virt/kvm/kvm.git queue
> head: 879238fecc051d95037ae76332916209a7770709
> commit: 9fc77441e5e1bf80b794cc546d2243ee9f4afb75 [41/42] KVM: make processes waiting on vcpu mutex killable
> config: s390-defconfig
>
> All error/warnings:
>
> arch/s390/kvm/interrupt.c: In function 'kvm_s390_handle_wait':
> arch/s390/kvm/interrupt.c:428:12: warning: ignoring return value of 'vcpu_load', declared with attribute warn_unused_result [-Wunused-result]
>
> vim +428 arch/s390/kvm/interrupt.c
> 418 add_wait_queue(&vcpu->arch.local_int.wq, &wait);
> 419 while (list_empty(&vcpu->arch.local_int.list) &&
> 420 list_empty(&vcpu->arch.local_int.float_int->list) &&
> 421 (!vcpu->arch.local_int.timer_due) &&
> 422 !signal_pending(current)) {
> 423 set_current_state(TASK_INTERRUPTIBLE);
> 424 spin_unlock_bh(&vcpu->arch.local_int.lock);
> 425 spin_unlock(&vcpu->arch.local_int.float_int->lock);
> 426 vcpu_put(vcpu);
> 427 schedule();
> > 428 vcpu_load(vcpu);
> 429 spin_lock(&vcpu->arch.local_int.float_int->lock);
> 430 spin_lock_bh(&vcpu->arch.local_int.lock);
> 431 }
> 432 __unset_cpu_idle(vcpu);
> 433 __set_current_state(TASK_RUNNING);
> 434 remove_wait_queue(&vcpu->arch.local_int.wq, &wait);
> 435 spin_unlock_bh(&vcpu->arch.local_int.lock);
> 436 spin_unlock(&vcpu->arch.local_int.float_int->lock);
> 437 hrtimer_try_to_cancel(&vcpu->arch.ckc_timer);
> 438 return 0;
Thanks for the report. This is because vcpu_load can now fail if task
is being killed. I'm guessing the following is the right fix but have
no way to tell. Warning: completely untested.
--->
kvm/arm: handle vcpu_load failure gracefully
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
--
diff --git a/arch/s390/kvm/interrupt.c b/arch/s390/kvm/interrupt.c
index b7bc1aa..5aedf25 100644
--- a/arch/s390/kvm/interrupt.c
+++ b/arch/s390/kvm/interrupt.c
@@ -362,6 +362,7 @@ int kvm_s390_handle_wait(struct kvm_vcpu *vcpu)
{
u64 now, sltime;
DECLARE_WAITQUEUE(wait, current);
+ int ret;
vcpu->stat.exit_wait_state++;
if (kvm_cpu_has_interrupt(vcpu))
@@ -407,7 +408,9 @@ no_timer:
spin_unlock(&vcpu->arch.local_int.float_int->lock);
vcpu_put(vcpu);
schedule();
- vcpu_load(vcpu);
+ ret = vcpu_load(vcpu);
+ if (ret)
+ goto cancel;
spin_lock(&vcpu->arch.local_int.float_int->lock);
spin_lock_bh(&vcpu->arch.local_int.lock);
}
@@ -416,6 +419,7 @@ no_timer:
remove_wait_queue(&vcpu->arch.local_int.wq, &wait);
spin_unlock_bh(&vcpu->arch.local_int.lock);
spin_unlock(&vcpu->arch.local_int.float_int->lock);
+cancel:
hrtimer_try_to_cancel(&vcpu->arch.ckc_timer);
return 0;
}
> ---
> 0-DAY kernel build testing backend Open Source Technology Centre
> Fengguang Wu, Yuanhan Liu Intel Corporation
next prev parent reply other threads:[~2012-09-20 5:22 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-20 0:16 [kvm:queue 41/42] arch/s390/kvm/interrupt.c:428:12: warning: ignoring return value of 'vcpu_load', d Fengguang Wu
2012-09-20 0:16 ` [kvm:queue 41/42] arch/s390/kvm/interrupt.c:428:12: warning: ignoring return value of 'vcpu_load', declared with attribute warn_unused_result Fengguang Wu
2012-09-20 5:22 ` Michael S. Tsirkin [this message]
2012-09-20 5:22 ` Michael S. Tsirkin
2012-09-27 15:02 ` [kvm:queue 41/42] arch/s390/kvm/interrupt.c:428:12: warning: ignoring return value of 'vcpu_load Christian Borntraeger
2012-09-27 15:02 ` [kvm:queue 41/42] arch/s390/kvm/interrupt.c:428:12: warning: ignoring return value of 'vcpu_load', declared with attribute warn_unused_result Christian Borntraeger
2012-09-27 15:12 ` [kvm:queue 41/42] arch/s390/kvm/interrupt.c:428:12: warning: ignoring return value of 'vcpu_load Avi Kivity
2012-09-27 15:12 ` [kvm:queue 41/42] arch/s390/kvm/interrupt.c:428:12: warning: ignoring return value of 'vcpu_load', declared with attribute warn_unused_result Avi Kivity
2012-09-27 15:29 ` [PATCH] s390/kvm: Fix vcpu_load handling in interrupt code Christian Borntraeger
2012-09-27 15:29 ` Christian Borntraeger
2012-09-27 16:20 ` Avi Kivity
2012-09-27 16:20 ` Avi Kivity
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=20120920052230.GA5721@redhat.com \
--to=mst@redhat.com \
--cc=fengguang.wu@intel.com \
--cc=kernel-janitors@vger.kernel.org \
--cc=kvm@vger.kernel.org \
--cc=mtosatti@redhat.com \
--cc=yuanhan.liu@intel.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.